Créer une nouvelle tâche pake dans symfony
Par Nicolas le jeudi 15 mai 2008, 21h33 - Développement - Lien permanent
La ligne de commande dans symfony fournit de nombreuses facilités pour créer des tâches usuelles et parfois complexes comme créer un nouveau projet, créer une nouvelle application, vider le cache, ...
Ces différentes tâches ne sont en fait que des fonctions php invoquées via la ligne de commande. Il peut s'avérer intéressant d'en ajouter.
Ce qui suit concerne symfony 1.0.x. On peut ajouter une tâche de plusieurs manières:
- dans le répertoire data/tasks d'un plugin
- dans le répertoire data de symfony (sf_symfony_data_dir)
- dans le répertoire data/tasks du projet.
Il y a une chose d'importante à noter, c'est que le fichier contenant la nouvelle tâche suit respectivement les conventions de nommage suivantes :
- *.php
- sfPake*.php
- myPake*.php
Ensuite, en vidant le cache, la nouvelle tâche est automatiquement disponible. Il suffit de taper la commande: symfony,pour voir apparaître la nouvelle tâche avec sa description dans le message d'aide.
Une nouvelle tâche minimale (ne faisant rien) pourrait ressembler à ça (myPakeValidation.php) :
<?php
pake_desc('sync data between validation and production sites');
pake_task('sync-data', 'project_exists');
pake_alias('validation', 'sync-data');
function run_sync_data($task, $args) {
throw new Exception('This task is not yet implemented.');
}
Désormais, en tapant la ligne de commande suivante, je ferais (quand j'aurai écrit la fonction) la synchronisation entre mon site de validation et mon site de production :
nicolas $ ./symfony validation

Commentaires
Merci Nicolas pour cet article Symfony. Plus j'utilise le framework et plus je deviens fan de sa puissance.