首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zend framework 2模型/适配器可重用

zend framework 2模型/适配器可重用
EN

Stack Overflow用户
提问于 2012-11-05 23:30:45
回答 2查看 495关注 0票数 0

我有一个由两个模块使用的模型。我不想将该模型的代码复制到每个模块中。

例如,我有两个模块。第一个是从model获取博客帖子并打印给普通用户,另一个是打印给管理员用户,但有几个选项(这些选项是在视图中设置的)。我会在两个地方使用相同的模型。然后..。那可不好。

只有一段代码:

代码语言:javascript
复制
<?php
namespace Blog\Model;
use Zend\Db\Adapter\Adapter;
use Zend\Db\ResultSet\ResultSet;
use Zend\Db\TableGateway\AbstractTableGateway;
class BlogTable extends AbstractTableGateway
{
    protected $table = 'blog_posts';
    public function __construct(Adapter $adapter)
    {
        $this->adapter = $adapter;
        $this->initialize();
    }
    /**
     * Gets the blog post list
     *
     * @return array
     **/
    public function fetchAll()
    {
        //..
    }
}

那么,我应该如何设计这个应用程序呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-05 23:38:32

最大的问题可能是为什么要将管理部分分离在“Blog-Scope”之外。管理模块应该只是收集所有后端选项的前端(如果这有意义的话)

不过,回到您的问题:您可以简单地将模型A中的那些类包含到模型B中,如use Blog\Model\BlogTable

最终,我认为模块的管理是博客模块本身的责任,正如第一段中所暗示的那样。

编辑:有一件事我忘了提。理想情况下,如果您决定采用依赖方法,您的模块应该使BlogTable可通过服务访问。这样一来,你的ModuleAdmin只需要做一些像$serviceLocator->get('my-blog-table')这样的事情,这是一种更干净的方法。

票数 0
EN

Stack Overflow用户

发布于 2012-11-06 02:13:41

你可以通过一个基本的/共享的模块来实现这一点,该模块提供了各种模型、助手等。

但就我个人而言,我希望围绕功能而不是用户访问级别来设计模块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13235240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档