2013-03-29 40 views
0

以下PHP代码PHP前端控制器找不到类(命名空间)

public function go() 
{ 
    $controller = ucfirst($this->getController()); 
    $method = $this->getAction(); 

    require_once VENDOR_PATH . DS . 'Core/Controller/Controller.php'; 
    require_once VENDOR_PATH . DS . 'Application/Controller/' . $controller . '.php'; 

    $ctl = new $controller; 
    $ctl->$method(); 
} 

是生产

Fatal error: Class 'Index' not found in /path/to/core/Dispatch.php on line 108 

但是,我已验证的是,核心控制器和应用控制器加载。

Controller.php这样:

namespace Core\Controller; 

class Controller 
{ 

    public function __construct() 
    { 
     // @TODO 
    } 
} 

指数控制器

namespace Application\Controller; 

use Core\Controller\Controller; 


class Index extends \Core\Controller\Controller { 

    public $input; 

    public function __construct() 
    { 
     parent::__construct(); 
     die('In Application Controller'); 
    } 
} 

回答

2

在这一行$ctl = new $controller; $控制变量必须包含完整路径,包括命名空间