说我有一个包含一些文件的文件夹:
在每个文件中我都声明了名称空间:
database.php中
namespace Infrastructure\Core
{
class Database
{...}
}
Model.php
namespace Infrastructure\Core
{
class Model
{...}
}
等...
现在我想使用该命名空间中的所有类。想象一下,我有以下根文件
的index.php
use Infrastructure\Core
class Main
{
$database = new Database();
$controller = new Controller();
//...etc..
}
这几乎就像java和C#命名空间一样,但显然在PHP中它不起作用......所以以下内容也不起作用:
的index.php
use Infrastructure\Core
class Main
{
$database = new Infrastructure\Core\Database();
$controller = new Infrastructure\Core\Controller();
//...etc..
}
也不起作用,所以我终于想到了,好吧我也必须包含文件然后......仍然无法工作..我做错了什么?我真的没有得到数以百万计的例子,因为它似乎与我之前使用的任何其他命名空间都有所不同。
有人可以使用正确的语法提供特定于此的示例,以便我可以使用PHP了解它的全部内容。我认为它在php中的概念略有不同?
答案 0 :(得分:6)
有几件事:
您的类需要加载,因此您要么自己构建基于classname // dir-name的自动加载器,要么手动包含正确的文件(所以使用include
和/或{{1 }}
'use'仅适用于'快捷方式',现在就忘掉了
当您的命名空间声明正确时,您必须从“root”调用它们,因此它们以require
\
答案 1 :(得分:-1)
命名空间是代码的逻辑分隔,\不必要是指文件夹路径。
我在一段时间内没有用PHP编程,但我认为你没有使用 include 或其他机制来包含文件内容。