/**
  * Hydrate $object with the provided $data.
  *
  * @param  array $data
  * @param  object $object
  * @return object
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['owner'])) {
         return $object;
     }
     $hydrators = new AggregateHydrator();
     $hydrators->add(new UserHydrator());
     $hydrators->add(new ImageCollectionAwareHydrator());
     $object->setOwner($hydrators->hydrate($data['owner'], new User()));
     return $object;
 }
 /**
  * Hydrate $object with the provided $data.
  *
  * @param  array $data
  * @param  object $object
  * @return object
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['album'])) {
         return $object;
     }
     $hydrators = new AggregateHydrator();
     $hydrators->add(new AlbumHydrator());
     $hydrators->add(new ImageCollectionAwareHydrator());
     $object->setAlbum($hydrators->hydrate($data['album'], new Album()));
     return $object;
 }
 /**
  * Verifies that stopping propagation within a listener in the hydrator allows modifying how the
  * hydrator behaves
  */
 public function testStoppedPropagationInHydration()
 {
     $object = new ArrayObject();
     $swappedObject = new stdClass();
     $callback = function (HydrateEvent $event) use($swappedObject) {
         $event->setHydratedObject($swappedObject);
         $event->stopPropagation();
     };
     $this->hydrator->add(new ArraySerializable());
     $this->hydrator->getEventManager()->attach(HydrateEvent::EVENT_HYDRATE, $callback, 1000);
     $this->assertSame($swappedObject, $this->hydrator->hydrate(array('president' => 'Zaphod'), $object));
 }
 /**
  * @param array $data
  * @param ArtistCollection $object
  * @return ArtistCollection
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['artists'])) {
         return $object;
     }
     foreach ($data['artists'] as $artist) {
         $hydrators = new AggregateHydrator();
         $hydrators->add(new ArtistHydrator());
         $hydrators->add(new ImageCollectionAwareHydrator());
         $object->add($hydrators->hydrate($artist, new Artist()));
     }
     return $object;
 }
 /**
  * Hydrate $object with the provided $data.
  *
  * @param  array $data
  * @param  object $object
  * @return object
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['track'])) {
         return $object;
     }
     $hydrators = new AggregateHydrator();
     $hydrators->add(new TrackHydrator());
     $hydrators->add(new AlbumAwareHydrator());
     $hydrators->add(new ArtistCollectionAwareHydrator());
     $hydrators->add(new ImageCollectionAwareHydrator());
     $object->setTrack($hydrators->hydrate($data['track'], new Track()));
     return $object;
 }
 public function testHydrationDoesntHappenWhenNoKeysAreFound()
 {
     $data = ['baz' => 'LONELY BAZ'];
     $aggregateHydrator = new AggregateHydrator();
     $aggregateHydrator->add(new ClassMethods());
     $aggregateHydrator->add(new OneToOneHydrator('foo_', 'setFoo', new Foo()));
     $aggregateHydrator->add(new OneToOneHydrator('bar_', 'setBar', new Bar()));
     $dummy = $aggregateHydrator->hydrate($data, new Dummy());
     $this->assertInstanceOf('SamTest\\DummyEntity\\Dummy', $dummy);
     $this->assertEquals('LONELY BAZ', $dummy->getBaz());
     $this->assertNull($dummy->getFoo());
     $this->assertNull($dummy->getBar());
 }
 /**
  * @param array $data
  * @param Pagination $object
  * @return object
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['items'])) {
         return $object;
     }
     $playlistTrackCollection = new PlaylistTrackCollection();
     foreach ($data['items'] as $playlistTrack) {
         $hydrators = new AggregateHydrator();
         $hydrators->add(new TrackAwareHydrator());
         $playlistTrackCollection->add($hydrators->hydrate($playlistTrack, new PlaylistTrack()));
     }
     $object->setItems($playlistTrackCollection);
     return $object;
 }
 /**
  * @param array $data
  * @param Pagination $object
  * @return object
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['items'])) {
         return $object;
     }
     $albumCollection = new AlbumCollection();
     foreach ($data['items'] as $album) {
         $hydrators = new AggregateHydrator();
         $hydrators->add(new AlbumHydrator());
         $hydrators->add(new ImageCollectionAwareHydrator());
         $albumCollection->add($hydrators->hydrate($album, new Album()));
     }
     $object->setItems($albumCollection);
     return $object;
 }
 /**
  * @param array $data
  * @param TrackCollection $object
  * @return TrackCollection
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['tracks'])) {
         return $object;
     }
     foreach ($data['tracks'] as $track) {
         $hydrators = new AggregateHydrator();
         $hydrators->add(new TrackHydrator());
         $hydrators->add(new AlbumAwareHydrator());
         $hydrators->add(new ArtistCollectionAwareHydrator());
         $hydrators->add(new ImageCollectionAwareHydrator());
         $object->add($hydrators->hydrate($track, new Track()));
     }
     return $object;
 }
 /**
  * @param array $data
  * @param AlbumCollection $object
  * @return AlbumCollection
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['albums'])) {
         return $object;
     }
     foreach ($data['albums'] as $album) {
         $hydrators = new AggregateHydrator();
         $hydrators->add(new AlbumHydrator());
         $hydrators->add(new ArtistCollectionAwareHydrator());
         $hydrators->add(new ImageCollectionAwareHydrator());
         $hydrators->add(new PaginatedTrackCollectionAwareHydrator());
         $object->add($hydrators->hydrate($album, new Album()));
     }
     return $object;
 }
Esempio n. 11
0
 /**
  * @covers \Zend\Stdlib\Hydrator\Aggregate\AggregateHydrator::hydrate
  */
 public function testHydrate()
 {
     $object = new stdClass();
     $this->eventManager->expects($this->once())->method('trigger')->with($this->isInstanceOf('Zend\\Stdlib\\Hydrator\\Aggregate\\HydrateEvent'));
     $this->assertSame($object, $this->hydrator->hydrate(array('foo' => 'bar'), $object));
 }
Esempio n. 12
0
 /**
  * @param string $id
  * @return Entity\PlaylistPagination
  */
 public function getUserPlaylists($id)
 {
     $request = $this->guzzleClient->createRequest('GET', sprintf('/v1/users/%s/playlists', $id));
     $response = $this->sendRequest($request)->json();
     $hydrators = new AggregateHydrator();
     $hydrators->add(new Hydrator\PaginationHydrator());
     $hydrators->add(new Hydrator\PaginatedPlaylistCollectionHydrator());
     return $hydrators->hydrate($response, new Entity\PlaylistPagination());
 }