public function __construct($object) { $config = Reader::getConfig($object); if (!array_key_exists('table', $config)) { throw new NoTableFoundException(); } $this->table = $config['table']; $this->adapter = GlobalAdapterFeature::getStaticAdapter(); }
/** * Verifica qual a estratégia de população adequada de * acordo com o parâmetro passado pelo usuário, e também * inicia as dependências da classe, bem como a definição * de seu TableGateway. * * @param null $param * @param bool $lazy * @throws NoDataFoundException * @throws NoPrimaryKeyException */ public function __construct($param = null, $lazy = false) { // Define a chave primária do objeto $this->primaryKey = Reader::getConfig($this)['primary_key']; // Constrói o objeto de acesso aos dados. $this->tableGateway = new TableGateway($this); // Define o parâmetro de construção do objeto $this->where = $param; // Verifica se deve ser carregado apenas quando // for usado. $this->lazy = $lazy; // Se não for lazy load, carrega o objeto if (!$this->lazy) { $this->populate($this->where); } }
/** * Constrói uma configuração * @param $property * @param $object */ public function __construct(\ReflectionProperty $property, $object) { $property->setAccessible(true); $c = $property->class; $p = $property->getName(); $config = Reader::getConfig($c, $p); $this->setName($property->getName()); $this->setValue($property->getValue($object)); if (array_key_exists('alias', $config)) { $this->setAlias($config['alias']); } if (array_key_exists('ignore', $config)) { $this->setIgnore($config['ignore']); } if (array_key_exists('ignoreIfNull', $config)) { $this->setIgnoreIfNull($config['ignoreIfNull']); } if (array_key_exists('type', $config)) { $this->setType($config['type']); } }
/** * Seleciona uma coleção de objetos do tipo do objeto que fora * chamado. O método irá identificar qual a classe filho dessa * classe atual, e instanciar um objeto do tipo da classe filho * e em seguida popular ele e adicioná-lo na lista de dados. * * @param $where * @return ArrayList * @throws NoDataFoundException */ public static function select($where) { $table = new TableGateway(self::getInstance(), Reader::getConfig(self::getInstance())['table']); $resultSet = $table->select($where); if ($resultSet->count() === 0) { throw new NoDataFoundException(); } $list = new ArrayList(); foreach ($resultSet->toArray() as $array) { $obj = self::getInstance(); Populator::populate($obj, $array); $list->add($obj); } return $list; }