sfValidatorEmails
La classe suivante permet de valider, dans symfony, une liste d’emails, entrée par l’utilisateur dans un champs de type textarea. Elle s’appuie sur le travail de la classe sfValidatorEmail.
class sfValidatorEmails extends sfValidatorBase
{
public function __construct($options = array(), $messages = array())
{
parent::__construct(array_merge($options, array('trim' => true)), $messages);
}
public function doClean($value)
{
$i = 0;
$emails = explode("
", $value);
$validator = new sfValidatorEmail($this->options, $this->messages);
$cleaned_emails = array();
try {
foreach ($emails as $email) {
++$i;
$cleaned_emails[] = $validator->clean($email);
}
} catch (Exception $e) {
throw new sfValidatorError($this, 'invalid',
array('line' => $i, 'bad_email' => $email));
}
return implode("
",$cleaned_emails);
}
}
Skin pour mediawiki
Les premiers fichiers du projet Libre Entreprise Mediawiki Skin viennent d’être mis en ligne. Ce modeste projet fournit un thème, une apparence, pour les sites réalisés avec le célèbre Mediawiki. Le thème fourni est celui des trois sites du réseau Libre Entreprise.
Les objectifs de ce thème étaient :
Validateurs dynamiques
Il est courant qu’un formulaire web nécessite des validateurs dynamiques, c’est à dire dépendant de certaines valeurs du formulaire lui même. Dans une des applications que j’ai écrite récemment une case à côcher permet à l’utilisateur de tester le formulaire et de ne pas enclencher l’action normale. Ainsi lorsque cette case à côcher est validée, un champs du formulaires n’est plus obligatoire, et un autre le devient.
Pour résoudre ce problème, une des solutions connue consiste à surcharger la méthode bind de
la classe du formulaire, dérivée de sfForm, et de changer à la
volée les validateurs.
Task, application, environnement et fichier app.yml dans Symfony
Il est parfois utile que certaines tâches appartiennent à une application et soient exécutées dans un environnement donné. Ceci pour leur permettre d’accéder aux variables de configuration du fichier app.yml de l’application en question.
Pour obtenir ce résultat, il faut déclarer un argument 'application' et une option 'env', initialisés respectivement à l’application et à l’environnement souhaités. Cela une fonction configure qui commence ainsi:
Activer les logs sous MySQL 5.1
Les logs, sous MySQL, c'est quand même bien pratique pour voir ce qui se passe sur un serveur et pour tracer les requêtes qui plantent. Et lorsqu'on vient de changer de version de serveur MySQL pour passer à la version 5.1 pour profiter des dernières nouveautés, il est déplaisant de voir les logs disparaître.
Heureusement la solution est disponible sur le site MySQL: il s'agit d'une nouvelle option dans le fichier my.conf: