/** * 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(); }
/** * @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]; }
/** * 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; }
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()); }