public function generate(\ReflectionClass $class, PhpClass $genClass) { if (!empty($this->requiredFile)) { $genClass->addRequiredFile($this->requiredFile); } $genClass->setProperty(PhpProperty::create()->setName(self::PREFIX . 'container')->setVisibility('private')); $genClass->setMethod(PhpMethod::create()->setName(self::PREFIX . 'setContainer')->addParameter(PhpParameter::create()->setName('container')->setType('Symfony\\Component\\DependencyInjection\\ContainerInterface'))->setBody('$this->' . self::PREFIX . 'container = $container;')); $genClass->addInterfaceName('JMS\\DiExtraBundle\\DependencyInjection\\LookupMethodClassInterface'); $genClass->setMethod(PhpMethod::create()->setName(self::PREFIX . 'getOriginalClassName')->setFinal(true)->setBody('return ' . var_export($class->name, true) . ';')); foreach ($this->getLookupMethods() as $name => $value) { $genClass->setMethod(PhpMethod::fromReflection($class->getMethod($name))->setAbstract(false)->setBody('return ' . $this->dumpValue($value) . ';')->setDocblock(null)); } }
/** * {@inheritdoc} */ public function generate(array $schema, PhpClass $class) { $class->addInterfaceName('Oro\\Bundle\\ActivityBundle\\Model\\ActivityInterface'); parent::generate($schema, $class); }
protected function addDependentFixtureInterface(PhpClass $class, ClassMetadata $metadata, array $options) { $class->addInterfaceName('Doctrine\\Common\\DataFixtures\\DependentFixtureInterface'); $writer = new Writer(); $method = PhpMethod::create('getDependencies'); $writer->writeln("return array("); $associations = array(); foreach ($metadata->getAssociationNames() as $assocName) { $targetClass = $metadata->getAssociationTargetClass($assocName); $associations[] = sprintf("'%s\\%s'", $options['namespace'], $this->namingStrategy->fixtureName($this->getManager()->getClassMetadata($targetClass))); } $writer->indent(); $writer->writeln(implode(",\n", $associations)); $writer->outdent(); $writer->writeln(");"); $method->setBody($writer->getContent()); $class->setMethod($method); }
public function refineClass(PhpClass $class) { switch (strtolower($class->getName())) { case 'domnodelist': $class->addInterfaceName('Traversable'); break; } }