【php】composer用psr-4自动加载类,为什么找不到?
我之前一般都是把自己写的本地包放到classmap里的;
前两天看了一个视频,比较标准的写法是,放到psr-4里;
写到这个里面之后,找不到类;
"autoload": {"classmap": [
"database/seeds",
"database/factories",
"vendor/jormin/laravel-ddoc",
"vendor/jormin/laravel-kdniao",
"vendor/xdstack/ip2location",
"vendor/overtrue/weather"
],
"psr-4": {
"App\\": "app/",
"Jeffcott\\express\\": "packages/jeffcott/express/src",
"Jeffcott\\clear\\": "packages/jeffcott/clear/src/",
"Jeffcott\\Weather\\": "packages/jeffcott/weather/src",
"Jeffcott\\chinese-calendar\\": "packages/jeffcott/chinese-calendar/src"
}
},
另外一个包:
文件路径
求助;
回答
用psr4标准实现自动加载,不成功的话就两种可能:
1,composer.json里psr4的数组写的有问题;
2,写好psr4的数组之后,没有执行composer dump-autoload;生成一下autoload文件;
psr4写的没问题,所以看看有没有执行composer-autoload,有没有composer/composer这个包;psr4数组里的元素会被映射到autoload_psr4.php这个文件里,通过这个文件才能找到对应的类;
楼主应该是没太理解加载机制
你可以参考: https://segmentfault.com/a/11...
app/Http/Controllers/Weather.php有这个文件吗?
以上是 【php】composer用psr-4自动加载类,为什么找不到? 的全部内容, 来源链接: utcz.com/a/103121.html