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