/** * @param AbstractModel $model * @param $param * * @return EntityObjectStorage */ public function findBy(AbstractModel $model, $param = []) { if ($this->useCache && $this->modelCache) { if ($ret = $this->modelCache->get($model, $param)) { return $ret; } } list($query, $param, $type) = $this->queryBuilder->generateSelectForModel($model, $param); $result = $this->executeQuery($model, $this->prepare($query, $this->prepareParam($param))); if ($this->useCache && $this->modelCache) { $this->modelCache->set($model, $param); } return $result; }