PHP从CLI执行的文件访问CodeIgniter类
我有一个PHP从CLI执行的文件访问CodeIgniter类,php,codeigniter,class,command-line-interface,Php,Codeigniter,Class,Command Line Interface,我有一个CI_模型,有一个名为Xray的类。我有一个名为Pages的控制器类,它处理应用程序中的所有页面。其中一个页面名为worker.php。我通过CLI使用Supervisord执行worker.php 我希望能够从worker.php访问Xray的函数,但不能通过命令行(在执行worker.php后,我不会使用命令行)。将Xray作为模型或库加载,以更合适的方式加载,并正常访问 class Pages extends CI_Controller { function worker
CI_模型
,有一个名为Xray
的类。我有一个名为Pages
的控制器类,它处理应用程序中的所有页面。其中一个页面名为worker.php
。我通过CLI使用Supervisord
执行worker.php
我希望能够从
worker.php
访问Xray
的函数,但不能通过命令行(在执行worker.php
后,我不会使用命令行)。将Xray作为模型或库加载,以更合适的方式加载,并正常访问
class Pages extends CI_Controller {
function worker()
{
$this->load->library('Xray');
echo $this->xray->my_func();
}
}
以下是在外部加载的脚本中包含CodeIgniter功能所需的代码:
ob_start();
include('/path/to/your/index.php');
ob_end_clean();
$ci =& get_instance();
$ci->load->model('xray');
所以问题是没有CI
实例,因此不会加载任何内容
取自问题是$此是当前的空 我只是先给父母打电话:
function __construct()
{
parent::__construct();
}
如果您检查父级
,您将看到类CI_控制器
,从那里函数uu construct()
将帮助您正确引导upp
现在您的$this
是一个对象,您可以
$this->config->load()
或$this->load->library('Xray')代码>一个“普通页面”是指一个控制器类?X射线是“X射线”模型吗?您的语言有点不清楚-您能解释一下您的结构吗?我进一步澄清了我的意图我可以从浏览器访问worker.php文件并访问任何与CI相关的内容,但是当它从CLI执行时,我会遇到类似php致命错误:不在对象上下文中时使用$this
。那么有什么不同呢?这就像worker.php由于其加载方式而与其他所有内容分离一样。