• Edit
  • Delete

symfony sfTask cheatsheet

Error Handling

Normally a sfTask returns shell exit status / error code 0.
In case of PHP exception and errors it returns 1.

The shell exit status of the last command can be checked with

echo $?

This is great for using sfTasks in cronjobs. Normally they are quiet, but send an email in case of errors with the following configuration:

vi /etc/crontab

# m h dom mon dow user  command

# ullMail
25 4 * * *  php /foo/bar/symfony ull_mail:process-bounced-emails > /dev/null


logBlock() Styles

'ERROR' => array('bg' => 'red', 'fg' => 'white', 'bold' => true),
'INFO' => array('fg' => 'green', 'bold' => true),
'COMMENT' => array('fg' => 'yellow'),
'QUESTION' => array('bg' => 'cyan', 'fg' => 'black', 'bold' => false),

Parameter none option

    $this->addOption('no-confirmation', null, sfCommandOption::PARAMETER_NONE,
      'Skip confirmation question');
if (!$options['no-confirmation'])


Create context and use doctrine in sfTask

Note: it seems that the "prod" environment is necessary for createInstance()

  protected function execute($arguments = array(), $options = array())
    $this->logSection($this->name, 'Initializing');
    $databaseManager = new sfDatabaseManager($this->configuration);


Include libs from /apps/

    $autoloader = sfSimpleAutoload::getInstance();

Use Mailing

    $this->initializeDatabaseConnection($arguments, $options);

    // Force symfony autoloader to load Swift classes

Get all Doctrine Models

    Doctrine::loadModels(sfConfig::get('sf_lib_dir') . '/model/');
    $modelNames = Doctrine::getLoadedModels();