在命名空间中找不到类

时间:2014-10-16 10:41:01

标签: php namespaces

我现在正在创建一个API包装器,我决定创建一个index.php来加载客户端,仅用于测试/调试目的。

这是我的index.php

require_once("src/API/Client.php");

$client = new \API\Client();

这是我的API \ Client

namespace API;

class Client
{
    public function __construct()
    {
        $this->_requester = new Client\Request();
        return $this;
    }
}

我得到的错误是在Client.php中找不到API \ Client \ Request

确实存在,可以在下面查看:

namespace API\Client

class Request
{
    protected $_requestUrl;

    public function __construct()
    {
        return $this;
    }    
}

这是我第一次尝试制作具有完全命名空间的应用程序的应用程序,因此我非常感谢您帮助实现这一功能。

1 个答案:

答案 0 :(得分:1)

您错过了require_once语句,以包含包含Request类定义的脚本。

require_once("src/API/Client.php");
require_once("src/API/Client/Request.php"); // <-- or whatever the filename is

我建议使用自动加载器,这意味着您不需要任何包含语句。例如PSR-0 autoloader

此外,在构造函数中使用return语句没有任何意义。构造函数无法返回值。

相关问题