/** * createService * * Create a new instance of the form row view helper. * * @param ServiceLocatorInterface $viewHelperManager The view helper plugin manager. * @param string $name The name of the service to created. * @param string $requestedName The name of the service that is being requested. * * @return FormRow */ public function __invoke(ServiceLocatorInterface $viewHelperManager, $name, $requestedName) { /** @var HelperPluginManager $viewHelperManager */ $options = $this->getOptions($viewHelperManager, $requestedName); $options['label_helper'] = isset($options['label_helper']) ? $options['label_helper'] : 'FormLabel'; $options['element_helper'] = isset($options['element_helper']) ? $options['element_helper'] : 'FormElement'; $options['errors_helper'] = isset($options['errors_helper']) ? $options['errors_helper'] : 'FormElementErrors'; $options['element_wrapper'] = isset($options['element_wrapper']) ? $options['element_wrapper'] : 'htmlElement'; $helper = new FormRow(); /** @var FormLabel $labelHelper */ $labelHelper = $viewHelperManager->get($options['label_helper']); /** @var FormElement $elementHelper */ $elementHelper = $viewHelperManager->get($options['element_helper']); /** @var FormElementErrors $errorHelper */ $errorHelper = $viewHelperManager->get($options['errors_helper']); $helper->setLabelHelper($labelHelper); $helper->setElementHelper($elementHelper); $helper->setElementErrorsHelper($errorHelper); /** @var HtmlElement $htmlElement */ if (is_array($options['element_wrapper'])) { $htmlElement = $viewHelperManager->get('htmlElement', $options['element_wrapper']); } else { $htmlElement = $viewHelperManager->get($options['element_wrapper']); } $helper->setElementWrapper($htmlElement); if (empty($options['form_group'])) { $options['form_group'] = ['attributes' => ['class' => 'form-group']]; } /** @var HtmlElement $htmlElement */ if (is_array($options['form_group'])) { $htmlElement = $viewHelperManager->get('formGroup', $options['form_group']); } else { $htmlElement = $viewHelperManager->get($options['form_group']); } $helper->setGroupHelper($htmlElement); return $helper; }
/** * render * * Render the view helper as a HTML string. * * @param ElementInterface $element The form element that should be rendered. * @param array $options Optional view helper options. * * @return string */ public function render(ElementInterface $element, array $options = []) { return parent::render($this->formRowHelper->render($element), $options); }