[英]Composer PSR4 weird behavior
不久前,我創建了一個樹枝擴展。 最近,我添加了一個名稱空間,以便可以更輕松地與composer一起使用。 我已經做了幾次,並且可以與其他文件/類一起正常工作。
問題是,僅當我在composer中更新或dumpautoload時使用-o選項(優化)時,它才能正確自動加載。
因此,例如,如果我運行composer dumpautoload -o
則發現我的類沒有問題。 如果我運行composer dumpautoload
它將無法正常工作,並給我以下錯誤:
Fatal error: Class 'Crecket\custom_twig_extension' not found in C:\Dropbox\Ampps\www\crecket.dev\index.php on line 24
我的延伸課程:
namespace Crecket;
class custom_twig_extension extends \Twig_Extension{
// The code
}
我的作曲家檔案
"autoload": {
"psr-4": {
"Crecket\\": "src/"
}
}
資料夾結構
src/custom_twig_extension.php
有誰知道是什么原因造成的? 我似乎無法弄清楚是什么原因造成的。 我猜想這與使用optimize時創建一個類映射的作曲家有關。
我遇到了類似的問題,這是因為文件中的類名與提供它的文件名不同。 我有myclass.php和Class MyClass {}
根據關於某人遇到類似問題的討論( https://www.reddit.com/r/laravel/comments/2zx3in/l5_composer_dumpautoload_gives_class_not_found/ ):
在PSR-4中,必須將文件命名為類的名稱。
當我將myclass.php重命名為MyClass.php時,問題消失了-仔細檢查一下您是否都使用了相同的名稱(大小寫相同!)!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.