質問

PHP 4 サーバーで行き詰まっており、古いレガシー プロジェクトを依存関係の挿入を含む最新のデザイン パターンに移行し始めたいと考えています。PHP 4 で動作する依存関係注入フレームワークはありますか?

役に立ちましたか?

解決

見つけました これ (ドリップ) ですが、ここ数年は更新されていないようです。

他のヒント

ほとんどの依存関係注入フレームワークは、リフレクションを使用して依存関係を判断します。PHP4 にはタイプヒントがないので、実際にはこれを行うことはできません。設定ファイルを使用して実験が行われました。場合によっては、コード内のコメントに埋め込まれます (注釈と呼ばれることが多い)。これは機能しますが、少し扱いに​​くいと思います。私の意見では、静的に型指定されたソリューションを PHP に適用するよりも、PHP の動的な性質を有利に利用する方が良いと思います。手作りの工場では長い道のりを歩むことができます。たとえばを参照してください その方法についてのこの投稿.

依存関係注入フレームワークが実際に PHP で機能するとは思えません。オブジェクト指向プログラムの構造が原因です。まず第一に、C# や Java とは異なり、バイナリがすでに存在しており、このオブジェクトをインスタンス化して別のオブジェクトに注入する方法を見つけるだけで済みます。PHP は、クラス ファイルを使用する前に、クラス ファイルをロードして解釈する必要があります。したがって、PHP で深い継承階層がある場合、それは良い考えではないと思います。

PHP がスクリプト言語であることを考えると、PHP をスクリプト言語として活用するのが最善です。つまり、単純なファクトリ メソッドまたはビルダー メソッドを使用して、依存関係の注入と同様のことを行うだけです。PHP ランタイムがすべての Web リクエストに対して処理しなければならない内容を追加するだけの DI フレームワークで負担をかけることはありません (オペコード キャッシュを行わない限り)。ただし、Java および .NET の Web プラットフォームでは発生しないオーバーヘッドが依然として存在します。ネット)。オブジェクトに挿入されるオブジェクトやオブジェクトの作成方法を変更する必要がある場合は、ファクトリ/ビルダー メソッドを含むスクリプトを編集するだけの簡単な作業です。とにかくそこで再コンパイルする必要はありません。したがって、柔軟性があり、PHP のやり方に適した軽量のアーキテクチャを持っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top