我在两个不同的命名空间中有类,例如:
Controller 在\Core, 索引在\Public
在我的 index.php 中,所有\Core 类都有一个 class_alias,因此您可以直接调用它们:$controller = new Controller();
。这没有问题。
我的问题是当我尝试扩展类(class)时。由于 Index 和 Controller 位于不同的命名空间中,它会尝试在\Public 命名空间中查找 Controller,因此这不起作用:
<?php
namespace Panel\Pub;
class Index extends Controller {
有没有办法解决这个问题,以便我可以在 extends 函数中使用类别名?我知道我可以使用\Core\Controller 并且它会起作用,但我正在尝试使用别名来使核心功能更容易访问。
编辑:找到一个解决方法 在做了更多测试之后,我发现在扩展中的别名前面使用\似乎可行。不如 no\理想,但目前最好的解决方案导致:
class Index extends \Controller { }
仍在寻找有关变通方法或扩展 Controller 的不同方法的其他建议。
谢谢!
最佳答案
当您使用命名空间时,您使用命名空间中的完整路径
class Index extends \Public\Controller { }
\
代表您的命名空间的根。
另一种方法是使用 use
关键字
namespace Panel\Pub;
use \Public\Controller as Controller
class Index extends Controller { }
关于php:使用带有类别名的扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19943995/