Как я могу использовать 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');
…
Это должно быть все, что нужно, до тех пор, пока я понимаю вашу проблему …