gpt4 book ai didi

允许转换为 sql 的 PHP 规范模式

转载 作者:行者123 更新时间:2023-12-03 18:45:50 25 4
gpt4 key购买 nike

我正在尝试找出在 PHP 中使用规范模式的最佳方法,其中规范可以(可选地)转换为 PHP。

我正在探索一些新的方向,并测试它们的工作情况。代码和想法在我的脑海中仍然很不清楚。

最小的接口(interface)是这样的:

interface IRepository {
public function get(ISpecification $specification);
}

interface ISpecification {
public function isSatisfiedBy($candidate);
}

如果存储库隐藏了 sql 数据库,则规范需要转换为 sql。添加 ->toSQL() 方法似乎是临时的。转换规范的类也是一种选择,但最终生成 sql 似乎需要很多开销。

想法赞赏。

最佳答案

引用 POEAA(第 324 页):

Under the covers, Repository combines Metadata Mapping (329) with a Query Object (316) to automatically generate SQL code from the criteria. Whether the criteria know how to add themselves to a query, the Query Object (316) knows how to incorporate criteria objects, or the Metadata Mapping (306) itself controls the interaction is an implementation detail.



此描述中的标准当然是您的 Specification pattern。 .我会说您建议的使用 toSQL 的方法当应用程序相对较小时,标准对象上的方法很好。就像您已经说过的那样,走其他路线更加困难,但它也提供了更大的灵 active 和解耦。最后,只有你自己可以决定。

关于允许转换为 sql 的 PHP 规范模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1792746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com