[英]PSR-4 autoloader issue
我很難看出我在使用自動加載器時做錯了什么。 我的文件夾結構如下:
| - src/
| - Files/
| - Bla.php
| - Models/
| - ...
| - vendor/
| - ...
| composer.json
composer.json
自動加載部分如下所示:
"autoload": {
"psr-4": {
"Migrations\\" : "src/"
}
}
現在Bla.php
看起來像這樣:
<?php
namespace Migrations\Files;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Bla extends AbstractMigration
{
...
}
我收到錯誤:
Fatal error: Class 'Doctrine\Migrations\AbstractMigration' not found in /var/www/html/migrations/src/Files/Bla.php
當我查看vendor
文件夾時,包就在那里。 從我的 IDE 中,索引也可以正常工作,因此我可以通過 CMD+單擊到AbstractMigration
文件而不會出現問題。
我嘗試刪除vendor
文件夾,清除作曲家緩存,執行轉儲自動加載並重新安裝所有軟件包,但似乎沒有任何效果。
我在哪里犯了錯誤?
您需要包含 Composer 自動加載文件,否則您的應用程序不知道存在哪些類。 它是 composer 在安裝依賴時創建的文件,很多使用 Composer 的框架會自動為你包含這個文件,但如果你不使用框架,則需要自己包含該文件。
require __DIR__ . '/vendor/autoload.php';
你需要把它放在哪里取決於你的應用程序,但最好盡早加載,如果你有一個引導文件,那么這就是放置它的地方。
你可以在這里閱讀
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.