context = DatabaseConnection::i()->getContext(); $this->table = $this->context->table($this->tableName); } function toEntity(?ActiveRow $ar) { $entityName = "openvk\\Web\\Models\\Entities\\$this->modelName"; return is_null($ar) ? NULL : new $entityName($ar); } function get(int $id) { return $this->toEntity($this->table->get($id)); } function size(bool $withDeleted = false): int { return sizeof($this->table->where("deleted", $withDeleted)); } function enumerate(int $page, ?int $perPage = NULL, bool $withDeleted = false): \Traversable { $perPage ??= OPENVK_DEFAULT_PER_PAGE; foreach($this->table->where("deleted", $withDeleted)->page($page, $perPage) as $entity) yield $this->toEntity($entity); } use \Nette\SmartObject; }