Php 未找到编写器PSR-4自动加载程序类
这是我的文件结构Php 未找到编写器PSR-4自动加载程序类,php,composer-php,Php,Composer Php,这是我的文件结构 ├── index.php ├── composer.json ├── src ├── Core └── Database.php ├── vendor 在我的composer.json文件中 "autoload": { "psr-4": {"Site\\": "src/"} } 在my Database.php中 namespace Core; class Database {} 在我的index.php中 $
├── index.php
├── composer.json
├── src
├── Core
└── Database.php
├── vendor
在我的composer.json文件中
"autoload": {
"psr-4": {"Site\\": "src/"}
}
在my Database.php中
namespace Core;
class Database {}
在我的index.php中
$db = new Site\Core\Database();
但我得到一个错误:找不到类“Site\Core\Database”
我已经运行了composer更新
和composer dump auto-o
,但仍然没有成功。我已经研究了这里的许多其他类似问题,但它们没有帮助
感谢您在
composer.json
"autoload": {
"psr-4": {"Site\\": "src/"}
}
这意味着Autoloader
将查找classSite\Core\Database
的文件src/Core/Database.php
但是要确保在Database.php
中定义名称空间
namespace Site\Core;
class Database
{
}
问题是,您只需定义
名称空间核心
您的数据库
类就在核心
命名空间中。将composer条目更改为从src/
加载Core
,或者将Site\
添加到数据库名称空间。我更新了名称空间,但仍然收到相同的错误。@ccKep,已修复。这是因为打字错误。@FrenchMajesty你是怎么解决的?我也有同样的问题,我尝试了不同的名称空间,但我总是发现错误类'Foo\Bar\Core\User'未找到
@AlexPavlov请确保用于自动加载的名称空间(例如站点
)在类中也有名称空间,如代码示例中所示。