protected function cacheById(Identifiable $object, $expires = Cache::EXPIRES_FOREVER) { if ($expires !== Cache::DO_NOT_CACHE) { Cache::me()->mark($this->className)->set($this->makeIdKey($object->getId()), ['tags' => $this->getTagsForObject($object), 'data' => $object], $expires); } return $object; }
/** * @return AbstractProtoClass **/ public function skipObjectPrefetching(Identifiable $object) { if ($this->depth) { if (!isset($this->skipList[$this->depth][$object->getId()])) { $this->skipList[$this->depth][$object->getId()] = 1; } else { ++$this->skipList[$this->depth][$object->getId()]; } } return $this; }
public function merge(Identifiable $object, $cacheOnly = true) { Assert::isNotNull($object->getId()); $this->checkObjectType($object); $old = Cache::worker($this)->getCachedById($object->getId()); if (!$old) { // unlikely if ($cacheOnly) { return $this->save($object); } else { $old = Cache::worker($this)->getById($object->getId()); } } if ($object === $old) { return $this->save($object); } return $this->unite($object, $old); }
/** * @return BinaryExpression **/ public static function eqId($field, Identifiable $object) { return self::eq($field, DBValue::create($object->getId())); }
public function drop(Identifiable $object) { return $this->dropById($object->getId()); }
private function addObjectToMap(Identifiable $object) { return $this->identityMap[$object->getId()] = $object; }