簡體   English   中英

作曲家PSR4怪異的行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM