Programming Language PHP

Namespace Oro\Component\Layout\Loader\Generator

Class VisitContext

Total Examples 5

5 code examples of PHP Oro\Component\Layout\Loader\Generator\VisitContext extracted from open source projects

Was this example useful?
0
                                                    public function endVisit(VisitContext $visitContext): void
    {
        $visitContext->appendToUpdateMethodBody('}');
    }
                                            
Was this example useful?
0
                                                    public function startVisit(VisitContext $visitContext): void
    {
        $visitContext->appendToUpdateMethodBody('if (true) {');
    }
                                            
Was this example useful?
0
                                                    public function startVisit(VisitContext $visitContext): void
    {
        $class = $visitContext->getClass();
        $class->addImplement(LayoutUpdateImportInterface::class);
        if (!\in_array(IsApplicableLayoutUpdateInterface::class, $class->getImplements())) {
            $class->addImplement(IsApplicableLayoutUpdateInterface::class);
        }

        $class->addMethod('isApplicable')
            ->addBody('return true;')
            ->addParameter('context')->setType(ContextInterface::class);

        $class->addMethod('getImport')
            ->addBody('return $this->import;');

        $class->addMethod('setImport')
            ->addBody('$this->import = $import;')
            ->addParameter('import')->setType(LayoutUpdateImport::class);

        $class->addProperty('import')->setPrivate();

        $class->addMethod('setParentUpdate')
            ->addBody('$this->parentLayoutUpdate = $parentLayoutUpdate;')
            ->addParameter('parentLayoutUpdate')->setType(ImportsAwareLayoutUpdateInterface::class);

        $class->addProperty('parentLayoutUpdate')->setPrivate();

        $visitContext->appendToUpdateMethodBody(
            <<<'CODE'
if (null === $this->import) {
    throw new \RuntimeException('Missing import configuration for layout update');
}

if ($this->parentLayoutUpdate instanceof \Oro\Component\Layout\IsApplicableLayoutUpdateInterface
    && !$this->parentLayoutUpdate->isApplicable($item->getContext())) {
    return;
}

$layoutManipulator = new \Oro\Component\Layout\ImportLayoutManipulator($layoutManipulator, $this->import);
CODE
        );
    }
                                            
Was this example useful?
0
                                                    public function startVisit(VisitContext $visitContext): void
    {
        $class = $visitContext->getClass();
        if (!\in_array(IsApplicableLayoutUpdateInterface::class, $class->getImplements())) {
            $class->addImplement(IsApplicableLayoutUpdateInterface::class);
        }

        $class->addMethod('isApplicable')
            ->addBody(\sprintf('return %s;', $this->expressionLanguage->compile($this->expression)))
            ->addParameter('context')->setType(ContextInterface::class);

        $oldUpdateMethodBody = $visitContext->getUpdateMethodBody();
        $visitContext->setUpdateMethodBody(
            <<<'CODE'
if (!$this->isApplicable($item->getContext())) {
    return;
}
CODE
        );
        $visitContext->appendToUpdateMethodBody($oldUpdateMethodBody);
    }
                                            
Was this example useful?
0
                                                    public function startVisit(VisitContext $visitContext): void
    {
        $class = $visitContext->getClass();
        if (!\in_array(IsApplicableLayoutUpdateInterface::class, $class->getImplements())) {
            $class->addImplement(IsApplicableLayoutUpdateInterface::class);
        }

        $class->addMethod('isApplicable')
            ->addBody(\sprintf('return %s;', $this->expressionLanguage->compile($this->expression)))
            ->addParameter('context')->setType(ContextInterface::class);

        $oldUpdateMethodBody = $visitContext->getUpdateMethodBody();
        $visitContext->setUpdateMethodBody(
            <<<'CODE'
if (!$this->isApplicable($item->getContext())) {
    return;
}
CODE
        );
        $visitContext->appendToUpdateMethodBody($oldUpdateMethodBody);
    }
                                            
VisitContext's Other Methods