我一直在玩一些Composer
自动加载,我遇到了一些问题所以目录结构是
index.php
app/
helpers/
router.php
vendor/
composer/
/*usual files*/
autoload.php
在我的composer.json
内,我有以下
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
我的index.php
内有
<?php
// Autoload our namespaces
require __DIR__.'/vendor/autoload.php';
use App\Helpers\Router;
$route = new Router;
获得以下错误
Fatal error: Class 'App\Helpers\Router' not found in /var/www/public/index.php on line 6
我尝试了一些不同的尝试让它运转起来,但我不确定我哪里出错了。这是我第一次在框架之外使用Composer进行自动加载,所以会很感激任何指导。
答案 0 :(得分:5)
PSR-4区分大小写。结构必须是app/Helpers/Router.php
或更好的App,大写为A.
所有类名必须以区分大小写的方式引用。
子目录名称必须与子命名空间名称的大小写匹配。
终止类名对应于以.php结尾的文件名。文件名必须与终止类名称的大小写匹配。