/** * Asks the ViewHelper for argument definitions and adds * a case which matches our custom ViewHelper in order to * manipulate its argument definitions. * * @param ViewHelperInterface $viewHelper * @return ArgumentDefinition[] */ public function getArgumentDefinitionsForViewHelper(ViewHelperInterface $viewHelper) { $arguments = parent::getArgumentDefinitionsForViewHelper($viewHelper); if ($viewHelper instanceof CustomViewHelper) { $arguments['page'] = new ArgumentDefinition('page', 'array', 'This is our new description for the argument', FALSE, array('foo' => 'bar')); } return $arguments; }
/** * Constructor. * * @param ViewHelperResolver an instance or subclass of ViewHelperResolver * @param string $namespace the namespace identifier of the ViewHelper. * @param string $identifier the name of the ViewHelper to render, inside the namespace provided. * @param NodeInterface[] $arguments Arguments of view helper - each value is a RootNode. * @param ParsingState $state */ public function __construct(ViewHelperResolver $resolver, $namespace, $identifier, array $arguments, ParsingState $state) { $this->viewHelperResolver = $resolver; $this->viewHelperClassName = $resolver->resolveViewHelperClassName($namespace, $identifier); $this->uninitializedViewHelper = $resolver->createViewHelperInstance($namespace, $identifier); $this->arguments = $arguments; $this->argumentDefinitions = $resolver->getArgumentDefinitionsForViewHelper($this->uninitializedViewHelper); $this->rewriteBooleanNodesInArgumentsObjectTree($this->argumentDefinitions, $this->arguments); }