国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Composer 自動載入找不到該類
P粉403804844
P粉403804844 2024-03-26 15:07:50
0
1
651

我有一個具有以下結(jié)構(gòu)的專案:

- src
  + Guitar.php
  + Type.php
  + ToString.php
- tests
  + GuitarTest.php
composer.json

這就是我在composer.json中定義psr-4自動載入的方式:

"autoload": {
    "psr-4": {
        "Shop\Guitar\": "src/"
    }
}

這是我的 Guitar.php:

<?php

namespace Shop\Guitar;

require_once __DIR__ . '/../vendor/autoload.php';

use Shop\Guitar\Type;

class Guitar
{
    public function __construct(public readonly string $serialNumber, public readonly Type $type)
    {
    }
}

這是我的 ToString.php:

<?php

namespace Shop\Guitar;

require_once __DIR__ . '/../vendor/autoload.php';

interface ToString
{
    public function toString(): string;
}

這是我的 Type.php:

<?php

namespace Shop\Guitar;

require_once __DIR__ . '/../vendor/autoload.php';

enum Type implements ToString
{
    case ACOUSTIC;
    case ELECTRIC;

    public function toString(): string
    {
        return match($this)
        {
            self::ACOUSTIC => 'Acoustic',
            self::ELECTRIC => 'Electric',
        };
    }
}

這是我的 GuitarTest.php:

<?php

require_once __DIR__ . '/../vendor/autoload.php';

use PHPUnit\Framework\TestCase;
use Shop\Guitar\Guitar;
use Shop\Guitar\Type;

final class InventoryTest extends TestCase
{
    public function testGuitarConstructor(): void
    {
        $guitar = new Guitar('foo', Type::ELECTRIC);
    }
}

但是當(dāng)我執(zhí)行測試時,出現(xiàn)以下錯誤:

Error: Class "Shop\Guitar\Guitar" not found

問題是什麼?如何解?%B

P粉403804844
P粉403804844

全部回覆(1)
P粉764836448

這只是一個關(guān)於 PSR-4 配置中的 Composer 自動載入器的問題。

  • 您的composer.json 配置看起來合法。
  • require_once 呼叫則不會。這是一個自動載入器,類別檔案一定不需要自動載入器。

如果有疑問,請測試您的自動載入器配置。

後續(xù)步驟:

  1. 您可以透過將-dassert.exception=0 變更為-dassert.exception=1 (0 -> 1代碼> )。然後測試將以非零代碼退出(狀態(tài) 255 因為未捕獲的異常)。

    這就是你想要的,將-dassert.exception=0 更改為-dassert.exception=1 並再次儲存composer.json .

    然後您可以使用任何轉(zhuǎn)儲自動載入器的 Composer 命%E

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板