1

次のようなフォルダーレイアウトがあるとします

projectA
projectA\src
projectA\vendor\autoload.php

projectB
projectB\src
projectB\vendor\autoload.php

projectC
projectC\src
projectC\vendor\autoload.php

これらのプロジェクトは同じレベルにある必要があり、相互に共存する必要があります。たとえば、およびその逆のprojectAコードを使用する可能性があるため、フォルダーに配置することはできません。projectBprojectCvendor

問題はautoload.php、各プロジェクトで自分のフォルダーを自動ロードすることができsrcますvendorが、他のプロジェクトも自動ロードする方法ですか?

隣人のプロジェクトが PHP 名前空間としてフォルダー名を持つと仮定すると、将来、新しいプロジェクト フォルダーを追加したときに autoload が魔法のように機能するように (composer を介して) autoload.php をセットアップすることは可能ですか?

4

1 に答える 1

1

各プロジェクトに、カスタムの autoload 構成を使用して composer.json を書き込むことができます。例:

プロジェクトA:

"autoload": {
    "psr-0": {
        "ProjectB\\": "path/ProjectB/src/",
        "ProjectC\\": "path/ProjectC/src/"
    }
},

プロジェクトB:

"autoload": {
    "psr-0": {
        "ProjectA\\": "path/ProjectA/src/",
        "ProjectC\\": "path/ProjectC/src/"
    }
},

Composer は、単一のプロジェクトの依存関係を管理するために考案されました.異なるプロジェクトの autoload.php をさらにロードすることはお勧めできません..しかし、この方法を使用すると、各プロジェクトの完全なオートローダーを作成できます

于 2014-08-17T22:48:56.663 に答える