Créer une nouvelle tâche pake dans symfony

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:

  1. dans le répertoire data/tasks d'un plugin
  2. dans le répertoire data de symfony (sf_symfony_data_dir)
  3. 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 :

  1. *.php
  2. sfPake*.php
  3. 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

Haut de page