【发布时间】:2012-09-16 10:20:29
【问题描述】:
我第一次尝试使用 PHP 命名空间,甚至无法获得使用 2 个文件的非常基本的示例。这是我的目录设置:
/框架/
/Framework/index.php
/Framework/Models/TestModel.php
这是两个文件背后的代码。
index.php:
命名空间框架;
使用 \Framework\Models\TestModel;
$model = new TestModel();
$模型->测试();
TestModel.php:
命名空间框架\模型;
类测试模型
{
公共功能测试()
{
打印(“测试”);
}
}
错误只是找不到TestModel类:
致命错误:第 7 行的 C:\xampp\htdocs\Framework\index.php 中找不到类“Framework\Models\TestModel”
我正在通过 localhost/Framework/index.php 的 Web 浏览器运行 PHP。这一定是我没有看到的非常简单的东西,有人可以为我指出吗?
【问题讨论】:
-
我们需要看看你如何自动加载类...
-
你还没有加载
TestModel类require_once 'Models/TestModel.php';的文件 -
如果必须使用 require_once,命名空间有什么意义?
-
@EresDev 使 PHP 比以前更容易混淆一种语言。 (说真的,许多人不喜欢命名空间的实现方式。)也就是说,从技术上讲,当添加大量文件(或包含的长时间更改)时,要避免名称重叠。即使您需要它们 -some-原因,您的特定文件可能只需要少数几个函数和类来完成它的工作。通常它们表明代码库已经变得如此笨拙,以至于没有人完全知道发生了什么,并且它们是防止自己开枪的工具。
标签: php namespaces