在PostgreSQL和ZF2服务,Mapper,Hydrator,Models及其各自的角色之间丢失

时间:2016-03-27 15:13:24

标签: postgresql zend-framework2

我需要你的帮助,因为我对数据架构有点迷失。

为了完整性和多平台的可能性,我尽可能多地为PostgreSQL委托逻辑。因此,我大量使用视图,物化视图,存储过程,触发器等。另一方面,我离开了Doctrine(我从不喜欢ORM并且它为胖数据库提供了必要的开销),以及TableGateway轻松查询程序的灵活性(就像我从几个小时研究它所理解的那样)。

所以:当我把ZF2和PostgreSQL放在一起时,我现在迷失了自己。我们举一个简单的例子:一篇与多个关键词有关系的文章:   - 我有文章和关键字的模型;   - 我有两个HydratorStrategy,它允许将正确的对象关键字数组加载到第一篇文章中,数据是新鲜的;   - 我也有两个Fieldset,允许我以灵活的方式构建表单并验证它们;

到目前为止,没关系......然后服务和Mapper出现了问题。我们想象一下,我想创建一篇新文章。我得到了我的“CreateForm”,它可以添加1到n个关键字。

我是否应该为Article和Keyword模型提供服务和Mapper?我应该简单地将POST数组传递给ArticleService,它将调用两个必要的Mappers(文章和关键字)?如果服务只是调用ArticleMapper,它本身会调用PgSQL“save_new_article()”函数,例如,它是否正确?将值作为JSON对象传递,因此从不调用任何关键字的Mapper?如果我从不直接使用KeywordMapper(我可能不需要编辑,根据文章的需要创建/删除它们),这不奇怪。

使用ZF2将大多数业务逻辑传输到数据库似乎没有详细记录。另外,我真的不知道我应该如何分离每一个角色。我是否应该简单地使用“每个模型都有自己的服务和映射器”来简单地写下一个Mapper,它将作为我的PgSQL视图,函数和表的SQL存储库?这样做,我只需要一个“PgSQLService”类,不是吗?那么Hydrator呢?

抱歉不够精确......但我现在真的很困惑,并且找不到任何资源来更好地理解这类案件。

0 个答案:

没有答案