【发布时间】:2017-11-12 18:52:15
【问题描述】:
试图了解 php 中的命名空间是如何工作的并且被卡住了。
下面是项目的架构。
类:Loader.php(假设加载控制器/模型/库,但现在乱码测试代码)
namespace system\core;
class Loader
{
public function index()
{
echo 'loader';
}
public function controller($pathtocontroller)
{
// Echo path to the controller
echo $pathtocontroller;
}
}
index.php
require 'system/core/Loader.php';
require 'system/core/BaseController.php';
require 'app/controller/common/HomeController.php';
use system\core;
use app\controller;
$loader = new \system\core\Loader();
$loader->controller(app\controller\common\HomeController);
这是我得到的错误
致命错误:未定义的常量 'app\controller\common\HomeController' 在第 20 行的 C:\xampp\htdocs\psrstd\index.php 中。索引上的第 20 行是 $loader->controller(app\controller\common\HomeController);
预期结果: app/controller/common/HomeController
如果你想知道 HomeController 里面有什么(又是乱码测试代码)
namespace app\controller\common;
use system\core\BaseController;
class HomeController extends BaseController
{
public function index()
{
echo 'home';
}
}
【问题讨论】:
-
你想达到什么目标?
-
@u_mulder,HomeController 位于 app/controller/common。我只是想回显控制器的路径。
-
为什么需要控制器路径?
-
@u_mulder,像这样加载控制器 $this->load->controller('common/HomeController'); ..
-
@u_mulder,但那是后来... Loader.php 应该是一个类加载器。
标签: php namespaces