Logic 在cakephp应用程序中放置公共逻辑的位置

Logic 在cakephp应用程序中放置公共逻辑的位置,logic,cakephp-3.0,Logic,Cakephp 3.0,这是我挣扎了一段时间才弄明白的事情 我有一个shell,它目前从第三方获取数据,处理数据,并将处理后的数据保存到我的数据库中。处理过程也可以保存到相关表中 我还想有一些通过chrome扩展提交数据的方法,以同样的方式进行处理。在这两种情况下,数据的格式都是相同的,所以我希望将shell中的逻辑转换为shell和控制器都可以使用的逻辑 在某些情况下,我的处理过程还包括加载任何当前保存的数据,我发现除非我在控制器中,否则我不能使用loadModel 那么,这个逻辑应该放在哪里?我如何确保解决方案仍然

这是我挣扎了一段时间才弄明白的事情

我有一个shell,它目前从第三方获取数据,处理数据,并将处理后的数据保存到我的数据库中。处理过程也可以保存到相关表中

我还想有一些通过chrome扩展提交数据的方法,以同样的方式进行处理。在这两种情况下,数据的格式都是相同的,所以我希望将shell中的逻辑转换为shell和控制器都可以使用的逻辑

在某些情况下,我的处理过程还包括加载任何当前保存的数据,我发现除非我在控制器中,否则我不能使用loadModel


那么,这个逻辑应该放在哪里?我如何确保解决方案仍然可以访问我需要的框架的所有部分?

您可以在src下创建一个包含php文件的实用工具文件夹

在这里,您可以定义类的名称空间,并且可以轻松地实例化

您也可以使用语句

--src
 |--Utility
    |--Example.php 

<?php

    namespace App\Utility;

    class Example
    {

     function __construct() {
        //constructor
     }

    function demo() { 
       //function for specific task
   }

}
--src
|--效用
|--Example.php

当您需要访问控制器外部的表对象时,可以使用
TableRegistry::get()
。从3.6开始,看起来您必须使用getTableLocator,但我认为这是我必须要做的