php:using使用类别名扩展

时间:2013-11-13 02:17:09

标签: php namespaces extends aliases

我有两个不同名称空间的类,例如:

控制器位于\ Core, 索引位于\ Public

在我的index.php中,我有一个用于所有\ Core类的class_alias,因此您可以直接调用它们:$controller = new Controller();。这没有问题。

我的问题是当我尝试扩展课程时。自索引& Controller位于不同的名称空间中,它试图在\ Public名称空间中找到Controller,因此这不起作用:

<?php
namespace Panel\Pub;

class Index extends Controller {

有没有办法解决这个问题,所以我可以在extends函数中使用类别名?我知道我可以使用\ Core \ Controller它可以工作,但我正在尝试使用别名来使核心功能更容易访问。

编辑:找到一种解决方法 在做了一些更多测试之后,我发现在扩展中的别名前面使用\似乎有效。不像没有那样理想,但目前最好的解决方案是:

class Index extends \Controller { }

仍在寻找有关解决方案的其他建议或扩展控制器的不同方法。

谢谢!

1 个答案:

答案 0 :(得分:4)

当您使用命名空间时,使用命名空间中的完整路径

class Index extends \Public\Controller { }

\代表命名空间的根。


另一种方法是使用use关键字

namespace Panel\Pub;
use \Public\Controller as Controller
class Index extends Controller { }