ZendフレームワークとDoctrineを使用した小規模のコンテンツ管理システム(CMS)に取り組んでいます。私の質問を説明するために、私は以下の構造のように2つのモジュール(Admin、Frontsite)を構築する単純な構造を作成しました。Zendフレームワークで冗長性のないモジュール構造(相互に依存しない)
application
- configs
- controllers
- models
- modules
- frontsite
- controllers
-FrontController
-shownewsAction()
...
...
- models
- views
...
...
- admin
- controllers
-NewsController
- models
-news (extends newsbase)
-newsbase
- views
...
...
- views
管理モジュールはすべての管理要求を処理し、frontsiteモジュールは訪問者からの要求を処理します。管理モジュールにモデル(ニュース)を作成し、フロントコントローラからフロントコントローラにアクセスできるようにする。それから私の1つのモジュールは別のモジュールに依存することになるでしょう。
私が知る限り、モジュラーアプローチの1つの目的は、お互いに依存することなく、各モジュールを頼りにしないようにすることです。 1つのモジュールは、アーキテクチャ内のどのモジュールにも影響を与えずに取り外すことができます。まあ、それがモジュラーアプローチの目的の1つであれば、フロントサイドモデルに同じモデル(ニュース)を作成する必要があります。これは私のプロジェクトの冗長性を引き起こします。それは、オブジェクト指向設計の一部ではありません。なぜなら、その再利用性の目的に打ち勝つからです。
最初のアプローチでは、一般的なモデルを保存し、他のモジュールにアクセスさせるために別の共通モジュールを作成する必要がありますか?これは、私の特定のモジュールがVCアーキテクチャのみを持ち、共通モジュールからモデルにアクセスすることを意味しますか?
私が考えている2番目のアプローチは、あるモジュールを別のモジュールと通信するのに役立つ何らかのサービス層を作成することです。
もう1つのアプローチは、すべての共通モデルをライブラリフォルダに移動することです。すべてのモジュールがライブラリからアクセスします。このようにして、一部のモジュールはVCモジュールになりますが、他のモジュールには依存しません。このようにして、再利用性を促進し、冗長性を排除し、モジュールを互いに信頼できないようにします。
業種は何ですか?どんな専門家の意見も!
私は答えを得るためにstackoverflowとgoogleでいくつかの検索を行っています。しかし、彼らの誰も私の質問に正確に答えませんでした。
いくつかの検索では、私は、現時点ではまったく同じことをやっている
Search 1 Search 2 Search 3 Search 4