コード例 #1
0
 protected function createForm($config, ServiceLocatorInterface $formElements, $name, $requestedName)
 {
     $services = $formElements->getServiceLocator();
     $factory = new Factory($formElements);
     $factory->setInputFilterFactory($this->getInputFilterFactory($services));
     if (isset($config['input_filter']) && is_string($config['input_filter'])) {
         $inputFilters = $services->get('InputFilterManager');
         if ($inputFilters->has($config['input_filter'])) {
             $config['input_filter'] = $inputFilters->get($config['input_filter']);
         }
     }
     return $factory->createForm($config);
 }
コード例 #2
0
ファイル: FactoryTest.php プロジェクト: pnaq57/zf2demo
 public function testCanCreateFormFromConcreteClassAndSpecifyCustomValidatorByName()
 {
     $validatorManager = new \Zend\Validator\ValidatorPluginManager();
     $validatorManager->setInvokableClass('baz', 'ZendTest\\Validator\\TestAsset\\ConcreteValidator');
     $defaultValidatorChain = new \Zend\Validator\ValidatorChain();
     $defaultValidatorChain->setPluginManager($validatorManager);
     $inputFilterFactory = new \Zend\InputFilter\Factory();
     $inputFilterFactory->setDefaultValidatorChain($defaultValidatorChain);
     $factory = new FormFactory();
     $factory->setInputFilterFactory($inputFilterFactory);
     $form = $factory->createForm(array('name' => 'foo', 'factory' => $factory, 'input_filter' => array('bar' => array('name' => 'bar', 'required' => true, 'validators' => array(array('name' => 'baz'))))));
     $this->assertInstanceOf('Zend\\Form\\FormInterface', $form);
     $inputFilter = $form->getInputFilter();
     $this->assertInstanceOf('Zend\\InputFilter\\InputFilterInterface', $inputFilter);
     $input = $inputFilter->get('bar');
     $this->assertInstanceOf('Zend\\InputFilter\\Input', $input);
     $validatorChain = $input->getValidatorChain();
     $this->assertInstanceOf('Zend\\Validator\\ValidatorChain', $validatorChain);
     $validatorArray = $validatorChain->getValidators();
     $found = false;
     foreach ($validatorArray as $validator) {
         $validatorInstance = $validator['instance'];
         $this->assertInstanceOf('Zend\\Validator\\ValidatorInterface', $validatorInstance);
         if ($validatorInstance instanceof \ZendTest\Validator\TestAsset\ConcreteValidator) {
             $found = true;
             break;
         }
     }
     $this->assertTrue($found);
 }
コード例 #3
0
ファイル: Factory.php プロジェクト: gridguyz/zork
 /**
  * @param \Zend\InputFilter\Factory $inputFilterFactory
  * @return \Zork\Form\Factory
  */
 public function setInputFilterFactory(InputFilterFactory $inputFilterFactory)
 {
     $this->inputFilterFactoryDefaultsInitialized = false;
     return parent::setInputFilterFactory($inputFilterFactory);
 }