コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function endVisit(VisitContext $visitContext)
 {
     $writer = $visitContext->createWriter();
     $writer->writeln(sprintf('return \'%s\';', $this->elementId));
     $method = PhpMethod::create('getElement');
     $method->setBody($writer->getContent());
     $visitContext->getClass()->setMethod($method);
 }
コード例 #2
0
 /**
  * {@inheritdoc}
  */
 public function startVisit(VisitContext $visitContext)
 {
     $writer = $visitContext->createWriter();
     $class = $visitContext->getClass();
     $class->addInterfaceName('Oro\\Component\\ConfigExpression\\ExpressionFactoryAwareInterface');
     $setFactoryMethod = PhpMethod::create('setExpressionFactory');
     $setFactoryMethod->addParameter(PhpParameter::create('expressionFactory')->setType('Oro\\Component\\ConfigExpression\\ExpressionFactoryInterface'));
     $setFactoryMethod->setBody($writer->write('$this->expressionFactory = $expressionFactory;')->getContent());
     $class->setMethod($setFactoryMethod);
     $factoryProperty = PhpProperty::create('expressionFactory');
     $factoryProperty->setVisibility(PhpProperty::VISIBILITY_PRIVATE);
     $class->setProperty($factoryProperty);
     $visitContext->getUpdateMethodWriter()->writeln('if (null === $this->expressionFactory) {')->writeln('    throw new \\RuntimeException(\'Missing expression factory for layout update\');')->writeln('}')->writeln('')->writeln(sprintf('$expr = %s;', $this->expression->compile('$this->expressionFactory')))->writeln(sprintf('$context = [\'context\' => $%s->getContext()];', LayoutUpdateGeneratorInterface::PARAM_LAYOUT_ITEM))->writeln('if ($expr->evaluate($context)) {')->indent();
 }
コード例 #3
0
ファイル: VisitContextTest.php プロジェクト: Maksold/platform
 public function testContextClassGetter()
 {
     $class = $this->getClass();
     $visitContext = new VisitContext($class);
     $this->assertSame($class, $visitContext->getClass());
 }