我是新來的使用作曲家,並在我的composer.json文件中創建了所需項目的列表。我可以在我的index.php bootstrap文件中使用它們。作曲家PSR-4的應用文件
但是我希望能夠使用composers autoloader自動加載我自己的項目文件以外的供應商文件夾。我的文件夾結構如下:
vendor/
project/
Project.php
index.php
composer.json
的index.php
<?php
require 'vendor/autoload.php';
new \Project\Project;
Project.php
<?php
namespace Project;
class Project {
}
composer.json
{
"autoload": {
"psr-4": {
"Project\\": "project"
}
}
}
這使得未來與以下錯誤:
Fatal error: Class 'Product\Product' not found in index.php on line 5
我到底做錯了什麼?或者我不能使用作曲家自動加載來加載我的應用程序文件?
編輯 原來我需要運行composer dump-auto -o
刷新我的composer.json
文件所做的更改。感謝發佈在評論中的@Quasduck。
您正在聲明的名稱空間與正在使用的名稱空間之間似乎存在斷開連接。你確定你想要實例化的類不應該是「Project \ Product \ Product」嗎? –
它應該是'new \ Project \ Project;' - 沒有後綴'.php'。還要確保在composer.json的autoload部分進行更改後,不要忘記運行'composer dump-auto -o' - 該產品的東西來自哪裏?是否有產品類別涉及到任何地方? – Quasdunk
@Quasdunk .php是SO上的拼寫錯誤,並且不是代碼本身。當我運行您建議的'composer dump-auto -o',並且該類加載正常時,問題得到解決:) – Ozzy