Eccube\Form\Type\Admin\SecurityType::buildForm PHP Метод

buildForm() публичный Метод

public buildForm ( Symfony\Component\Form\FormBuilderInterface $builder, array $options )
$builder Symfony\Component\Form\FormBuilderInterface
$options array
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $app = $this->app;
        $builder->add('admin_route_dir', 'text', array('label' => 'ディレクトリ名', 'constraints' => array(new Assert\NotBlank(), new Assert\Length(array('max' => $this->config['stext_len'])), new Assert\Regex(array('pattern' => "/^[0-9a-zA-Z]+\$/")))))->add('admin_allow_host', 'textarea', array('required' => false, 'label' => 'IP制限', 'constraints' => array(new Assert\Length(array('max' => $this->config['stext_len'])))))->add('force_ssl', 'checkbox', array('label' => 'SSLを強制', 'required' => false))->addEventListener(FormEvents::POST_SUBMIT, function ($event) use($app) {
            $form = $event->getForm();
            $data = $form->getData();
            $ips = preg_split("/\\R/", $data['admin_allow_host'], null, PREG_SPLIT_NO_EMPTY);
            foreach ($ips as $ip) {
                $errors = $app['validator']->validateValue($ip, array(new Assert\Ip()));
                if ($errors->count() != 0) {
                    $form['admin_allow_host']->addError(new FormError($ip . 'はIPv4アドレスではありません。'));
                }
            }
        });
    }