2013-03-29 43 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; $控制變量必須包含完整路徑,包括命名空間