关于Composer自动加载问题。
我的开发环境:
PHP : 7.3.4
Apache : 2.4.39
Composer : 1.8.5
用Composer1.8.5来开发PHP框架,用PSR-4自动加载规则。具体目录:
App
|-Controller
|- HomeController.php
|- Models
|- View
vendor
|- autoload.php
|- .....
index.php
composer.json
composer.json代码是:
{
"require": {
"noahbuscher/macaw": "dev-master",
},
"autoload":{
"psr-4": {
"App\\": "App"
}
}
}
以上在composer 1.8.5运行没什么问题,直接生成命令
composer dump-autoload -o
但是,升级1.10.13 或 2.0版本,用生成命令提示警告:
Class App\Controller\HomeController located in C:/web/App\Controller\HomeController.php does not comply with psr-4 autoloading standard. Skipping.
理解是 1.10以上版本对psr-4废弃警告
HomeController.php 这个文件的命名空间是:
namespace App\Controller;
class HomeController{
public function index(){
echo 'hi';
}
}
那这个如何解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
解决问题,命名大小写有关系。
namespace Appxxxxxx; 命名第一个大写,后面xxx所有命名必须小写。
然后升级2.0.0-RC1 输入命令:
再生成:
无报错!
感谢@bug开发!