バックグラウンド
共通のエンジンを共有する一連の Web サイトを開発しています。StackExchange の Web サイトのネットワークに非常に似たもの。すべての webiste は、別の Git リポジトリにある別の Symfony2 インストールであり、別のリポジトリに配置されているエンジンへの依存関係があります。
"requires": {
...
"my-platform/core": "dev-master"
}
私はまだ開発の初期段階にあるのでcomposer update
、コア リポジトリで何かを変更するたびに使用する必要はありません。Composer にはこの問題を解決するための適切なツールがあるようですが、適切に動作したくありません。
私のディレクトリ構造:
Workspace
MyPlatformCore
src
MyPlatform
Core
SomeClass.php
composer.json
MyWebsiteAAA
app
src
vendor
web
composer.json
MyWebsiteBBB
app
src
vendor
web
composer.json
composer.json
すべてのMyWebsiteXXX
リポジトリからセクションを自動ロードします。
"autoload": {
"psr-0": {
"MyPlatform": "../MyPlatformCore/src"
}
},
問題
php composer.phar dumpautoload --optimize
そこから実行MyWebsiteXXX
すると、オートローダーのファイルが間違ったパスで生成されます。ファイルvendor/composer/autoload_classmap.php
に含まれるもの:
'MyPlatform\\Core\\...' => $vendorDir . '/myplatform/core/src/MyPlatform/Core/...php',
次のものが含まれている必要があります。
'MyPlatform\\Core\\...' => $vendorDir . '/../MyPlatformCore/src/MyPlatform/Core/...php',
PSWorkspace\MyPlatformCore
は実際にはシンボリックリンクですが、問題になるはずですよね?