Use Validator component for form Validation

This commit is contained in:
Manuel Raynaud
2013-06-25 15:30:29 +02:00
parent 21280569e6
commit b2ee3c3ef8
2 changed files with 15 additions and 2 deletions

View File

@@ -25,13 +25,20 @@ namespace Thelia\Form;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;
class AdminLogin extends AbstractType { class AdminLogin extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
return $builder return $builder
->add("username", "text") ->add("username", "text", array(
"constraints" => array(
new NotBlank(),
new Length(array("min" => 3))
)
))
->add("password", "password"); ->add("password", "password");
} }

View File

@@ -22,12 +22,14 @@
/*************************************************************************************/ /*************************************************************************************/
namespace Thelia\Form; namespace Thelia\Form;
use Symfony\Component\Form\Extension\Validator\ValidatorExtension;
use Symfony\Component\Form\Forms; use Symfony\Component\Form\Forms;
use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Form\Extension\HttpFoundation\HttpFoundationExtension; use Symfony\Component\Form\Extension\HttpFoundation\HttpFoundationExtension;
use Symfony\Component\Form\Extension\Csrf\CsrfExtension; use Symfony\Component\Form\Extension\Csrf\CsrfExtension;
use Symfony\Component\Form\Extension\Csrf\CsrfProvider\SessionCsrfProvider; use Symfony\Component\Form\Extension\Csrf\CsrfProvider\SessionCsrfProvider;
use Symfony\Component\Validator\Validation;
use Thelia\Model\ConfigQuery; use Thelia\Model\ConfigQuery;
class BaseForm { class BaseForm {
@@ -38,6 +40,8 @@ class BaseForm {
*/ */
public static function getFormFactory(Request $request, $secret = null) public static function getFormFactory(Request $request, $secret = null)
{ {
$validator = Validation::createValidator();
$form = Forms::createFormFactoryBuilder() $form = Forms::createFormFactoryBuilder()
->addExtension(new HttpFoundationExtension()) ->addExtension(new HttpFoundationExtension())
->addExtension( ->addExtension(
@@ -47,7 +51,9 @@ class BaseForm {
$secret ?: ConfigQuery::read("form.secret", md5(__DIR__)) $secret ?: ConfigQuery::read("form.secret", md5(__DIR__))
) )
) )
)->getFormFactory(); )
->addExtension(new ValidatorExtension($validator))
->getFormFactory();
return $form; return $form;
} }