【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"

}

},

【php】composer用psr-4自动加载类,为什么找不到?

另外一个包:

【php】composer用psr-4自动加载类,为什么找不到?

文件路径

【php】composer用psr-4自动加载类,为什么找不到?

求助;

回答

用psr4标准实现自动加载,不成功的话就两种可能:
1,composer.json里psr4的数组写的有问题;
2,写好psr4的数组之后,没有执行composer dump-autoload;生成一下autoload文件;

psr4写的没问题,所以看看有没有执行composer-autoload,有没有composer/composer这个包;psr4数组里的元素会被映射到autoload_psr4.php这个文件里,通过这个文件才能找到对应的类;

【php】composer用psr-4自动加载类,为什么找不到?

楼主应该是没太理解加载机制

你可以参考: https://segmentfault.com/a/11...

app/Http/Controllers/Weather.php有这个文件吗?

以上是 【php】composer用psr-4自动加载类,为什么找不到? 的全部内容, 来源链接: utcz.com/a/103121.html

回到顶部