2016-09-16 90 views
1

我一直在學習使用作曲家一段時間。我第一次將我的代碼移至生產服務器。其他第一次使用者遇到的許多問題,即自動加載發生。就我而言,原來是文件名是罪魁禍首。組合預期的某些文件名稱以跟隨類名稱。作曲家用於自動加載自定義類的規則是什麼?

我注意到抽象類是其中之一。其他人是像ClassName這樣的名稱和複合名稱的類。然而讓我困惑的是,在某些情況下,作品在沒有改變任何東西的情況下工作,而在其他作品中,作曲家迫使我改變文件名。

具體而言,我使用自己的MVC,並且基類Controller必須與模型文件夾中的其他人一起更改。

我已經做了$loader = require "vendor/autoload.php";

`$loader->add("", ["my folders"])` 

一切我已經測試至今,現在似乎是確定。但是我擔心之後可能會出錯,因爲我無法預測網站上的用戶可能會做的所有事情。任何人都需要幫助。謝謝。

回答

1

基本上你需要遵循PSR-4標準,這意味着只編輯composer.json。您不需要添加$loader->add("", ["my folders"])

composer.json

"autoload": { 
    "*": "/dirs" 
} 

但最好是具體的,如:

"autoload": { 
    "App\": "app" 
} 

(這就像 「命名空間」: 「目錄中找到」)

然後在app/Controller/PageController.php文件中有App\Controller\PageController類。


您也可以找到類似的問題=>解答了herehere

+0

恰好未命名空間類的什麼,我怎麼使用PSR-4對於那些?只是好奇。 –

+0

你應該爲每個類命名空間。這是PSR-0和PSR-4的用途。 –