0

パッケージを開発していて、公開する前にベンダーディレクトリに保存したいと思っています。

つまり、Composerを介してインストールされた後のBassetのサービスプロバイダーへのパスは次のとおりです。 /siteroot/vendor/jasonlewis/basset/src/Basset/BassetServiceProvider.php

どのコンポーザーがオートローダーにマップされているかは問題ありません。 /siteroot/vendor/hailwood/databaseconfigloader/src/DatabaseConfigLoader/DatabaseConfigLoaderServiceProvider.php

自動ロードマッピングを正しく生成するには、composer.jsonファイルに何を追加する必要がありますか?

autoload_namespaces.phpファイルを手動で編集してマッピングを追加できますが 'Hailwood\\DatabaseConfigLoader' => $vendorDir . '/hailwood/databaseconfigloader/src/'
、それは機能しますが、コンポーザーの更新を行うと明らかに上書きされます。追加してみました

"psr-0": {
            "Hailwood\\DatabaseConfigLoader": "src/"
         }

composer.jsonしかし、それ'Hailwood\\DatabaseConfigLoader' => $baseDir . '/src/',は機能しません。

4

1 に答える 1

2

状態では、PSR-0 を尊重しません。したがって、2 つのソリューションがあります。

PSR-0を尊重する

コードを に入れる必要があります/siteroot/vendor/hailwood/databaseconfigloader/src/Hailwood/DatabaseConfigLoader/DatabaseConfigLoaderServiceProvider.php。その後、次のようにします。

"psr-0":
{
    "Hailwood\\DatabaseConfigLoader": "vendor/hailwood/databaseconfigloader/src/"
}

クラスマップのオートローディングを使用する

ちょうど試して :

"classmap": ["vendor/hailwood/databaseconfigloader/src/"]
于 2013-02-14T22:27:01.870 に答える