【问题标题】:Advises needed on Zend Framework 2 modules and models architectureZend Framework 2 模块和模型架构所需的建议
【发布时间】:2012-06-03 12:02:06
【问题描述】:

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

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

我感到困惑的是,我的一些模块将共享相同的底层数据库资源(例如,ProductsServices 对 cme​​ts 使用相同的表),因此使用相同的数据库模型。因此,我想知道:

当我的数据库模型被多个模块使用时,我应该把它们放在哪里?

【问题讨论】:

    标签: php model-view-controller zend-framework architecture


    【解决方案1】:

    见以下文章:http://adam.lundrigan.ca/2011/09/module-dependencies-in-zf2/

    您可以创建作为产品和服务模块的依赖项的第三个模块(例如:Base、Main),或者您可以将模型添加到您的一个模块并将该模块用作另一个模块的依赖项。

    模块.php

    /**
     * Get dependencies
     *
     * @return array
     */
    public function getDependencies()
    {
        return array(
            'BaseModule' => array(
                'version' => '>=0.1.0',
                'required' => true
            ),
        );
    }
    

    【讨论】:

    • 这确实可以解决这个问题。您是否看到将我所有的基本数据库模型(即 setter 和 getter)放入诸如 DatabaseModels 之类的模块中有任何问题,正如您所解释的那样,这将是其他模块的依赖项,并在每个相应的模块中扩展这些数据库模型并放入更高级的业务逻辑?
    • 我不会把所有模型都放在那里,除非它们在所有模块中都是通用的。如果可能,将模型放在自己的模块中。
    • 您可以执行类似于以下 ZF2 模块 ZfcUserZfcAcl 的操作,它们都从 ZfcBase 扩展了一个基本代码,但在 ZfcBase 中没有具体说明。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多