我正在为mu电子商务系统创建一个订单履行系统。我陷入困境。每1小时1个cron作业运行,它分配仓库并进行其他处理。所以这是一个我做1个完整过程的类。我需要为用户提供选项,也可以手动单独执行每个操作,也可以手动分配仓库等。因此,这个仓库功能将用于多个地方,即cron类和仓库类。那么我应该在1个库中创建这些函数,比如Warehouse.php,还是在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();
}
}
答案 0 :(得分:1)
在你的Core文件夹中设置一个MY_Controller,它扩展了CI_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-&gt; _order_export()调用此函数;在你的其他控制器中。
答案 1 :(得分:0)
是的,你可以。编写一个仓库类/控制器或一组功能,可以适应系统不同部分的多种用途。然后,您可以对类/函数进行逻辑编程,以便在每次使用时都能正常工作。
非常基本的伪代码:
If (CLI)
{
// do this
} elseif (BATCH) {
// do that
} elseif (MANUAL) {
// do other
}
此时不可能帮助你,因为我们就像雷区的盲人一样。