Esempio n. 1
0
 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;
 }