簡體   English   中英

在 PHP Autoload 中添加快捷方式會導致 Laravel 上的沖突

[英]Adding shortcut in PHP Autoload causes conflict on Laravel

我想問你為什么在將它添加到 composer.json 后我會收到沖突錯誤:

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Models\\": "app/Models/",
        "Controllers\\": "app/Http/Controllers/"
    },
    ...
}

並將其中的所有內容命名為“app\\Models\\People\\Admin.php”

namespace Models\People;

我之前搜索過這個問題但沒有運氣,我錯過了什么嗎?

謝謝!

您收到此錯誤是因為自動加載器首先包含App\\下的所有類,其中也包含App\\ModelsApp\\Controllers下的所有類,然后再次重新包含這些類,這會導致此沖突。

為了說明這一點,這里是正在發生的事情:

  1. 自動加載器遞歸地查找app目錄下的所有類。
  2. 然后它當然會找到app/Models/People/Admin.phpinclude它。
  3. 完成自動加載app/下的所有類后,它開始在app/Models下查找類文件,找到Admin.php類文件並再次include它。
  4. 拋出錯誤,因為對於 PHP,您正在執行以下操作:
class Admin {}
class Admin {}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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