コード例 #1
0
 /**
  * Loads all available tasks.
  *
  * Looks for tasks in the symfony core, the current project and all project plugins.
  *
  * @param sfProjectConfiguration $configuration The project configuration
  */
 protected function loadTasks(sfProjectConfiguration $configuration)
 {
     // Symfony core tasks
     $dirs = array(sfConfig::get('sf_symfony_lib_dir') . '/task');
     // Plugin tasks
     foreach ($configuration->getPluginPaths() as $path) {
         if (is_dir($taskPath = $path . '/lib/task')) {
             $dirs[] = $taskPath;
         }
     }
     // project tasks
     $dirs[] = sfConfig::get('sf_lib_dir') . '/task';
     $finder = sfFinder::type('file')->name('*Task.class.php');
     foreach ($finder->in($dirs) as $file) {
         $this->taskFiles[basename($file, '.class.php')] = $file;
     }
     // register local autoloader for tasks
     spl_autoload_register(array($this, 'autoloadTask'));
     // require tasks
     foreach ($this->taskFiles as $task => $file) {
         // forces autoloading of each task class
         class_exists($task, true);
     }
     // unregister local autoloader
     spl_autoload_unregister(array($this, 'autoloadTask'));
 }
コード例 #2
0
 /**
  * Loads all available tasks.
  *
  * Looks for tasks in the symfony core, the current project and all project plugins.
  *
  * @param sfProjectConfiguration $configuration The project configuration
  */
 protected function loadTasks(sfProjectConfiguration $configuration)
 {
     // Symfony core tasks
     $dirs = array(sfConfig::get('sf_symfony_lib_dir') . '/task');
     // Plugin tasks
     foreach ($configuration->getPluginPaths() as $path) {
         if (is_dir($taskPath = $path . '/lib/task')) {
             $dirs[] = $taskPath;
         }
     }
     // project tasks
     $dirs[] = sfConfig::get('sf_lib_dir') . '/task';
     // require tasks
     $finder = sfFinder::type('file')->name('*Task.class.php');
     foreach ($finder->in($dirs) as $task) {
         require_once $task;
     }
 }