[英]Namespace autoloading with composer and PSR-0 not working as expected
我做了一个测试项目,以了解作曲家和包装专家的工作方式。 该项目也在包装上 。
一个简单的composer require rakibtg/gowin
将安装composer require rakibtg/gowin
的软件包。
但是由于某种原因,命名空间无法正常工作。
这是GoWin.php文件:
<?php
namespace GoWin;
class GoWin {
public function serve() {
echo 'Lets Win Everybody!';
}
}
这是test.php文件,我正在其中尝试使用GoWin
类中的serve()
方法。
<?php
require_once './vendor/autoload.php';
// use GoWin;
( new GoWin\GoWin() )->serve();
但是由于以下错误,它无法执行serve
方法:
致命错误:未捕获的错误:在中找不到类'GoWin \\ GoWin'
/ Users / usr / Desktop / t estGoWin / index.php:7堆栈跟踪:
在第7行的/Users/usr/Desktop/testGoWin/index.php中抛出0 {main}
此时此刻我无法理解我所缺少的! 我还应该使用psr-0或psr-4吗?
我通过切换到PSR-4解决了这个问题,只需将composer.json autolaod
属性更新为:
"autoload": {
"psr-4": {
"GoWin\\": "src/"
}
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.