未找到 PHP 前端 Controller 类(命名空间)

标签 php oop namespaces front-controller php-include

以下 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 和应用程序 Controller 都在加载。

Controller .php:
namespace Core\Controller;

class Controller
{

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

索引 Controller
namespace Application\Controller;

use Core\Controller\Controller;


class Index extends \Core\Controller\Controller {

    public $input;

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

最佳答案

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

关于未找到 PHP 前端 Controller 类(命名空间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15697841/

相关文章:

java - 按特定逻辑合并 ArrayList of Integers

namespaces - 为什么有多个命名空间?

c# - 如何在 Unity 编辑器中处理不可见的 c# 命名空间?

php - 我一定是误解了 PHP 的 "use"关键字

javascript - AJAX 和 SQL 重复结果

javascript - 如何拉出段落元素中的文本?

javascript - foreach 结果是一个数组,如何获取元素的值而不是数组?

Java 接口(interface)特征

javascript - 从 Ajax 查询中获取结果

c++ - 如何将现有类重构为多态的?