diff --git a/Mage/Autoload.php b/Mage/Autoload.php index f0032eb..4d674c2 100644 --- a/Mage/Autoload.php +++ b/Mage/Autoload.php @@ -27,8 +27,15 @@ class Autoload $className = ltrim($className, '/'); $postfix = '/' . str_replace(array('_', '\\'), '/', $className . '.php'); + // Change BaseDir according to Namespace + if (strpos($className, 'Task\\') === 0) { + $baseDir = getcwd() . '/.mage/tasks'; + $postfix = substr($postfix, 5); + } else { + $baseDir = dirname(dirname(__FILE__)); + } + //Try to load a normal Mage class (or Task). Think that Mage component is compiled to .phar - $baseDir = dirname(dirname(__FILE__)); $classFileWithinPhar = $baseDir . $postfix; if ($this->isReadable($classFileWithinPhar)) { /** @noinspection PhpIncludeInspection */ diff --git a/Mage/Task/Factory.php b/Mage/Task/Factory.php index 2fe7d87..d854c42 100644 --- a/Mage/Task/Factory.php +++ b/Mage/Task/Factory.php @@ -48,7 +48,7 @@ class Factory $taskName = str_replace(' ', '', $taskName); if (strpos($taskName, '/') === false) { - $className = $taskName; + $className = 'Task\\' . $taskName; } else { $className = 'Mage\\Task\\BuiltIn\\' . str_replace(' ', '\\', ucwords(str_replace('/', ' ', $taskName))) . 'Task';