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

Bad*_*sie 1 cakephp cakephp-3.0

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

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

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

  • 构架此的最佳方法是什么?

  • 如何创建不是表或适当实体的“虚构”模型?

bur*_*zum 6

构架此的最佳方法是什么?

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

如何创建不是表或适当实体的“虚构”模型?

数据处理显然属于模型层。模型是一个整体,而不仅仅是数据库。这是一个常见的错误。因此,只需在src/Model/src/Model/Calculator/文件夹中创建自己的一组类或单个类src/Model/Calculator.php,然后在需要使用的任何地方简单地使用名称空间并自动加载即可使用。

use App\Model\Calculator;
$calculator = new Calculator();
Run Code Online (Sandbox Code Playgroud)

例如,如果要将价格存储在某个地方,则可以在表对象的beforeSave()中使用该类。

我建议您始终在责任和关切以及如何将它们分开方面进行思考。计算器应该执行其计算,仅此而已,它不需要了解任何有关数据库连接或表的信息就可以完成其工作。了解有关SoC的信息