예제 #1
0
 /**
  * @covers Zend\Db\ResultSet\HydratingResultSet::toArray
  * @todo   Implement testToArray().
  */
 public function testToArray()
 {
     $hydratingRs = new HydratingResultSet();
     $hydratingRs->initialize(array(array('id' => 1, 'name' => 'one')));
     $obj = $hydratingRs->toArray();
     $this->assertInternalType('array', $obj);
 }
예제 #2
0
 public function getPagesList()
 {
     $stmt = $this->_dbAdapter->createStatement();
     $stmt->prepare('CALL `pages/get_slist`()');
     $result = $stmt->execute();
     $resultSet = new HydratingResultSet(new Reflection(), new Page());
     $resultSet->initialize($result);
     return $resultSet;
 }
 /**
  * @covers Zend\Db\ResultSet\HydratingResultSet::current
  */
 public function testCurrentWillReturnBufferedRow()
 {
     $hydratingRs = new HydratingResultSet();
     $hydratingRs->initialize(new \ArrayIterator(array(array('id' => 1, 'name' => 'one'), array('id' => 2, 'name' => 'two'))));
     $hydratingRs->buffer();
     $obj1 = $hydratingRs->current();
     $hydratingRs->rewind();
     $obj2 = $hydratingRs->current();
     $this->assertSame($obj1, $obj2);
 }
예제 #4
0
 public function fetchAll()
 {
     $select = $this->sql->select();
     $stmt = $this->sql->prepareStatementForSqlObject($select);
     $results = $stmt->execute();
     $entity = new ImpostoEntity();
     $classMethods = new ClassMethods();
     $resultset = new HydratingResultSet($classMethods, $entity);
     $resultset->initialize($results);
     return $resultset;
 }
예제 #5
0
 /**
  * @return JsonModel
  */
 public function contohGetList()
 {
     $sm = $this->getServiceLocator();
     $table = $sm->get('Organisasi\\DbTable\\StrukturOrganisasi');
     // defined in module.php
     $result = $table->select()->toArray();
     $resultSet = new HydratingResultSet(new ReflectionHydrator(), new StrukturOrganisasi());
     $resultSet->initialize($result);
     $a = array('data' => $result);
     return new JsonModel($a);
 }
예제 #6
0
 /**
  * @return Route[]
  */
 public function findActive()
 {
     $sql = new Sql($this->dbAdapter);
     $select = $sql->select($this->table)->where('active = 1');
     $result = $sql->prepareStatementForSqlObject($select)->execute();
     if ($result->isQueryResult() && $result->getAffectedRows()) {
         $resultSet = new HydratingResultSet($this->hydrator, $this->model);
         return $resultSet->initialize($result);
     }
     return [];
 }
예제 #7
0
 /**
  * {@inheritdoc}
  */
 public function findAll()
 {
     $sql = new Sql($this->dbAdapter);
     $select = $sql->select('posts');
     $stmt = $sql->prepareStatementForSqlObject($select);
     $result = $stmt->execute();
     if ($result instanceof ResultInterface && $result->isQueryResult()) {
         $resultSet = new HydratingResultSet(new ClassMethods(), new Post());
         return $resultSet->initialize($result);
     }
     return [];
 }
예제 #8
0
 /**
  * {@inheritDoc}
  */
 public function findAll()
 {
     $sql = new Sql($this->dbAdapter);
     $select = $sql->select('posts');
     $stmt = $sql->prepareStatementForSqlObject($select);
     $result = $stmt->execute();
     if ($result instanceof ResultInterface && $result->isQueryResult()) {
         $resultSet = new HydratingResultSet($this->hydrator, $this->postPrototype);
         return $resultSet->initialize($result);
     }
     return array();
 }
예제 #9
0
 public function getUsersList()
 {
     $sql = new Sql($this->getAdaptor());
     $select = $sql->select('user');
     $statement = $sql->prepareStatementForSqlObject($select);
     $result = $statement->execute();
     if ($result instanceof ResultInterface && $result->isQueryResult()) {
         $resultSet = new HydratingResultSet($this->getHydrator(), $this->getProtoType());
         return $resultSet->initialize($result);
     }
     return array();
 }
예제 #10
0
 public function fetchAll()
 {
     $select = $this->sql->select();
     $select->order(array('user ASC', 'name ASC'));
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $results = $statement->execute();
     $entityPrototype = new BuildingEntity();
     $hydrator = new ClassMethods();
     $resultset = new HydratingResultSet($hydrator, $entityPrototype);
     $resultset->initialize($results);
     return $resultset;
 }
예제 #11
0
 public function fetchAll($limit = 3)
 {
     $select = $this->sql->select();
     $select->order("date DESC");
     $select->limit($limit);
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $results = $statement->execute();
     $entityPrototype = new TumblrEntity();
     $hydrator = new ClassMethods();
     $resultset = new HydratingResultSet($hydrator, $entityPrototype);
     $resultset->initialize($results);
     return $resultset;
 }
예제 #12
0
 /**
  * Fetches rooms.
  * @return Zend\Db\ResultSet\HydratingResultSet collection of Room obj's
  */
 public function fetch()
 {
     $adapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter');
     $sql = new Sql($adapter);
     $select = $sql->select('room')->offset($this->offset)->limit($this->limit);
     $statement = $sql->prepareStatementForSqlObject($select);
     $res = $statement->execute();
     $resultSet = new HydratingResultSet(new hydrator(), new Room());
     if ($res instanceof ResultInterface && $res->isQueryResult()) {
         $resultSet->initialize($res);
     }
     return $resultSet;
 }
 public function fetchAll($blvdId)
 {
     $select = $this->sql->select();
     $select->where(array("blvd_id" => $blvdId));
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $results = $statement->execute();
     $entityPrototype = new BlvdCategoryEntity();
     $hydrator = new ClassMethods();
     $resultset = new HydratingResultSet($hydrator, $entityPrototype);
     $resultset->initialize($results);
     $resultset->buffer();
     return $resultset;
 }
예제 #14
0
 public function getAttributes($id)
 {
     $select = $this->sql->select();
     $select->join('lead_attributes', 'lead_attribute_values.attribute_id = lead_attributes.id', array('attribute_name'));
     $select->where(array('entity_id' => $id));
     $select->order(array("id ASC"));
     $entityPrototype = new AttributeEntity();
     $hydrator = new ClassMethods();
     $resultset = new HydratingResultSet($hydrator, $entityPrototype);
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $results = $statement->execute();
     $resultset->initialize($results);
     return $resultset;
 }
예제 #15
0
 /**
  * @param $postId int
  *
  * @return Post|null
  */
 public function findById($postId)
 {
     $sql = new \Zend\Db\Sql\Sql($this->adapter);
     $select = $sql->select();
     $select->columns(array('id', 'title', 'slug', 'content', 'created'))->from(array('p' => 'news'))->join(array('c' => 'category'), 'c.id = p.category_id', array('category_id' => 'id', 'name', 'category_slug' => 'slug'), $select::JOIN_INNER)->where(array('p.id' => $postId));
     $statement = $sql->prepareStatementForSqlObject($select);
     $results = $statement->execute();
     $hydrator = new AggregateHydrator();
     $hydrator->add(new PostHydrator());
     $hydrator->add(new CategoryHydrator());
     $resultSet = new HydratingResultSet($hydrator, new Post());
     $resultSet->initialize($results);
     return $resultSet->count() > 0 ? $resultSet->current() : null;
 }
예제 #16
0
 public function getPostList($page, $limit)
 {
     $sql = new Sql($this->getAdaptor());
     $select = $sql->select(array('p' => 'posts'));
     $select->join(array('u' => 'user'), 'p.author_id=u.user_id', array('author' => 'display_name'));
     $select->limit(intval($limit));
     $select->offset(intval($limit) * (intval($page) - 1));
     $statement = $sql->prepareStatementForSqlObject($select);
     $result = $statement->execute();
     if ($result instanceof ResultInterface && $result->isQueryResult()) {
         $resultSet = new HydratingResultSet($this->getHydrator(), $this->getProtoType());
         return $resultSet->initialize($result);
     }
     return array();
 }
예제 #17
0
 /**
  * @return array|PostInterface[]
  */
 public function findAll()
 {
     $sql = new Sql($this->dbAdapter);
     $select = $sql->select('posts');
     $stmt = $sql->prepareStatementForSqlObject($select);
     $result = $stmt->execute();
     if ($result instanceof ResultInterface && $result->isQueryResult()) {
         //$resultSet = new ResultSet();
         //$resultSet = new HydratingResultSet(new \Zend\Stdlib\Hydrator\ClassMethods(), new \Blog\Model\Post());
         $resultSet = new HydratingResultSet($this->hydrator, $this->postPrototype);
         //    \Zend\Debug\Debug::dump($resultSet->initialize($result));die();
         return $resultSet->initialize($result);
     }
     return array();
 }
예제 #18
0
 /**
  * Fetches equipments of the room.
  * @see init()
  * @return \Zend\Db\ResultSet\HydratingResultSet of Equipment objects
  */
 public function fetch()
 {
     if (!$this->is_init()) {
         throw new \Exception("Equipments collection uninitiated.");
     }
     $adapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter');
     $sql = new Sql($adapter);
     $select = $sql->select('equipment')->where(array('cid' => $this->room->id))->offset($this->offset)->limit($this->limit);
     $statement = $sql->prepareStatementForSqlObject($select);
     $res = $statement->execute();
     $hydratedRes = new HydratingResultSet(new Hydrator(), new Equipment());
     if ($res instanceof ResultInterface && $res->isQueryResult()) {
         $hydratedRes->initialize($res);
     }
     return $hydratedRes;
 }
예제 #19
0
 public function fetchAll($paging = false, $sort = "timecreated", $order = "DESC", $filters = array())
 {
     $select = $this->sql->select();
     $select->order(array("{$sort} {$order}"));
     $where = array();
     if ($filters) {
         foreach ($filters as $filter => $condition) {
             if (strlen($condition)) {
                 switch ($filter) {
                     case 'timecreated':
                     case 'daterange':
                         list($from, $to) = array_map(function ($d, $i) {
                             $t = $i == 'from' ? '00:00:00' : '23:59:59';
                             return date('Y-m-d ' . $t, strtotime($d));
                         }, explode("-", $condition), ['from', 'to']);
                         $where[] = "lead.timecreated between '{$from}' and '{$to}'";
                         break;
                     case 'status':
                         $where[] = "lead.submitted = {$condition}";
                         break;
                     case 'sites':
                         $where[] = "lead.formid = {$condition}";
                         break;
                     default:
                         break;
                 }
             }
         }
         if ($where) {
             $select->where($where);
         }
     }
     $entityPrototype = new LeadEntity();
     $hydrator = new ClassMethods();
     if ($paging) {
         // create a new result set based on the Lead entity
         $resultSet = new HydratingResultSet($hydrator, $entityPrototype);
         $paginatorAdapter = new DbSelect($select, $this->dbAdapter, $resultSet);
         $paginator = new Paginator($paginatorAdapter);
         return $paginator;
     }
     $resultset = new HydratingResultSet($hydrator, $entityPrototype);
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $results = $statement->execute();
     $resultset->initialize($results);
     return $resultset;
 }
예제 #20
0
 /**
  * Returns all prefixes
  * @param int $hydrationMode
  * @param int $total количество всех записей
  * @return array|\Zend\Db\Adapter\Driver\ResultInterface|\Zend\Db\ResultSet\ResultSet
  */
 public function getPrefixes($hydrationMode = self::HYDRATE_OBJECT, &$total = 0)
 {
     $query = $this->serviceEntity->getAllPrefix();
     $totalQuery = clone $query;
     $totalQuery->columns(array('total' => new Expression('COUNT(' . $this->serviceEntity->getTableName() . '.id)')));
     $totalResult = $this->executeQuery($totalQuery);
     $total = (int) $totalResult->current()['total'];
     if ($total > 0) {
         $query = $this->processPagination($query);
         $result = $this->executeQuery($query);
         if ($hydrationMode == self::HYDRATE_OBJECT and $result->isQueryResult()) {
             $modelClassName = $this->serviceEntity->getEntityClassName();
             $resultSet = new HydratingResultSet(new ArraySerializable(), new $modelClassName());
             $result = $resultSet->initialize($result);
         }
         return $result;
     }
     return array();
 }
예제 #21
0
 public function getFacebookByUsername($username, $limit = 3)
 {
     $select = $this->sql->select();
     $select->where(array('username' => $username));
     $select->order(array('created_time DESC'));
     if ($limit != 'all') {
         $select->limit($limit);
     }
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $results = $statement->execute();
     if ($results->count() == 0) {
         return false;
     }
     //echo "<br><br>".$select->getSqlString($this->dbAdapter->getPlatform());
     $entityPrototype = new FacebookEntity();
     $hydrator = new ClassMethods();
     $resultset = new HydratingResultSet($hydrator, $entityPrototype);
     $resultset->initialize($results);
     return $resultset;
 }
예제 #22
0
 public function getLinks()
 {
     $select = $this->sql->select();
     $select->order(array('sort_order ASC'));
     //echo "<br><br>".$select->getSqlString($this->dbAdapter->getPlatform());
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $results = $statement->execute();
     /*
     $rows = new ResultSet();
     $arr = $rows->initialize($results)->toArray();
     printR($arr);
     return $arr;
     */
     $entityPrototype = new LinkEntity();
     $hydrator = new ClassMethods();
     $resultset = new HydratingResultSet($hydrator, $entityPrototype);
     $resultset->initialize($results);
     $resultset->buffer();
     return $resultset;
 }
예제 #23
0
 public function fetchAll($topOnly = 1, $bottomOnly = 0, $disabledOnly = 0, $idNameOnly = false)
 {
     $select = $this->sql->select();
     if ($topOnly) {
         $select->where(array('top' => 1, 'disabled' => 0));
         $select->order(array('sort_order_top ASC'));
     } elseif ($bottomOnly) {
         $select->where(array('bottom' => 1, 'disabled' => 0));
         $select->order(array('sort_order_bottom ASC'));
     } elseif ($disabledOnly) {
         $select->where(array('disabled' => 1));
     }
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $results = $statement->execute();
     $entityPrototype = new BlvdCategoryEntity();
     $hydrator = new ClassMethods();
     $resultset = new HydratingResultSet($hydrator, $entityPrototype);
     $resultset->initialize($results);
     $resultset->buffer();
     return $resultset;
 }
예제 #24
0
 /**
  * Metodo abstrato simples para retornar todos os registros da entidade
  * @param array $columns
  * @param array $where
  * @param array $order
  * @return \Zend\Db\ResultSet\HydratingResultSet
  */
 public function findAll(array $columns = null, array $where = null, array $order = null)
 {
     $sqlObject = new Sql($this->dbAdapter);
     $sqlObject->setTable($this->tableName);
     $select = $sqlObject->select();
     if (!is_null($columns)) {
         $select->columns($columns);
     }
     if (!is_null($where)) {
         $select->where($where);
     }
     if (!is_null($order)) {
         $select->order($order);
     }
     $statement = $sqlObject->prepareStatementForSqlObject($select);
     $results = $statement->execute();
     $entityPrototype = new $this->entityClass();
     $hydrator = new ClassMethods();
     $resultset = new HydratingResultSet($hydrator, $entityPrototype);
     $resultset->initialize($results);
     return $resultset;
 }
예제 #25
0
 public function fetchThumbArr($offset, $limit)
 {
     $select = $this->sql->select();
     //$select->where(array('media_url IS NOT NULL'));
     $select->where(array('unpublish' => 0));
     $select->order('id DESC');
     $select->offset($offset);
     $select->limit($limit);
     $str = $select->getSqlString($this->dbAdapter->getPlatform());
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $result = $statement->execute();
     if ($result->count() == 0) {
         return false;
     }
     $hydrator = new ClassMethods();
     $resultSet = new HydratingResultSet($hydrator, new VideosEntity());
     $resultSet->initialize($result);
     $resultSet->buffer();
     $thumbArr = array();
     $showNextPageLink = 0;
     $key = 0;
     foreach ($resultSet as $key => $obj) {
         $thumbArr[$key]['thumb'] = $obj->getThumbnail();
         $thumbArr[$key]['id'] = $obj->getId();
         $thumbArr[$key]['title'] = $obj->getTitle();
         $thumbArr[$key]['video_id'] = $obj->getVideoId();
         $dateYMon = date("Y-M", strtotime($obj->getDateCreated()));
         $thumbArr[$key]['dateYMon'] = $dateYMon;
     }
     if ($limit == $resultSet->count()) {
         $showNextPageLink = 1;
     }
     $key++;
     $thumbArr[$key]['nav']['showNextPageLink'] = $showNextPageLink;
     $thumbArr[$key]['nav']['page'] = $offset / $limit;
     $thumbArr[$key]['nav']['limit'] = $limit;
     return $thumbArr;
 }
예제 #26
0
 public function fetchTwitterUser($screenName)
 {
     $whereArr = array('screen_name' => $screenName);
     $select = $this->sql->select();
     $select->where($whereArr);
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $result = $statement->execute()->current();
     //echo "<br><br>\n".$select->getSqlString($this->dbAdapter->getPlatform())."\n";
     if (!$result) {
         return false;
     }
     $hydrator = new ClassMethods();
     $twitterUser = new TwitterUserEntity();
     $hydrator->hydrate($result, $twitterUser);
     return $twitterUser;
     // this triggers an exception 'getArrayCopy() needed'
     // Zend\Stdlib\Hydrator\ArraySerializable::extract expects the provided object to implement getArrayCopy()
     $entityPrototype = new TwitterUserEntity();
     $hydrator = new ClassMethods();
     $resultset = new HydratingResultSet($hydrator, $entityPrototype);
     $resultset->initialize($results);
     $resultset->buffer();
     return $resultset;
 }
예제 #27
0
 /**
  * Fetch results.
  * 
  * @param Select $select
  * @param object|null $prototype
  * @param HydratorInterface|null $hydrator
  * @return HydratingResultSet
  * @codeCoverageIgnore
  */
 protected function select(Select $select, $prototype = null, HydratorInterface $hydrator = null)
 {
     if ($prototype === null) {
         $prototype = $this->getPrototype();
     }
     if ($hydrator === null) {
         $hydrator = $this->getHydrator();
     }
     $statement = $this->initialize()->getSlaveSql()->prepareStatementForSqlObject($select);
     $resultSet = new HydratingResultSet($hydrator, $prototype);
     return $resultSet->initialize($statement->execute());
 }
예제 #28
0
 /**
  * Returns a collection of hydrated objects or false on error
  * @param Sql $sql
  * @param Select $select
  * @param HydratorInterface $hydrator
  * @param object $prototype
  * @return boolean|ResultSet
  */
 protected function fetchResultSet(Sql $sql, Select $select, HydratorInterface $hydrator = null, $prototype = null)
 {
     if (!$hydrator) {
         $hydrator = $this->hydrator;
     }
     if (!$prototype) {
         $prototype = $this->objectPrototype;
     }
     $result = $this->fetch($sql, $select);
     if ($result) {
         $resultSet = new HydratingResultSet($hydrator, $prototype);
         return $resultSet->initialize($result);
     }
     return false;
 }
예제 #29
0
 /**
  * Return a Hydrating Resultset object
  * @see http://www.php.net/manual/en/class.mongocollection.php
  *
  * @param array $query
  * @param array $fields
  * @param null $entityPrototype
  * @param null $hydrator
  * @param bool $findAll
  * @return bool|HydratingResultSet
  */
 public function find($query = array(), $fields = array(), $entityPrototype = null, $hydrator = null, $findAll = true, $order = array())
 {
     $this->initialise();
     $collection = $this->getCollectionPrototype();
     if ($findAll) {
         $cursor = $collection->find($query, $fields);
         if (is_null($cursor)) {
             return false;
         }
         $resultSet = new HydratingResultSet($hydrator ?: $this->getHydrator(), $entityPrototype ?: clone $this->getEntityPrototype());
         $resultSet->initialize($cursor);
     } else {
         $cursor = $collection->findOne($query, $fields);
         if (is_null($cursor)) {
             return false;
         }
         $resultSet = $this->getHydrator()->hydrate($cursor, $entityPrototype ?: clone $this->getEntityPrototype());
     }
     if (!empty($order)) {
         $cursor->sort($order);
     }
     // Save the cursor to the object for raw output
     $this->setLastCursor($cursor);
     return $resultSet;
 }
예제 #30
0
 /**
  * @param Select $select
  * @param object | null $entityPrototype
  * @param HydratorInterface | null $hydrator
  * @return HydratingResultSet
  */
 protected function select(Select $select, $entityPrototype = null, HydratorInterface $hydrator = null)
 {
     $statement = $this->getSlaveSql()->prepareStatementForSqlObject($select);
     $resultSet = new HydratingResultSet($hydrator ?: $this->hydrator, $entityPrototype ?: $this->getEntityPrototype());
     $resultSet->initialize($statement->execute());
     return $resultSet;
 }