我有两个不同的命名空间中的类,例如:
控制器位于\ Core,Index位于\ Public
在我的index.php中,我有一个所有\ Core类的class_alias,所以你可以直接调用它们: $controller = new Controller();
. 这没有问题 .
我的问题是当我尝试扩展课程时 . 由于Index和Controller位于不同的命名空间中,它会尝试在\ Public命名空间中找到Controller,因此这不起作用:
<?php
namespace Panel\Pub;
class Index extends Controller {
有没有办法解决这个问题,所以我可以在extends函数中使用类别名?我知道我可以使用\ Core \ Controller它可以工作,但我正在尝试使用别名来使核心功能更容易访问 .
Edit: Found one workaround 在做了一些更多测试后,我发现在扩展中的别名前面使用\似乎有效 . 不像没有那样理想,但目前最好的解决方案是:
class Index extends \Controller { }
仍在寻找关于解决方案的其他建议或扩展控制器的不同方法 .
谢谢!
1 回答
在使用命名空间时,可以使用命名空间中的完整路径
\
表示命名空间的根 .另一种方法是使用
use
关键字