CakePHP 3 - 如何创建没有表的模型

时间:2016-04-18 21:51:32

标签: cakephp cakephp-3.0

我正在创建一个REST API,它有一种为订单生成价格的方法。订单的参数通过GET请求传递,基于这些参数计算价格的逻辑非常大且复杂。

我想知道如何将该逻辑移出控制器以保持代码干净整洁。

我觉得最好的解决方案是拥有某种类型的Price模型,这是一个没有链接到表但希望使用所需参数创建的类,然后可以执行各种任务和最终根据变量给出一个价格。我还希望能够在创建模型时执行验证,以便它可以检查它是否具有所有必需参数并且它们是有效的。

  • 建筑师的最佳方法是什么?

  • 如何创建一个“虚构”模型,它不是真正的表格或正确的实体?

1 个答案:

答案 0 :(得分:5)

  

建立这个的最佳方法是什么?

不使用表格对象,因为您不想与表格进行交互。

  

如何创建"虚构"模型不是真正的表格或适当的实体吗?

数据处理明显属于模型层。模型是一个完整的,而不仅仅是数据库。这是一个常见的错误。因此,只需在src/Model/src/Model/Calculator/文件夹中创建自己的一组类或单个类,如src/Model/Calculator.php,然后只需使用命名空间和自动加载就可以使用它。< / p>

use App\Model\Calculator;
$calculator = new Calculator();

您可以在表对象的beforeSave()中使用该类,例如,如果您想在某处存储价格。

我建议您始终考虑责任和关注以及如何将它们分开。计算器应该进行计算,仅此而已,它不需要知道关于数据库连接或表的任何来完成它的工作。阅读SoC