RSS

Symfony 1.1 Tasks

Mi, Jul 16, 2008

PHP, Programmierung, Symfony

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% [?]

Gleich bookmarken:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkArena
  • Live
  • MisterWong.DE
  • BlinkList
  • Furl
  • Spurl
  • StumbleUpon
  • Technorati
  • YahooMyWeb

Werbung:


This post was written by:

Ronny - who has written 343 posts on Ronny’s Blog.


Contact the author

3 Comments For This Post

  1. b166er (1 comments) Says:

    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

  2. nadeschda (1 comments) Says:

    schoen, knapp und klar
    kleiner typo ist im text trotzdem … der ordner heisst lib/task und nicht lib/tasks

  3. Ronny (57 comments) Says:

    Habs korrigiert. Danke!

Leave a Reply

You can add images to your comment by clicking here.