Hier möchte ich kurz ein neues Feature von Symfony 1.1 vorstellen. Die Tasks. Die Tasks haben die Batch Files, die es in den vorherigen Versionen gab komplett ersetzt. Das Gerüßt lässt sich nun einfach mittels folgendem Befehl erzeugen. Die erzeugte Datei findet man dann im lib/task Ordner des jeweiligen Symfony Projekts.
symfony generate:task namespace:demotask
Der Quellcode der generierten Datei sieht wie folgt aus:
<?php
class blaDemotaskTask extends sfBaseTask
{
protected function configure()
{
$this->namespace = 'namespace';
$this->name = 'demotask';
$this->briefDescription = '';
$this->detailedDescription = <<<EOF
The [bla:demotask|INFO] task does things.
Call it with:
[php symfony bla:demotask|INFO]
EOF;
// add arguments here, like the following:
//$this->addArgument('application', sfCommandArgument::REQUIRED, 'The application name');
// add options here, like the following:
//$this->addOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev');
}
protected function execute($arguments = array(), $options = array())
{
// add code here
}
}
Das schöne hierbei ist, dass man die Task nun auch mittels Symfony Kommandozeilenaufruf starten kann.
Das ist natürlich sehr hilfreich, wenn man eigene Cronjobs für sein Projekt einrichten will. So kann man in seinem Crontab ganz einfach den Befehl zum aufrufen der Task einrichten. Dabei sollte man darauf achten, dass man nur vollständige Pfadangaben verwendet.
*/1 * * * * /usr/bin/php /home/projects/demoproject/symfony namespace:demotask frontend --env=prod --foo=bar
Eine feine Sache also um nicht nur Cronjobs anzulegen, sondern auch um jene zu bewältigende Aufgabe manuell via Konsole zu starten.
Mehr Details zu den Task gibts hier.
Popularity: 35% [?]
Werbung:




Juli 17th, 2008 at 10:16
eine sache verstehe ich nicht, warum funktioniert mein beispiel mit dem neuen Task-system nicht? Kann mir das bitte jemand hier erklären:
http://groups.google.com/group/symfony-users/browse_frm/thread/39438b1492f257a4
Oktober 2nd, 2008 at 12:16
schoen, knapp und klar
kleiner typo ist im text trotzdem … der ordner heisst lib/task und nicht lib/tasks
Oktober 2nd, 2008 at 15:52
Habs korrigiert. Danke!