使用Zend Framework和Doctrine以及独立的模块化结构

时间:2010-01-14 13:21:02

标签: php zend-framework doctrine module

我见过很多关于整合ZF和Doctrine的文章。 ZF here也提出了一项建议,但它们总是有两种可能的结构。他们将所有模型放在一个顶级模型目录中,或者将它们放入模块相关的模型目录中。

application
|-- Bootstrap.php
|-- configs
|-- controllers
|-- models           - EITHER HERE
|-- modules
|   -- examplemodule
|       |-- controllers
|       |-- models   - OR HERE
|       |-- views
|-- views

对于我们的项目,我发现两个选项中的任何一个都存在问题:
1。一个目录:应用程序/模型 - 在一个复杂的系统中,在短时间内会有数百个文件,当你有两个表类时(例如User.php和UserTable.php)。 的 2。基于模块的模型目录: application / modules / examplemodule / models - 在许多情况下,我们同时使用多个模块中的模型。所以“用户”是必需的,例如在模块“游戏”,“管理”,......

有没有办法在顶级目录“models”下使用某种子目录来获得一些分组。它应完全独立于模块结构。

application
|-- Bootstrap.php
...
|-- models
|   -- user
|       |-- User.php
|       |-- Friend.php
|       |-- other user related models
|   -- game
|       |-- Game.php
|       |-- Score.php
|       |-- ...
...

任何解决方案都应支持自动加载和yaml文件生成类。

任何想法,链接或解决方案?谢谢!

4 个答案:

答案 0 :(得分:1)

我们正在为我现在工作的公司制定解决方案。

我们目前正在遵循Zend模块化目录结构,我们在每个模块目录中都有我们的模型文件夹,其基本目录如下:

|----application
|--------modules
|------------content
|----------------models
|--------------------Base
|------------------------Content.php
|--------------------Content.php

我们的模型是自动加载的,但我们还没有将代码生成集成到zf cli中,因此我们当前生成模型,然后手动将它们复制到模块目录中。

抱歉,我没有您需要的确切答案,但您可能也对Zend社区中的proposal感兴趣。

答案 1 :(得分:1)

答案 2 :(得分:0)

我把我放在一个目录里。俗话说,开发人员时间昂贵,CPU时间便宜,因此针对开发人员进行了优化。还有,KISS和YAGNI。在需要优化之前不要进行优化。在那之前,信任自动装载机。

对于它的价值,我使用它的网站相当繁忙,性能从来都不是问题。

答案 3 :(得分:0)

用户模型不会属于用户模块吗?并且游戏模块不应该更有可能使用某种接口来连接用户模型吗?

不是直接在游戏模块中使用用户模型,而是通过配置将用户适配器传递给游戏模块?

毕竟,对于我来说,当模块不可互换时,它们就没有意义了。