Php Zend Db(标准或表网关)与Zend 2中的条令之争-优缺点
Zend DB(标准方式或表网关)与Zend 2中的原则。 有些人可能会说这是苹果和橙色的比较,但我会说,因为它们是替代品(我们在两者之间使用一个),所以可以进行比较(因为需求并不总是非常清楚) 当我开始使用Zend 2时,因为文档、书籍和教程都是基于Zend DB或Table Gateway的,所以我使用了它,但当我们必须处理2、3个或更多的表连接(多个表网关适配器)时,我不满意这种方式,所以我切换到了条令ORM(也阅读了很多人说“条令适用于大型项目”)。我已经在symfony项目中使用了条令,所以这并不困难,但我也不喜欢实体之间复杂连接(额外工作)的条令,尤其是与Zend DB相比的缓慢和额外内存 现在我真的很困惑,我该怎么办?你们有什么建议 根据我的分析: 表网关 赞成的意见Php Zend Db(标准或表网关)与Zend 2中的条令之争-优缺点,php,zend-framework,doctrine-orm,zend-framework2,Php,Zend Framework,Doctrine Orm,Zend Framework2,Zend DB(标准方式或表网关)与Zend 2中的原则。 有些人可能会说这是苹果和橙色的比较,但我会说,因为它们是替代品(我们在两者之间使用一个),所以可以进行比较(因为需求并不总是非常清楚) 当我开始使用Zend 2时,因为文档、书籍和教程都是基于Zend DB或Table Gateway的,所以我使用了它,但当我们必须处理2、3个或更多的表连接(多个表网关适配器)时,我不满意这种方式,所以我切换到了条令ORM(也阅读了很多人说“条令适用于大型项目”)。我已经在symfony项目中使用了条令
- 轻量级(保持简单)
- Zend本机(更好地支持现在和将来的更新)
- 更多文档书籍
- 更好的社区或用户支持(因为这是许多人正在研究的)
- 关闭数据库表(我擅长SQL,所以感觉不错)
- 更灵活
- 更易于使用其他本机特性,如ACL
- 表联接(更复杂)
- 在某些上下文中是原始的
- 处理多表网关实例比较困难
- 松散耦合的类越多,控制越好
- 带来了使用ORM的所有优点
- 很多关于条令本身的工作(教程文档)大部分时间都是有效的
- 减少对数据库的依赖
- 缓存(但也可以使用Zend DB表网关)
- 中型项目内存更多,速度较慢(与Zend DB Table Gateway相比)
- 增加复杂性(额外文件+配置+自身约定)
- 对于中等规模的项目,有时会有过多的技巧
- 在实体或复杂连接之间的多对多关系中需要更多的工作
- 额外工作YAML模式
- Zend+条令上的用户支持教程减少
我在这里发现了一些讨论,但不是根据其利弊分析。多年后,我已经转向学说,我认为如果你能使它与
Zend
兼容,它比Zend\u Db
要好得多。
Doctrine可以迁移您的数据库,这意味着您只需一个命令就可以将客户数据库更新到最新版本。
另一个好处是您的实体可以在多个DBMS
中实现,如mysql
、mssql
、mangodb
和
为了获得更多的兼容性,您可以使用(这个框架为Zend 1.12添加了一些功能)我做了相反的操作。我删除了原则2并切换到Zend DB 2,这将我们的查询提高了5倍,然后我们能够定制Zend DB table gateway的某些部分,并且我们在查询方面获得了5倍的性能(几乎与本机一样)
我想说的是,如果你没有大型数据集,就不要使用原则。请记住,条令会消耗大量资源。如果以下内容对您很重要,那么我会说绝对支持Zend/Db/*
演出
可伸缩性
低学习曲线
已经问过