Php 压缩DAO层的类
我正在使用一个MVC应用程序,它可以被认为是大的或中等的,它涉及到MYSQL上的数百个功能和400多个表。作为一个ORM工具,我们采用了依赖注入的原则,也采用了DAO数据访问对象模式来存储对每个实体类的查询,换句话说,每个表都有一个实体类,每个实体类都有一个DAO类 我不知道这是否正常,但问题是DAO类的规模越来越大,有些已经有30多个方法,每个方法代表一个查询或业务规则 我们正在尝试以更普遍和参数化的方式创建方法,而且,所有DAO类都是AbstractDAO类的子类,AbstractDAO类已经实现并提供了插入、更新、查找、列表等通用方法Php 压缩DAO层的类,php,design-patterns,orm,doctrine,Php,Design Patterns,Orm,Doctrine,我正在使用一个MVC应用程序,它可以被认为是大的或中等的,它涉及到MYSQL上的数百个功能和400多个表。作为一个ORM工具,我们采用了依赖注入的原则,也采用了DAO数据访问对象模式来存储对每个实体类的查询,换句话说,每个表都有一个实体类,每个实体类都有一个DAO类 我不知道这是否正常,但问题是DAO类的规模越来越大,有些已经有30多个方法,每个方法代表一个查询或业务规则 我们正在尝试以更普遍和参数化的方式创建方法,而且,所有DAO类都是AbstractDAO类的子类,AbstractDAO类已
你有什么建议吗?一些技术、模式或工具,用于更紧密地压缩代码,或者至少更好地组织代码?如果不查看代码和您正在执行的查询类型,很难说清楚 我喜欢DAO方法的另一种选择是每个查询有一个类,这应该允许您在这些查询上有一些行为,从而减少最终得到的类的数量。当然,在最坏的情况下,如果您有500个查询,您将以500个新类结束,这可能远远不够理想 根据经验,这500个查询中的许多都有许多共同点,相同的查询但有一个额外的参数,相同的查询但有分页,等等。如果这与您的情况相符,您可以使您的查询成为一个生成器,以重用大部分代码。此外,您还可以将某些常见内容移动到基本查询类等 另一个优点是,当您需要添加新的查询时,您只需不断添加类,而不需要触及已经很大的单一DAO
看到我不久前问的这个问题,是针对c的,但同样的概念应该延续到php:@tereško我的应用程序的数据库实际上是一个遗留问题,因为几年前我们开始使用php结构化应用程序。无论哪种方式,我们的应用程序也非常大,因为与ERP相比,您的业务线非常大。