/** * {@inheritDoc} */ protected function marshalInputFilter(array &$config, ServiceLocatorInterface $services, FormFactory $formFactory) { if ($services->has('InputFilterManager')) { $inputFilterFactory = $formFactory->getInputFilterFactory(); $inputFilterFactory->setInputFilterManager($services->get('InputFilterManager')); } parent::marshalInputFilter($config, $services, $formFactory); }
/** * Get InputFilter factory * * @{inheritdoc} * @return InputFilterFactory */ public function getInputFilterFactory() { $factory = parent::getInputFilterFactory(); // Ensure Pi\Filter\FilterChain is used if (!$factory->getDefaultFilterChain() instanceof FilterChain) { $factory->setDefaultFilterChain(new FilterChain()); } return $factory; }
/** * Get current input filter factory * * If none provided, uses an unconfigured instance. * * @return InputFilterFactory */ public function getInputFilterFactory() { $inputFilterFactory = parent::getInputFilterFactory(); if (!$this->inputFilterFactoryDefaultsInitialized) { $this->inputFilterFactoryDefaultsInitialized = true; $dfc = $inputFilterFactory->getDefaultFilterChain(); $dvc = $inputFilterFactory->getDefaultValidatorChain(); if (empty($dfc)) { $inputFilterFactory->setDefaultFilterChain($dfc = new FilterChain()); } if (empty($dvc)) { $inputFilterFactory->setDefaultValidatorChain($dvc = new ValidatorChain()); } $initializer = array($this, 'initializeApplicationServiceLocators'); $dfc->getPluginManager()->addInitializer($initializer, false); $dvc->getPluginManager()->addInitializer($initializer, false); } return $inputFilterFactory; }
/** * Marshal the input filter into the configuration * * If an input filter is specified: * - if the InputFilterManager is present, checks if it's there; if so, * retrieves it and resets the specification to the instance. * - otherwise, pulls the input filter factory from the form factory, and * attaches the FilterManager and ValidatorManager to it. * * @param array $config * @param ServiceLocatorInterface $services * @param Factory $formFactory */ protected function marshalInputFilter(array &$config, ServiceLocatorInterface $services, Factory $formFactory) { if (!isset($config['input_filter'])) { return; } if ($config['input_filter'] instanceof InputFilterInterface) { return; } if (is_string($config['input_filter']) && $services->has('InputFilterManager')) { $inputFilters = $services->get('InputFilterManager'); if ($inputFilters->has($config['input_filter'])) { $config['input_filter'] = $inputFilters->get($config['input_filter']); return; } } $inputFilterFactory = $formFactory->getInputFilterFactory(); $inputFilterFactory->getDefaultFilterChain()->setPluginManager($services->get('FilterManager')); $inputFilterFactory->getDefaultValidatorChain()->setPluginManager($services->get('ValidatorManager')); }
/** * Inject the annotation builder's factory instance with the FormElementManager. * * Also injects the factory with the InputFilterManager if present. * * @param Factory $factory * @param ContainerInterface $container */ private function injectFactory(Factory $factory, ContainerInterface $container) { $factory->setFormElementManager($container->get('FormElementManager')); if ($container->has('InputFilterManager')) { $inputFilters = $container->get('InputFilterManager'); $factory->getInputFilterFactory()->setInputFilterManager($inputFilters); } }