Create MyTask.class.php in /lib/Task folder. It should look like this:
And now, run it from action that you need:
/** * MyTask class. * * @author ... */ class MyTask extends sfPropelBaseTask { /** * Execute configure method. * */ protected function configure() { $this->addOptions(array( new sfCommandOption('application', NULL, sfCommandOption::PARAMETER_OPTIONAL, 'The application name', 'front'), new sfCommandOption('env', NULL, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'), new sfCommandOption('connection', NULL, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'propel'), )); $this->namespace = 'namespace'; $this->name = 'myTask'; $this->briefDescription = 'Do Task'; $this->detailedDescription = 'Do Task desc'; } /** * Execute execute method. * * @param array $arguments * @param array $options * */ protected function execute($arguments = array(), $options = array()) { sfContext::createInstance($this->configuration); //Do Task } }
$dispatcher = sfContext::getInstance()->getEventDispatcher(); $formatter = new sfFormatter(); $task = new ReminderToWriteReviewTask($dispatcher, $formatter); chdir(sfConfig::get('sf_root_dir')); $task->run(array(), array('connection' => sfConfig::get('connection')));You can also call the task, as it should be called, from command line
php symfony namespace:myTask
No comments:
Post a Comment