簡體   English   中英

PSR-4 自動加載器問題

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

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