<?php class Mage_Task_Factory { /** * * * @param string $taskName * @param boolean $inRollback * @return Mage_Task_TaskAbstract */ public static function get($taskName, Mage_Config $taskConfig, $inRollback = false) { $instance = null; $taskName = ucwords(str_replace('-', ' ', $taskName)); $taskName = str_replace(' ', '', $taskName); if (strpos($taskName, '/') === false) { Mage_Autoload::loadUserTask($taskName); $className = 'Task_' . ucfirst($taskName); $instance = new $className($taskConfig, $inRollback); } else { $taskName = str_replace(' ', '_', ucwords(str_replace('/', ' ', $taskName))); $className = 'Mage_Task_BuiltIn_' . $taskName; $instance = new $className($taskConfig, $inRollback); } assert($instance instanceOf Mage_Task_TaskAbstract); return $instance; } }