Example #1
0
 /**
  * Gets the hydrator class name.
  *
  * @param string $fqcn
  *
  * @return string
  */
 public function getHydratorClassName($fqcn)
 {
     $config = new Configuration($fqcn);
     $config->setAutoGenerateProxies($this->generateProxies);
     $config->setGeneratedClassesTargetDir($this->cacheDir);
     return $config->createFactory()->getHydratorClass();
 }
Example #2
0
 /**
  * @param $class
  */
 public function __construct($class, AnnotationReader $annotationReader)
 {
     $this->class = $class;
     $this->annotationReader = $annotationReader;
     $config = new Configuration($class);
     $hydratorClass = $config->createFactory()->getHydratorClass();
     $this->hydrator = new $hydratorClass();
 }
 /**
  * @param string $class
  * @return HydratorInterface
  */
 private function getHydrator($class)
 {
     if (empty($this->hydrators[$class])) {
         $config = new Configuration($class);
         $hydratorClass = $config->createFactory()->getHydratorClass();
         $this->hydrators[$class] = new $hydratorClass();
     }
     return $this->hydrators[$class];
 }
Example #4
0
 /**
  * Returns a GeneratedHydrator for the object
  *
  * @param object $object
  *
  * @return HydratorInterface
  */
 private static function getHydrator($object)
 {
     $class = get_class($object);
     if (!isset(self::$hydratorCache[$class])) {
         $configuration = new Configuration($class);
         $hydratorClass = $configuration->createFactory()->getHydratorClass();
         self::$hydratorCache[$class] = new $hydratorClass();
     }
     return self::$hydratorCache[$class];
 }
 public function getHydrator($class)
 {
     if (isset($this->hydrators[$class])) {
         return $this->hydrators[$class];
     }
     $configuration = new Configuration($class);
     $configuration->setGeneratedClassesNamespace('Rogiel\\StarReplay\\Hydrator\\Generated');
     if ($this->directory !== null) {
         $configuration->setGeneratedClassesTargetDir($this->directory);
         spl_autoload_register($configuration->getGeneratedClassAutoloader());
     }
     $hydratorClass = $configuration->createFactory()->getHydratorClass();
     $this->hydrators[$class] = new $hydratorClass();
     return $this->hydrators[$class];
 }
 public function process(ResponseInterface $response, ResourceDefinitionInterface $resource)
 {
     if (!$response instanceof ApiResponse) {
         throw new InvalidArgumentException(sprintf('Expected an `ApiResponse`, got `%s` instead', get_class($response)));
     }
     $returnType = $resource->getReturnType();
     $config = new Configuration($returnType);
     $hydratorClass = $config->createFactory()->getHydratorClass();
     $hydrator = new $hydratorClass();
     $object = new $returnType();
     if ($resource->getMethod() !== ResourceDefinitionInterface::METHOD_CGET) {
         return $hydrator->hydrate($response->getData(), $object);
     }
     $result = [];
     foreach ($response->getData() as $item) {
         $current = clone $object;
         $result[] = $hydrator->hydrate($item, $current);
     }
     return $result;
 }
Example #7
0
    public $baz = 3;
    public function getFoo()
    {
        return $this->foo;
    }
    public function getBar()
    {
        return $this->bar;
    }
    public function getBaz()
    {
        return $this->baz;
    }
}
$config = new Configuration('Foo');
$hydratorClass = $config->createFactory()->getHydratorClass();
$hydrator = new $hydratorClass();
$foo = new Foo();
$data = $hydrator->extract($foo);
echo "\nExtracted data:\n";
echo "foo: " . $data['foo'] . "\n";
// 1
echo "bar: " . $data['bar'] . "\n";
// 2
echo "baz: " . $data['baz'] . "\n";
// 3
$hydrator->hydrate(array('foo' => 4, 'bar' => 5, 'baz' => 6), $foo);
echo "\nObject hydrated with new data:\n";
echo "foo: " . $foo->getFoo() . "\n";
// 4
echo "bar: " . $foo->getBar() . "\n";
 /**
  * @covers \GeneratedHydrator\Factory\HydratorFactory::__construct
  * @covers \GeneratedHydrator\Factory\HydratorFactory::getHydratorClass
  */
 public function testWillGenerateValidClass()
 {
     $generatedClass = $this->config->createFactory()->getHydratorClass();
     $this->assertInstanceOf('Zend\\Stdlib\\Hydrator\\HydratorInterface', new $generatedClass());
 }
 /**
  * Generates a hydrator for the given class name, and retrieves an instance of it
  *
  * @param object $object
  *
  * @return \Zend\Stdlib\Hydrator\HydratorInterface
  */
 private function generateHydrator($object)
 {
     $config = new Configuration(get_class($object));
     $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     $generatedClass = $config->createFactory()->getHydratorClass();
     return new $generatedClass();
 }
 /**
  * Generates a hydrator for the given class name, and retrieves its class name
  *
  * @param object $instance
  *
  * @return \GeneratedHydratorTestAsset\HydratedObject|\Zend\Stdlib\Hydrator\HydratorInterface
  */
 private function generateHydrator($instance)
 {
     $parentClassName = get_class($instance);
     $generatedClassName = __NAMESPACE__ . '\\' . UniqueIdentifierGenerator::getIdentifier('Foo');
     $config = new Configuration($parentClassName);
     $inflector = $this->getMock('CodeGenerationUtils\\Inflector\\ClassNameInflectorInterface');
     $inflector->expects($this->any())->method('getGeneratedClassName')->with($parentClassName)->will($this->returnValue($generatedClassName));
     $inflector->expects($this->any())->method('getUserClassName')->with($parentClassName)->will($this->returnValue($parentClassName));
     $config->setClassNameInflector($inflector);
     $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     $generatedClass = $config->createFactory()->getHydratorClass();
     return new $generatedClass();
 }
 /**
  * @covers \GeneratedHydrator\Configuration::createFactory
  */
 public function testCreateFactory()
 {
     $this->assertInstanceOf('GeneratedHydrator\\Factory\\HydratorFactory', $this->configuration->createFactory());
 }