名前空間のフォールバックと Composer での PSR-4 ローダーの使用に問題があります。
私がやろうとしていることはこれです:
- 上書き/拡張できるコアを持っています。
- コアはインターフェイスに基づいています。
ディレクトリ構造は次のようになります。
site/app/View/Example.php
site/src/ACME/app/View/Example.php
site/src/ACME/app/Interface/View.php
私はこの構成に設定されていないので、より良い提案があればそれを選択してください。
私の作曲家のjsonは、psr-4の場合は次のようになります。
"autoload": {
"psr-4": {
"ACME\\App\\Site\\" : "app/",
"ACME\\App\\" : "src/AMCE/app/"
}
}
サイトが見つからない場合、これにより ACME\App\Site\View が ACME\App\View にフォールバックされると思いました (インターフェイス部分はまだ行っていないことに注意してください...)。
site/app/View/Example.php の私のコードは次のようになります:
namespace ACME\App\Site\View;
class ViewExample extends View {
site/app/View/View.php もある場合、これは機能します。次のようになります。
namespace ACME\App\Site\View;
class View extends \ACME\App\View\View {
site/src/app/View/View.php は次のようになります。
namespace ACME\APP\View;
class View {
これはインターフェイスを使用する必要があります(まだ試していません)。
だから私が本当にやりたいのは、site/app/View/View.php を持つ必要がないようにすることです。また、site/app/View/Example.php を持つ必要もありません。 /src/ACME/app/View/Example.php.
申し訳ありませんが、私は名前空間に慣れていないので、うまく言い表せないかもしれません。
私が得ているのは、 ACME\App\Site が ACME\App にフォールバックすると思っていたということです-そうではありませんか? それとも私はそれを間違っていますか?現時点では、すべてのファイルを配置する必要があります。