PHP命名空间混乱,找不到类

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP命名空间混乱,找不到类脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在自己的文件中有两个类在同一个文件夹中.但是当我试图将一个扩展到一个时,它会给命名空间和类找不到错误.

错误信息:

Fatal error: Class 'DB\AT_Database' not found in /VAR/www/...

db类

文件:AT_Database.PHP

namespace DB;

class AT_Database
{
    ...
}

CRUD课程

文件:AT_CRUD.PHP

namespace DB\CRUD;


use DB\AT_Database;

class AT_CRUD extends AT_Database
{

    public function __construct()
    {

    }

}
这可能是一个愚蠢的错误,或者可能是我忽略了它(我不应该作为程序员)并且正在加载类的序列.

可能是不值得作为一个答案,但只是偶然添加它可以帮助那些犯这样的错误的人.

正如我在其中一篇评论中提到的,我使用glob来自动加载要包含的所有类文件.

foreach ( glob( $this->classes_dir . "/*.PHP" ) as $class ) {
    include_once $class;
}

现在我的文件名是AT_CRUD.PHP和AT_Database.PHP.在这里,我意识到PHP按字母顺序加载文件.所以,当我将AT_Database类扩展到AT_CRUD时,它永远找不到.

这只是因为PHP首先加载AT_CRUD而不是AT_Database所以要么我必须将类实例化为或者使用类似依赖注入的东西,如@PRehfeldt在他的评论中提到的那样.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP命名空间混乱,找不到类全部内容,希望文章能够帮你解决PHP命名空间混乱,找不到类所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。