Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据映射器设计模式和网关-新手问题_Php_Design Patterns_Datamapper_Gateways - Fatal编程技术网

Php 数据映射器设计模式和网关-新手问题

Php 数据映射器设计模式和网关-新手问题,php,design-patterns,datamapper,gateways,Php,Design Patterns,Datamapper,Gateways,如果我错了,请纠正我: 如果我们使用Dao/Vo模式或TDG模式,我们将有一个很好的代码组织,因为每个(或至少很多)表都有一个相关的类 这种方法的问题在于,或数据在给定表中没有关闭。我们有一些特定于领域的数据,比如findDogBreed()或findBookBestSellerAuthor()

如果我错了,请纠正我:

如果我们使用Dao/Vo模式或TDG模式,我们将有一个很好的代码组织,因为每个(或至少很多)表都有一个相关的类

这种方法的问题在于,或数据在给定表中没有关闭。我们有一些特定于领域的数据,比如
findDogBreed()
findBookBestSellerAuthor()
解决方法之一是使用映射器。映射器将包含一组与一个表相关的方法和属性,但它们不会仅与该表关闭,也不会与特定的SQL模式相关

问题是,如果我们开始抽象所有这些东西,我们将无法访问SQL语法。如果我们需要我们的数据库管理员来处理它呢?在更复杂的查询中,使用映射器可能会导致非常混乱的抽象“东西”


这是正确的吗?如果是这样的话,我想知道为了在这里找到一个中间术语,我们有什么路径。

当您抽象功能时,即使是在多个抽象级别上,您也不必失去手动编写SQL的选项


例如,看看Doctrine,它是受Hibernate启发的PHP ORM。它允许您使用DQL(条令查询语言)编写查询,将其转换为SQL并自动映射实体,但您也可以编写(通常用于性能优化),但您需要自己定义结果映射。

在抽象功能时,您不必失去手动编写SQL的选项,甚至在多个抽象层次上


例如,看看Doctrine,它是受Hibernate启发的PHP ORM。它允许您使用DQL(条令查询语言)编写查询,将其转换为SQL并自动映射实体,但您也可以编写(通常用于性能优化),但您需要自己定义结果映射。

我需要知道,至少,我没有得到答案的原因是:a)这个问题毫无意义。b) 没有像中期选举这样的想法。:)请请给出当前体系结构的示例。特别是与方法findDogBreed()产生的问题有关;或findBookBestSellerAuthor();。我需要知道,至少如果我没有得到答案是因为:a)这个问题没有意义。b) 没有像中期选举这样的想法。:)请请给出当前体系结构的示例。特别是与方法findDogBreed()产生的问题有关;或findBookBestSellerAuthor();。