簡體   English   中英

Composer Autoload 給出錯誤“找不到類”

[英]Composer Autoload gives error “Class not found”

我在 Composer 的 psr-4 自動加載方面遇到了一些問題。 我有一個看起來像這樣的項目結構

Project
- src/
- - Utils/
- - - ID/
- - - - IDInterface.php
- - - - ID.php
- tests/
- - IDTest.php
- ... (other stuff)

然后,在我的 composer.json 文件中,我有一個看起來像這樣的 psr-4 自動加載。

"autoload": {
        "psr-4": {
             "Project\\": "src"
        }
    }

然后在我的測試類(IDTest.php)中,我有以下內容

<?php

use PHPUnit\Framework\TestCase;
use Project\Utils\ID;

class IDTest extends TestCase
{
    public function testConstructFromString()
    {
        $id = new ID("foo");
        $this->assertSame("foo", $id->value());
    }
}

?>

但是,當我運行測試時,出現此錯誤:

1) IDTest::testConstructFromString
Error: Class 'Project\Utils\ID' not found

它似乎指向這條線:

$id = new ID("foo");

這表明自動加載沒有像我期望的那樣工作。

作為參考,ID 類如下所示:

<?php

namespace Javelin\Util;

use Javelin\Utils\IDInterface;
use Javelin\Util\IllegalArgumentException;

class ID implements IDInterface{...}
?>

我嘗試運行composer dump-autoload以查看是否只需要更新自動加載器。 但是,遺憾的是,問題仍然存在。

嘗試

use Project\Utils\ID\ID;

Project\\Utils\\ID - 命名空間。 Project\\Utils\\ID\\ID - 類。

暫無
暫無

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

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