我正在開(kāi)發(fā)一個(gè) Laravel 包,但我在 Composer 自動(dòng)加載方面遇到了問(wèn)題。我的包在src文件夾下有 2 個(gè)文件夾。其中一個(gè)是命名的Laravel,另一個(gè)是Telegram. 這是包結(jié)構(gòu):./packages.../typhoon...../src......./Laravel........./Providers............LumenServiceProvider.php............LaravelServiceProvider.php......./Telegram..........Api.php.....composer.json這個(gè)包是在SaliBhdr/Typhoon命名空間下開(kāi)發(fā)的。我packages/typhoon/src在 Laravel 的 composer 文件中添加了目錄,如下所示: "autoload": { "psr-4": { "App\\": "app/", "SaliBhdr\\Typhoon\\" : "packages/typhoon/src/" } },并src/在 package composer.json 文件中添加地址,如下所示: "autoload": { "psr-4": { "SaliBhdr\\Typhoon\\": "src/" } },這是奇怪的行為開(kāi)始。當(dāng)我執(zhí)行php artisan serve命令 Laravel 拋出一個(gè)錯(cuò)誤,說(shuō): Class 'Salibhdr\Typhoon\Laravel\Providers\LumenServiceProvider' not found 如果我檢查該類(lèi)是否存在,class_exists('Salibhdr\Typhoon\Laravel\Providers\LumenServiceProvider')它會(huì)返回false. 但是,如果我檢查是否Salibhdr\Typhoon\Telegram\Api存在,它會(huì)返回true.我檢查了autoload_classmap文件并注意到作曲家包括Telegram子Laravel文件夾下的所有類(lèi),但不包括子文件夾。為什么作曲家的行為如此奇怪?為什么它包含一個(gè)子文件夾而不包含另一個(gè)?這是我每天都在做的事情,從來(lái)沒(méi)有見(jiàn)過(guò)這樣的事情。我迫切需要幫助。任何幫助,將不勝感激
1 回答

忽然笑
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
您正在嘗試初始化,Salibhdr\Typhoon\Laravel\Providers\LumenServiceProvider
但在您的作曲家中它是"SaliBhdr\\Typhoon\\": "src/"
.
注意B
你的作曲家的大寫(xiě)。PHP 類(lèi)區(qū)分大小寫(xiě),因此您必須確保它是小寫(xiě)或大寫(xiě)。
另外,還要確保運(yùn)行composer dumpautoload
,如果你修改composer.json
。
- 1 回答
- 0 關(guān)注
- 232 瀏覽
添加回答
舉報(bào)
0/150
提交
取消