【发布时间】:2016-08-08 03:24:41
【问题描述】:
我有一个MY_Controller,它扩展了CI_Controller、MY_Controller
将包含应用程序的所有常用功能。扩展MY_Controller 的Frontend_Controller,此控制器将保存所有与公共相关的内容。 Admin_Controller 将包含所有管理内容,此控制器还扩展了 MY_Controller,以及一些扩展 Frontend_Controller 或 Admin_Controller 的特定控制器。
我正在使用挂钩来自动加载控制器,这是我的文件:
application/core/MY_Controller.php
class MY_Controller extends CI_Controller
{
protected $data = array();
function __construct()
{
parent::__construct();
$this->data['errors'] = array();
$this->data['site_name'] = $this->config->item('site_name');
}
}
application/core/Frontend_Controller.php
class Frontend_Controller extends MY_Controller
{
function __construct()
{
parent::__construct();
var_dump ('Hello');
}
}
application/controllers/Welcome.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends Frontend_Controller {
function __construct()
{
parent::__construct();
}
public function index()
{
var_dump($this->data);
$this->load->view('welcome_message');
}
}
我的钩子配置
application/hooks/App_controllers.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
<?php
function load_app_controllers()
{
spl_autoload_register('my_own_controllers');
}
function my_own_controllers($class)
{
if (strpos($class, 'CI_') !== 0)
{
if (is_readable(APPPATH . 'core/' . $class . '.php'))
{
require_once(APPPATH . 'core/' . $class . '.php');
}
}
}
application/config/hooks.php
/*
| -------------------------------------------------------------------------
| Hooks
| -------------------------------------------------------------------------
| This file lets you define "hooks" to extend CI without hacking the core
| files. Please see the user guide for info:
|
| https://codeigniter.com/user_guide/general/hooks.html
|
*/
$hook['pre_system'][] = array(
'class' => '',
'function' => 'load_app_controllers',
'filename' => 'App_controllers.php',
'filepath' => 'hooks'
);
在config.php 中启用了钩子$config['enable_hooks'] = TRUE;
我的问题是 Welcome 控制器正在加载一个空白页面,当我创建 MY_Controller 并对其进行测试时,工作正常,但是当我创建 Frontend_Controller 并尝试只加载一个空白页面。
【问题讨论】:
-
你检查过error_logs吗?
标签: php codeigniter controller codeigniter-3