-2

我正在为 mu 电子商务系统创建一个订单履行系统。我陷入了困境。每 1 小时运行 1 个 cron 作业,它分配仓库并执行其他进程。所以这是我执行 1 个完整进程的类。我需要为用户提供单独手动执行每个操作的选项,即手动分配仓库等。因此,此仓库功能将在多个地方使用,即在 cron 类和仓库类中。那么我应该在像warehouse.php 这样的1 个库中创建这些函数,还是在cron 类中创建每个类的实例并调用它的函数?我正在使用 Codeigniter。

希望下面的代码让我清楚。所以我应该创建一个仓库库还是一个控制器是我的问题。主要问题是这样使用

class cron extends CI_Controller{

function index(){
$this->load->library('blacklist');
$this->load->library('warehouse');
$this->load->library('lsp');
$this->blacklist->function1();
$this->warehouse->function2();
}
}

or 

class cron extends CI_Controller{

function index(){
$blacklist = new blacklist();
$warehouse = new warehouse();
$lsp  = new lsp();
$blacklist->function1();
$warehouse->function2();

}
}
4

2 回答 2

1

在扩展 CI_Controller 的 Core 文件夹中设置 MY_Controller - 使您的普通控制器扩展 MY_Controller 而不是 CI_Controller 并将您需要从多个控制器访问的功能放在那里。我做了类似的事情,然后只使用 if(!$this->input->is_cli_request()){ exit(); 将我的 cron 控制器限制为 cli 请求。} 以增加安全性。

样本:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Controller extends CI_Controller {

        public function __construct() {
            parent::__construct();
        }

        protected function _order_export()
        {
             // Export routine goes here
        }
}
/* End of file MY_Controller.php */
/* Location: ./application/core/MY_Controller.php */

使用 $this->_order_export() 调用此函数;在您的其他控制器中。

于 2012-10-23T11:01:18.110 回答
0

是的你可以。编写一个仓库类/控制器或一组函数,以适应系统不同部分的多种用途。然后,您可以对类/函数进行逻辑编程,使其适用于每次使用。

非常基本的伪代码:

If (CLI)
{
   // do this
} elseif (BATCH) {
   // do that
} elseif (MANUAL) {
   // do other
}

在这一点上,不可能再进一步帮助您,因为我们就像雷区中的盲人。

于 2012-10-23T11:02:34.270 回答