我有一个基础抽象类,比如位于Base.php
的{{1}}。现在,我有另一个班级,说/lib/Helper/Base.php
位于Awesome.php
,此班级需要扩展/lib/Helper/Awesome/Awesome.php
。
我已将我的命名空间定义如下:
Base.php
Base
Awesome.php
<?php namespace Helper;
abstract class Base
{
}
现在,这表示未找到班级<?php namespace Helper\Awesome;
class Awesome extends Base
{
}
。我尝试将Base
和/或require_once
用于include
的路径,但它们也无效。我做错了什么?
答案 0 :(得分:3)
您正在包含该文件,这是正确的做法。但你也在使用 命名空间。
命名空间不是文件夹,这意味着命名空间&#39; Helper&#39;不是文件夹而是逻辑层次结构。为了在逻辑命名空间Base
中使用类Helper
,Awesome
类需要使用完整的逻辑路径扩展Base类,即{{1} }。
\Helper\Base
或改为使用 namespace Helper\Awesome;
class Awesome extends \Helper\Base {
}
关键字(例如c#use/as
语句)。
using
更多信息可以在php.net网站上获取。 这是一个直接的参考:http://php.net/manual/en/language.namespaces.importing.php