Snippet sfValidatorEmailList


Samuel Breton
Snippet sfValidatorEmailList

La version de Symfony 1.3 vient de passer en ALPHA2. Etant en cours de développement d’un projet sur cette version j’en profite pour tester les nouvelles fonctionnalités. Parmi celles-ci, il y a le sfMailer. Je ne vais pas m’étendre sur le sujet car on peut déjà trouver pas mal de posts sur internet concernant cette classe notamment dans les jobeet : Day 16 The Mailer .

Je me suis par contre amusé à coder un petit validator, qui il me semble, se couple bien avec le sfMailer : sfValidatorEmailList. Son nom est assez explicite mais pourquoi tester des listes de mails ? Tout simplement parceque sfMailer permet d’envoyer des mails groupés !
(suite…)

Show Comments (5)

Comments

  • NiKo

    C’est pas une super idée d’utiliser sfContext::getInstance() dans le formulaire ; il vaut mieux passer le mailer en option de ce dernier (et du même coup le mail de l’expéditeur tant qu’à faire), comme ça par exemple : http://pastie.org/654442

    Ainsi le formulaire devient facilement testable, grâce au découplage ainsi opéré.

    • Article Author
  • [MA]Pascal

    Pratique comme validateur, par contre comme NiKo je comprends pas trop l’implémentation.

    Pourquoi passer sfWebRequest $request à bindAndSend ? tu es déjà dans un form qui est normalement valide donc hydraté.

    Quitte à mettre des params à cette méthode c’est ici que j’aurai fait passer $this->getMailer();

    Pourquoi le mettre en param de tout le form ?

    • Article Author
  • yoye

    Je viens de corriger cela par contre au niveau de mon action je préfère instancier mon objet comme suit :

    $this->form = new lkInvitationForm(array(), array(‘mailer’ => $this->getMailer()));

    je ne sais pas si c’est une bonne ou mauvaise pratique mais je n’aime pas trop surcharger mon action.

    Après on peut aussi se poser la question à savoir si on peut rédéfinir le constructeur car le tableau vide en premier paramètre va correspondre à 90% de mes instanciations et le mailer étant obligatoire cela devient de la dependency injection.

    • Article Author
  • NiKo

    C’est pour ça que j’aime bien le setOption() qui se chaîne aisément grâce à son interface fluide. J’aime pas trop le passage d’arguments au constructeur, notamment du fait de la capacité de ce dernier à être surchargé en PHP.

    Les goûts et les couleurs…

    • Article Author
  • Richtermeister

    Very nice validator! Elegant and useful, thank you for sharing.

    I think you should try to submit this to be included in the symfony core in the future.

    Have a great day,
    Daniel

    • Article Author

Recevez nos articles