php - Codeigniter autoload controller not working -
i have various controller core/
folder named core/my_controller.php
, other controllers in libraries/
folder libraries/user_controller.php
,libraries/frontend_controller.php
. using code below in config.php
autoload these files. dont think working.
i seeing error message fatal error: class 'my_controller' not found in /home/manumakeadmin/manumake.com/2d/application/libraries/frontend_controller.php on line 3
function __autoload($classname) { if (strpos($classname, 'ci_') !== 0) { $file = apppath . 'libraries/' . $classname . '.php'; if (file_exists($file) && is_file($file)) { @include_once($file); } } }
edit
i can make work manually including files as
<?php include_once apppath.'core/my_controller.php'; class frontend_controller extends my_controller {
but wondering if make autoload code work
library file names , class names must match , capitalised - frontend_controller.php
when extending core class, file name must match class name. capitalise prefix , first letter of class name in file: my_controller.php
prefix can set in: application/config/config.php
also ensure files in application
directory, rather system
. seems case, it's worth checking.
it's idea check user guide naming conventions. example, model class names must have first letter capitalised , rest lowercase; file name should lower case , match class name.
however, it's important realise libraries in codeigniter aren't intended extending core classes, example ci_controller
, assume my_controller
extending. libraries should used to:
- create entirely new libraries.
- extend native libraries.
- replace native libraries.
i think it's frontend_controller
better located in: application/controllers/
Comments
Post a Comment