/** * Retrieves the generated hydrator FQCN * * @return string */ public function getHydratorClass() { $inflector = $this->configuration->getClassNameInflector(); $realClassName = $inflector->getUserClassName($this->configuration->getHydratedClassName()); $hydratorClassName = $inflector->getGeneratedClassName($realClassName, array('factory' => get_class($this))); if (!class_exists($hydratorClassName) && $this->configuration->doesAutoGenerateProxies()) { $generator = new HydratorGenerator(); $originalClass = new ReflectionClass($realClassName); $generatedAst = $generator->generate($originalClass); $traverser = new NodeTraverser(); $traverser->addVisitor(new ClassRenamerVisitor($originalClass, $hydratorClassName)); $this->configuration->getGeneratorStrategy()->generate($traverser->traverse($generatedAst)); $this->configuration->getGeneratedClassAutoloader()->__invoke($hydratorClassName); } return $hydratorClassName; }
/** * @covers \GeneratedHydrator\Configuration::getClassNameInflector * @covers \GeneratedHydrator\Configuration::setClassNameInflector */ public function testSetGetClassNameInflector() { $this->assertInstanceOf('CodeGenerationUtils\\Inflector\\ClassNameInflectorInterface', $this->configuration->getClassNameInflector()); $inflector = $this->getMock('CodeGenerationUtils\\Inflector\\ClassNameInflectorInterface'); $this->configuration->setClassNameInflector($inflector); $this->assertSame($inflector, $this->configuration->getClassNameInflector()); }