【发布时间】:2017-09-19 11:24:51
【问题描述】:
我正在尝试使用 composer 在我的应用程序中扩展 CodeIgniter 控制器,但它不起作用。
这个给我
Fatal error: Class 'CI_Controller' not found in D:\xampp\htdocs\ci-dev\application\core\MY_Controller.php on line 11
我知道如果我在我的 config.php 中添加 spl_autoload_register 那么它是可行的,但我想使用作曲家。
这是我的全部设置。
我在我的 application/core/MY_Controller.php
中创建 MY_Controllerclass MY_Controller extends CI_Controller
{
public $data = array();
public function __construct()
{
parent::__construct();
}
}
在此之后,我在 application/libraries/Admin_Controller.php
中添加管理控制器class Admin_Controller extends MY_Controller
{
public function __construct()
{
parent::__construct();
}
}
application/libraries/Frontend_Controller.php
中的前端控制器class Frontend_Controller extends MY_Controller
{
public function __construct()
{
parent::__construct();
}
}
这是我的默认控制器索引调用
class Welcome extends Frontend_Controller {
public function index()
{
$this->load->view('welcome_message');
}
}
我在 config.php 中这样设置我的作曲家
$config['composer_autoload'] = FCPATH.'../vendor/autoload.php';
和这样的composer.json文件
"autoload": {
"files" : [
"application/core/MY_Controller.php",
"application/libraries/Admin_Controller.php",
"application/libraries/Frontend_Controller.php"
]
},
【问题讨论】:
-
路径好吗?
FCPATH是ci-dev,并且您将进入带有$config['composer_autoload'] = FCPATH.'../vendor/autoload.php';的目录 -
我将
public_html中的index.php文件移动到ci-dev文件夹中,并将我的作曲家vendor文件夹移动到ci-dev文件夹中 -
CI_Controller not found 表示找到了其他类。保留相同的配置,但使用 CI_Controller 扩展 Welcome 类,看看会发生什么。
标签: php codeigniter optimization composer-php spl-autoload-register