PHP报错:未找到App\Database类,OOP入门问题求助
解决「Class 'App\Database' not found」错误的排查方案
嘿,刚接触OOP就遇到这个问题很正常,我来帮你一步步拆解!这个错误本质是PHP找不到你定义的App\Database类对应的文件,下面是几个最可能的原因和解决办法:
1. 你没手动加载Database类的文件
虽然你在functions.php里写了use App\Database;,但PHP并不会自动根据命名空间去查找对应的文件——你得明确告诉它这个类的文件在哪里。
如果暂时不用自动加载工具,直接在functions.php里添加一行引入代码就行:
// 可以放在use语句之前或者合适的位置 require 'app/Database.php';
注意路径要对应:如果functions.php在项目根目录,app文件夹也在根目录,那这个路径是对的;如果文件层级不同,要调整成正确的相对路径(比如../app/Database.php)。
2. 文件名/路径和命名空间不匹配
按照PHP通用的PSR-4命名规范,命名空间App对应的是app文件夹,而类名Database必须对应文件名Database.php(首字母大写,和类名完全一致)。
检查这几个细节:
- Database类文件是不是确实放在
app/文件夹下? - 文件名是不是
Database.php?(别写成db.php或者database.php) - 如果是Linux/macOS系统,文件名大小写要和类名完全一致(Windows系统不敏感,但最好统一规范)
3. 没有启用自动加载机制(推荐长期使用这个方案)
手动require每个类文件太繁琐,用Composer的自动加载能彻底解决这类问题:
- 在项目根目录创建
composer.json文件,内容如下:
{ "autoload": { "psr-4": { "App\\": "app/" } } }
- 运行
composer dump-autoload命令生成自动加载文件 - 在
functions.php最顶部引入自动加载文件:
require 'vendor/autoload.php';
之后你再用use App\Database;就不用手动引入类文件了,PHP会自动根据命名空间找到对应的文件。
内容的提问来源于stack exchange,提问作者cervantes
相关产品推荐
相关产品推荐

