需要关于Zend Framework 2模块和模型架构的建议

4

我希望开始使用 Zend Framework 2 并需要一些关于框架架构的指导。我将 Akrabat's ZF2 教程 与其 ZF1 版本 进行了比较,到目前为止我注意到的主要区别似乎是使用了 模块。我喜欢将模块作为独立且可重复使用的代码段的想法,考虑到这可以帮助分割我的应用程序并使其更易于维护。例如,我可以有以下的URL => 模块映射:

http://example.org/products => Products module
http://example.org/services => Services module
http://example.org/oauth => Oauth module
[...]

我的困惑在于,我的一些模块将共享相同的底层数据库资源(例如,产品服务都使用相同的评论表),因此使用相同的数据库模型。因此,我想知道:

当这些模型被多个模块使用时,我应该把它们放在哪里?

1个回答

3
请查看以下文章:http://adam.lundrigan.ca/2011/09/module-dependencies-in-zf2/ 您可以创建一个第三方模块(例如:Base,Main),作为Products和Services模块的依赖项,或者将Models添加到其中一个模块中,并将该模块用作另一个模块的依赖项。
Module.php
/**
 * Get dependencies
 *
 * @return array
 */
public function getDependencies()
{
    return array(
        'BaseModule' => array(
            'version' => '>=0.1.0',
            'required' => true
        ),
    );
}

这确实是解决这个问题的一种方式。你认为把所有基本的数据库模型(即设置器和获取器)放在一个名为DatabaseModels的模块中,作为其他模块的依赖项,并在每个相应的模块中扩展这些数据库模型并将更高级的业务逻辑放入其中,会有什么问题吗? - Max
如果它们在所有模块中都是常见的,我不会把所有模型都放在那里。如果可能的话,将模型放在它们自己的模块中。 - Boby
你可以做类似于以下的ZF2模块ZfcUserZfcAcl,它们都扩展自ZfcBase的基础代码,但在ZfcBase中没有它们特定的内容。 - Boby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接