我有一个目录“Store”,它位于 CodeIgniter 的应用程序目录之外。这里我需要从“Store”目录调用一个控制器方法。
是否可以从应用程序目录之外的目录调用控制器方法?
谢谢。
我有一个目录“Store”,它位于 CodeIgniter 的应用程序目录之外。这里我需要从“Store”目录调用一个控制器方法。
是否可以从应用程序目录之外的目录调用控制器方法?
谢谢。
据我所知,使用$this->load
(Loader class ie),你不能。即使您通过以下方式直接包含like:
应用程序/控制器/test.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require('/absolute/path/to/dummy.php');
class Test extends CI_Controller {
public function handle(){
$d = new Dummy();
$d->handle();
}
}
假人.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Dummy extends CI_Controller {
public function handle(){
// do something here
}
}
它(包括)不起作用,因为您明确禁止直接访问!但是,如果您不禁止这样做,那么您的控制器代码很容易被利用,并且您不会有问题。
因此,如果另一个 codeigniter 项目的另一个控制器部分是使用命令行,那么一种方法是使用命令行。
假人.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access
class Test extends CI_Controller {
public function handle(){
$d = new Dummy();
$d->handle();
}
}
应用程序/控制器/test.php
public function handle(){
exec("cd /absolute/path/to/dummyproject; php index.php dummy handle;");
}
您还可以进一步了解如何传递命令行参数。