CodeIgniter Forums
Need to extend App_Controller - Printable Version

+- CodeIgniter Forums (
+-- Forum: CodeIgniter Archived (from EllisLab) (
+--- Forum: Archived Development & Programming (
+--- Thread: Need to extend App_Controller (/thread-59390.html)

Need to extend App_Controller - El Forum - 09-29-2013


I'm a beginner in CI.
Im working on a project which requires me to extend the core CI_Controller class
I did the following:
1- Enabled hooks through config file.
2- modified the subclass_prefix to empty string, as I dont want to use any prefix in my custom class.
3- created my class file 'application/core/Front_Controller.php' which contains
class Front_Controller extends CI_Controller {
// my code here
4- added the following to 'config/hooks.php' file:
$hook['post_controller'] = array(
                                'class'    => 'Front_Controller',
    'function'  => '__construct',
                                'filename' => 'Front_Controller.php',
                                'filepath' => 'core'

but I couldnt use my class in ci, I get the following error:
Quote:Fatal error: Class 'Front_Controller' not found in C:\AppServ\www\....\application\controllers\front\home.php on line 3

Could anyone please help and tell me what is wrong as I must do it this way?


Need to extend App_Controller - El Forum - 09-29-2013

Any reason why you aren't using the built in method of extending core classes?

if you create a file in application/core called "MY_Controller" with the following:
class MY_Controller extends CI_Controller{
    function __construct(){
    // Your code

using your example you'd use that controller like so:
class Front_Controller extends MY_Controller {
// my code here

see the manual for more info:

Need to extend App_Controller - El Forum - 09-30-2013

And if you want to extend the CI_Controller in many ways you create the relevant classes:

class Snoopy_Controller extends CI_Controller {

class Goofy_Controller extends CI_Controller {

and you put them all in the same "MY_Controller.php" file.