/** * @param PostInterface $postObject * @return PostInterface * @throws \Exception */ public function save(PostInterface $postObject) { // $postData = $this->hydrator->extract($postObject); unset($postData['id']); if ($postObject->getId()) { # code... $action = new Update('posts'); $action->set($postData); $action->where(array('id = ?' => $postObject->getId())); } else { $action = new Insert('posts'); $action->values($postData); } $sql = new Sql($this->dbAdapter); $stmt = $sql->prepareStatementForSqlObject($action); $result = $stmt->execute(); if ($result instanceof ResultInterface) { # code... if ($newId = $result->getGeneratedValue()) { # code... $postObject->setId($newId); } return $postObject; } throw new \Exception("Database eror"); }
/** * Extract values from an object * * @param object $object * @throws \Zf2Libs\Stdlib\Extractor\Exception\InvalidArgumentException * @return array */ public function extract($object) { if (!$object instanceof ImageInterface) { throw new InvalidArgumentException("Invalid object must be instance of ImageInterface"); } return $this->hydrator->extract($object); }
/** * @param PostInterface $postObject * * @return PostInterface * @throws \Exception */ public function save(PostInterface $postObject) { $postData = $this->hydrator->extract($postObject); unset($postData['id']); //Neither Insert nor Update needs the ID in the array if ($postObject->getId()) { //ID present, it's an update $action = new Update('post'); $action->set($postData); $action->where(array('id = ?' => $postObject->getId())); } else { // ID not present, it's an Insert $action = new Insert('post'); $action->values($postData); } $sql = new Sql($this->dbAdapter); $stmt = $sql->prepateStatementForSqlObject($action); $result = $stmt->execute(); if ($result instanceof ResultInterface) { if ($newId = $result->getGeneratedValue()) { //when a value has been generated, set it on the object $postObject->setId($newId); } return $postObject; } throw new \Exception("Database error"); }
/** * Extract values from an object * * @param object $object * @return array */ public function extract($object) { $data = $this->wrappedHydrator->extract($object); if (array_key_exists('order', $data) && !empty($data['order'])) { $data['order_id'] = $data['order']->getId(); unset($data['order']); } return $data; }
/** * (non-PHPdoc) * @see Zend\Stdlib\Hydrator.HydratorInterface::extract() */ public function extract($object) { /** @var ItemInterface $object */ if (!$object instanceof ItemInterface) { throw new InvalidArgumentException('Can only extract ItemInterface.'); } $data = array(); $data[self::KEY_ITEM] = $this->itemHydrator->extract($object); $data[self::KEY_META] = $this->metaHydrator->extract($object); return $data; }
/** * @param AbstractEntity $entity * @return $this */ public function persist(AbstractEntity $entity) { $data = $this->hydrator->extract($entity); if ($this->hasIdentity($entity)) { $this->gateway->update($data, ['id' => $entity->getId()]); } else { $this->gateway->insert($data); $entity->setId($this->gateway->getLastInsertValue()); } return $this; }
/** * @param $command * @param $entity * @param bool $addExtractedEntity * * @return Result */ protected function createResult($command, $entity, $addExtractedEntity = true) { $meta = $this->objectManager->getClassMetadata($this->className); $identifiers = $meta->getIdentifierValues($entity); $result = new Result($command, current($identifiers)); if (!$addExtractedEntity) { return $result; } $data = $this->hydrator->extract($entity); $result->addParams(['item' => $data]); return $result; }
public function testHydratingObjects() { $this->hydrator->addStrategy('entities', new TestAsset\HydratorStrategy()); $entityA = new TestAsset\HydratorStrategyEntityA(); $entityA->addEntity(new TestAsset\HydratorStrategyEntityB(111, 'AAA')); $entityA->addEntity(new TestAsset\HydratorStrategyEntityB(222, 'BBB')); $attributes = $this->hydrator->extract($entityA); $attributes['entities'][] = 333; $this->hydrator->hydrate($attributes, $entityA); $entities = $entityA->getEntities(); $this->assertCount(3, $entities); }
public function testContextAwarenessExtract() { $strategy = new TestAsset\HydratorStrategyContextAware(); $this->hydrator->addStrategy('field2', $strategy); $entityB = new TestAsset\HydratorStrategyEntityB('X', 'Y'); $attributes = $this->hydrator->extract($entityB); $this->assertEquals($entityB, $strategy->object); }
public function updatePost($values, $postId) { $values = $this->hydrator->extract($values); $encodedValue = json_encode($values); $sql = 'SELECT * FROM blog.post_update(:data::json)'; $stmt = $this->dbAdapter->createStatement($sql); $result = $stmt->execute(array('data' => $encodedValue)); $resultRow = $result->current(); $newPostArray = json_decode($resultRow['post_update'], true); $newPostObject = $this->hydrator->hydrate($newPostArray, new Post()); // $newPostObject = $this->hydrator->hydrate($values, $this->postPrototype); return $newPostObject; }
/** * @param object|array $values * @return bool * @throws \Exception */ public function update($values) { if (is_object($values)) { $values = $this->_hydrator->extract($values); } $values = array_intersect_key($values, $this->_class->getFields()); $identifier = $this->_class->getIdentifier(); $identifiers = array_intersect_key($values, $identifier); $result = $this->_em->getConnexionDriver()->updateItem($identifiers, $values, $this->_class); if (!$result) { throw new \Exception('Something wrong.'); } return $this->_hydrator->hydrate($values, new $this->_entityName()); }
/** * Extract values from an object * * @param object $object * @return array */ public function extract($object) { return $this->hydrator->extract($object); }
/** * Extract values from an object. * * @param object $object * * @return array */ public function extract($object) { return $this->extractService->extract($object); }
/** * Callback to be used when {@see \Zend\Stdlib\Hydrator\Aggregate\ExtractEvent::EVENT_EXTRACT} is triggered * * @param \Zend\Stdlib\Hydrator\Aggregate\ExtractEvent $event * * @return array * * @internal */ public function onExtract(ExtractEvent $event) { $data = $this->hydrator->extract($event->getExtractionObject()); $event->mergeExtractedData($data); return $data; }
/** {@inheritdoc} */ public function extract($object) { return array_change_key_case($this->_hydrator->extract($object), CASE_UPPER); }
/** * @iterations 20000 * @group extraction */ public function generatedHydratorExtract() { $data = $this->hydrator->extract($this->hydratedObject); }
function it_extracts_values_from_an_object(HydratorInterface $hydrator) { $object = new ShortExampleWithValues(); $hydrator->extract($object)->willReturn(['c' => 1]); $this->extract($object)->shouldReturn(['c' => 1]); }
/** * @param Paginator $paginator */ public function setPaginator(Paginator $paginator) { foreach ($paginator->getCurrentItems() as $k => $item) { $this->setVariable($k, $this->hydrator->extract($item)); } }
/** * {@inheritdoc} */ public function extract($object) { $this->ensureObject($object); return $this->hydrator->extract($object); }