ZF 1.x は実際にはモジュラーではなく、ZF 1.x のモジュールは少し間違った名前だと思います。私の意見では、それらはドメインライブラリに似ています。そうは言っても、私はコード分離をこのように見ています(純粋な意見)。
ライブラリに配置した別のプロジェクトで再利用または再利用できると予想されるコード。例えば。ビュー ヘルパー、アクション ヘルパー、抽象モデル クラス、基本モデル、プラグインなど...
アプリケーション固有のコードで、アプリケーション レベルのディレクトリに配置したアプリで普遍的に使用されるコード。具体的なデータ マッパー、DbTable モデル (Doctrine は使用していません)、フォーム、レイアウトなどです。
特にモジュール (ドメイン) に属し、モジュール レベルのディレクトリに配置した他の場所では使用しない、または使用できないコード。これには、フォームの 1 つである特別なビューおよびアクション ヘルパーのようなものが含まれます。ほとんどの場合、ドメイン (エンティティ) モデルを配置する場所です。
これを説明するために、例を示します (個人の名前空間は省略します)。
アプリケーションにmusicという名前のモジュールがあり、このモジュールには'music'という名前のデータベース テーブルがあります。
したがって、これらはモジュールでこの Db テーブルを使用するために必要なファイルです。
//The DbTable model
application
/models
/DbTable
/Music.php //extends Zend_Db_Table_Abstract
その DbTable モデルを使用するために、2 つのファイルを使用するマッパーを作成します
//Base mapper class
library
/Application
/Model
/Mapper.php
//The concrete mapper
application
/modules
/models
/MusicMapper.php //extends Namespace_Application_Model_Mapper
そのマッパーを使用するには、基本エンティティ クラスと具象エンティティ クラスの 2 つのファイルで構成されるドメイン モデルを作成します。
//Base entity class
library
/Application
/Model
/Entity.php
//and the concrete entity class
application
/modules
/models
/Music.php //extends Namespace_Application_Model_Entity
ファイルとクラスをこのように整理すると、混乱したり散らばったりすることなく、コードをできるだけ DRY に保つことができます。
これが役立つことを願っています。