我正在阅读Rob Allen的zend框架教程。我正在开发一个从小开始的应用程序,但我希望它是可扩展的,所以以下语句引起了我的注意:
“在本教程中,我们将创建一个扩展Zend_Db_Table并使用的模型 一个Zend_Db_Table_Row。 Zend Framework提供了实现表数据的Zend_Db_Table 网关设计模式,允许与数据库表中的数据连接。请注意表格 数据网关模式在大型系统中可能会受到限制。放置数据库也有诱惑力 将代码访问到控制器操作方法中,因为这些方法由Zend_Db_Table公开。“
有谁能告诉我这对大型系统有何限制?有哪些替代方案?
答案 0 :(得分:0)
替代方案是DataMapper。你在这里对这些不同的模式有一个很好的解释:What is the difference between the Data Mapper, Table Data Gateway (Gateway), Data Access Object (DAO) and Repository patterns?
DataMapper与表数据网关的数据库耦合较少,表数据网关是单个表的瘦包装。
ZF1中的Zend_Db存在严重的局限性。 Doctrine2是封装与持久层交互的更好选择。