1

Zend Frameworkのモジュール間の依存関係をどのように処理して、再利用可能なドロップインモジュールを作成しますか?

たとえば、ユーザーが電子メールアドレスを提供して購読できるニュースレターモジュールがあります。

次に、電子メールで投稿を購読できるブログモジュールを追加する予定です(ニュースレターの一部の機能は明らかに重複していますが、電子メールアドレスはユーザーモデルに保存されています)。次はフォーラムモジュールで、同じサブスクライブで投稿機能を備えています。

しかし、私はこれらのモジュールをそれぞれに依存せずに使用できるようにしたいと考えています。つまり、ニュースレターのみのアプリケーション、ブログ付きのニュースレター、2つまたは3つのモジュールの組み合わせです。

これはかなり一般的です。たとえば、検索機能を使用した同じストーリーです。すべてのデータ、ブログデータ、またはフォーラムデータ(利用可能な場合)を検索するオプションを備えた検索モジュールが必要です。

このためのデザインパターンはありますか?
モジュールごとに同様の、いくつかの追加moduleExists($moduleMame)、またはいくつかのインターフェイスまたは抽象クラス、いくつかの基本コントローラーパターンを提供する必要がありますか?

4

1 に答える 1

1

アプリケーションの初期化時にモジュールをコンテナーに登録するには、おそらく何らかの依存性注入コンテナー パターンを使用するでしょう。次に、モデルをロードして、適切な依存関係がすべてあることを確認します。

サブスクリプション機能については、必要に応じて共通の API を介して各モジュールで使用できる、より抽象化されたライブラリで共通のサブスクリプション モデルを作成します。

検索する他のモジュールを認識している検索機能の場合: コンテナーを介して検索モデルをロードすると、コンテナーは、検索する登録済みモジュールの検索モデルを通知できます。

それをハックして登録モジュールをレジストリに保存し、検索などの一般的なモジュールからアクセスできるようにする方が簡単かもしれませんが、DI コンテナーを使用すると、多くの同様の問題を解決するのに適したパターンであることがわかります。

于 2010-04-18T03:14:40.673 に答える