编程语言
首页 > 编程语言> > php-Yii ActiveRecord与存储库模式

php-Yii ActiveRecord与存储库模式

作者:互联网

这些方法既有优点也有缺点.

我正在使用Yii开发中型应用程序.

Yii已采用AR模式并默认支持它.使用存储库模式的优点非常明显,但问题是:我是否真的应该花时间在与Yii结合实施存储库模式上?

我也想知道您对这两种模式的看法.我还想知道为什么AR如此流行和如此频繁地使用?我认为存储库模式更灵活,更可测试,代码更简洁并且可以更好地集成到企业应用程序中.

我应该继续对Yii使用AR模式吗?

我也在考虑从Yii切换到Laravel.在这一刻,我不会因此而失去很多工作.

解决方法:

对我而言,ActiveRecord在小型项目中相当不错,但对于中型或大型应用程序,则很难维护.

Yii ActiveRecord的优点

>使用Yii AR可以加快编码速度.所有AR模型和控制器都可以由gii一键生成.
> AR非常受欢迎.几乎所有开发人员都熟悉这种模式.新的团队成员可以更快地投入该项目.

Yii ActiveRecord的缺点

对于Yii,太多的逻辑集中在AR模型类中:

>验证
>查找方法
>业务逻辑

这使代码:

>可读性较差.通常,AR类由几十个不相关的方法组成.可以使用behaviorstraits分解逻辑.但是,实际上仍然很难维护.
>难以测试.

当应用程序变得足够大时,需要在Controller和AR模型之间添加额外的层.存储库是一个不错的选择.对于我来说,我开始在Laravel中使用存储库,但是现在我也在Yii 1/2中使用它.

在Yii中实现存储库实际上不是问题. Yii的AR与Laravel的Eloquent非常相似.迫使所有团队成员不直接使用AR,而是使用存储库要困难得多.

如果您有Laravel的经验,建议您使用它.

标签:activerecord,repository-pattern,yii,php
来源: https://codeday.me/bug/20191029/1957030.html