Hi,
I'm trying to use my own classes with hooks, so on a fresh install of last CI, I've enabled hooks in config file.
Modified hooks.php by adding :
PHP Code:
$hook['pre_system'][] = array(
'class' => '',
'function' => 'load_app_controllers',
'filename' => 'App_controllers.php',
'filepath' => 'hooks'
);
Added a file call App_Controllers.php in hooks folder :
PHP Code:
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');
}
}
}
Then a file MY_Controller.php in Controllers :
PHP Code:
<?php
class MY_Controller extends CI_Controller
{
public function __construct()
{
parent::__construct;
}
}
class Admin_Controller extends MY_Controller
{
function __construct()
{
parent::__construct();
echo 'This is from admin controller';
}
}
class Public_Controller extends MY_Controller
{
function __construct()
{
parent::__construct();
echo 'This is from public controller';
}
}
And two file in controllers "Admin_Controller.php" :
PHP Code:
<?php
class Admin_Controller extends MY_Controller
{
function __construct()
{
parent::__construct();
echo 'This is from admin controller';
}
}
Public_Controller.php :
PHP Code:
<?php
class Public_Controller extends MY_Controller
{
function __construct()
{
parent::__construct();
echo 'This is from public controller';
}
}
And finally modified Welcome.php :
PHP Code:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends Admin_Controller {
Problem is that I got error :
Code:
Fatal error: Class 'Admin_Controller' not found in /Applications/MAMP/htdocs/hooks/application/controllers/Welcome.php on line 4
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/hooks/application/controllers/Welcome.php:4)
Filename: core/Common.php
Line Number: 578
Backtrace:
A PHP Error was encountered
Severity: Error
Message: Class 'Admin_Controller' not found
Filename: controllers/Welcome.php
Line Number: 4
Backtrace:
Someone ?