我正在创建一个REST API,它有一种为订单生成价格的方法。订单的参数通过GET请求传递,基于这些参数计算价格的逻辑非常大且复杂。
我想知道如何将该逻辑移出控制器以保持代码干净整洁。
我觉得最好的解决方案是拥有某种类型的Price
模型,这是一个没有链接到表但希望使用所需参数创建的类,然后可以执行各种任务和最终根据变量给出一个价格。我还希望能够在创建模型时执行验证,以便它可以检查它是否具有所有必需参数并且它们是有效的。
建筑师的最佳方法是什么?
如何创建一个“虚构”模型,它不是真正的表格或正确的实体?
答案 0 :(得分:5)
建立这个的最佳方法是什么?
不使用表格对象,因为您不想与表格进行交互。
如何创建"虚构"模型不是真正的表格或适当的实体吗?
数据处理明显属于模型层。模型是一个完整的层,而不仅仅是数据库。这是一个常见的错误。因此,只需在src/Model/
或src/Model/Calculator/
文件夹中创建自己的一组类或单个类,如src/Model/Calculator.php
,然后只需使用命名空间和自动加载就可以使用它。< / p>
use App\Model\Calculator;
$calculator = new Calculator();
您可以在表对象的beforeSave()中使用该类,例如,如果您想在某处存储价格。
我建议您始终考虑责任和关注以及如何将它们分开。计算器应该进行计算,仅此而已,它不需要知道关于数据库连接或表的任何来完成它的工作。阅读SoC。