Articles sur Dev (anciens articles, page 1)
Astuces en vrac
Voici quelques astuces que j’ai découvertes ces derniers mois et que j’ai pensées à noter pour plus tard, et aussi pour les partager:
Ligne de commande
- Quand la commande
realpathn’est pas disponible, la commandereadlink -fpeut la remplacer; -
pwd -Présout les liens symboliques; -
less -irend la recherche insensible à la case (taper-i) à l’intérieur d’unlessmarche aussi; -
git log --oneline -- path/to/directory/liste rapidement toutes les commits qui ont affecté un répertoire.
Sudo
sudo une-commande-qui-genere-du-texte >> fichier-not-writable ne marchera pas, parce que sudo est utilisé par la commande seulement, pas pour la redirection. Il faut utiliser sudo tee
Jira en ligne de commande
Introduction
Que l’on soit freelance ou salarié, on n’a pas toujours le choix des outils de gestion de projets que l’on doit utiliser. Parmi les outils imposés que je dois me coltiner au jour le jour, Jira est dans mon top des outils les plus désagréables (euphémisme pour rester poli).
Heureusement, des gentils développeurs de Netflix ont créé un outil, go-jira, qui permet d’éviter l’utilisation de l’interface web du mastodon, et d’utiliser la ligne de commande depuis son terminal pour gérer ses tickets.
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);
}
}
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: