3

Packagist では、パッケージ名に大文字を使用することはできません。これを回避するには、ハイフンを使用することをお勧めし-ます。したがって、私のパッケージ名は TableCreator から table-creator になりました。残念ながら、これにより、次のエラー メッセージが表示され、ライブラリの自動読み込みが妨げられたようです。

Class 'Company\TableCreator\DatabaseField' not found

このエラー メッセージは、ファイルに依存するのではなく、特定のファイルを手動で含めるとすぐに消えvendor/autoload.phpます。

私のパッケージ composer.json ファイルは次のとおりです

{
    "name": "company/table-creator",
    "type": "library",
    "description": "Package creating or editing MySQL tables.",
    "keywords": ["mysql", "mysqli","models"],
    "license": "MIT",
    "authors": [
        {
            "name": "xxx xxx",
            "email": "xxx@xxx.org",
            "role": "Developer"
        }
    ],
    "require": {
        "php": ">=5.3.0"
    },
    "autoload": {
        "psr-4": {
            "company\\table-creator\\": ""
        }
    }
}

ファイルで宣言された名前空間はまだnamespace Company\TableCreator;

パッケージ名にハイフンが含まれるようになったので、クラスを自動ロードするには、composer 構成で何を微調整する必要がありますか?

4

1 に答える 1

3

PSR-4 名前空間プレフィックスへの変更を元に戻す必要があります。

{
    "autoload": {
        "psr-4": {
            "Company\\TableCreator\\": ""
        }
    }
}
于 2016-01-06T00:25:43.563 に答える