Использование PHP spl_autoload_register () с помощью Codeigniter

Как я могу использовать spl_autoload_register () с помощью Codeigniter? Мне нужно сделать это, потому что я использую Codeigniter с другой структурой, которая также использует autoload.

Я увидел что-то здесь

PHP spl_autoload_register

но я не знаю, как настроить автозагрузку CodeIgniter . Im новое для ООП и Codeigniter. Большое спасибо!

Вышеупомянутая ссылка имеет следующее:


 функция autoload_services ($ class_name) {
     $ file = 'services /'.  $ Class_name.  '.php';
     if (file_exists ($ file)) {
         require_once ($ файла);
     }
 }

 function autoload_vos ($ class_name) {
     $ file = 'vos /'.  $ Class_name.  '.php';
     if (file_exists ($ file)) {
         require_once ($ файла);
     }
 }

 функция autoload_printers ($ class_name) {
     $ file = 'printers'.  $ Class_name.  '.php';
     if (file_exists ($ file)) {
         require_once ($ файла);
     }
 }

 spl_autoload_register ( 'autoload_services');
 spl_autoload_register ( 'autoload_vos');
 spl_autoload_register ( 'autoload_printers');

Благодаря http://codeigniter.com/forums/viewthread/73804/#366081 и некоторым фрагментам информации от некоторых людей CI, которые я следую на Twitter (я спросил их): Эрик Барнс , Дэн Хорриган , Фил Стерджон и Зак Кицмиллер , Я нашел решение. Если вы CodeIgniter n00b, как я, вам может понравиться следовать за этими парнями.

Я удалил init.php и config.php, затем застрял в нижней части моего config.php моего CI (я также автоматически загружаюсь из пользовательской библиотеки mylibrary).

function multi_auto_require($class) { if(stripos($class, 'CI') === FALSE && stripos($class, 'PEAR') === FALSE) { foreach (array('flourish', 'mylibrary') as $folder){ if (is_file(APPPATH."../auxengines/{$folder}/{$class}.php")){ include_once APPPATH."../auxengines/{$folder}/{$class}.php"; } } } } 

spl_autoload_register ( 'multi_auto_require');

Работает блестяще. Спасибо, люди!

Ahhh, теперь я вижу (посмотрев предыдущий вопрос, который вы задали) … У вас проблема, потому что есть две определенные функции __autoload (и, следовательно, приводят к ошибке синтаксического анализа) …

Чтобы исправить это, просто переименуйте одно из них в другое, а затем сразу после определения вызовите spl_autoload_register('yournewfunctionname');

Это должно быть все, что нужно, до тех пор, пока я понимаю вашу проблему …