На самом деле вы можете подключить свой код к любой задаче Symfony. Взгляните на метод sfBaseTask :: doRun. Любое задание при выполнении выдает 2 события: command.pre_command и command.post_command.
Создайте класс для хранения вашего кода, например:
class toolkitEvents
{
static public function commandPostEventHook(sfEvent $event)
{
$task = $event->getSubject();
if ($task->getFullName() === 'doctrine:build')
{
//do stuff or call another task
}
}
и подключите этот метод к диспетчеру при инициализации вашего плагина:
class yourPluginConfiguration extends sfPluginConfiguration
{
public function initialize()
{
$this->dispatcher->connect('command.post_command', array('toolkitEvents', 'commandPostEventHook'));
}