Использование PHP SPL_AUTOLOAD_REGISTER () с codeicigniter
-
27-09-2019 - |
Вопрос
Пожалуйста, как я могу использовать spl_autoload_register () с codeigniter? Мне нужно сделать это, потому что я использую Codeigniter с помощью другой структуры, который также использует автозагрузку.
Я видел что-то здесь
но Я не знаю, как нацелиться на Autoload Codeigniter. Отказ Я новичок, чтобы Ооп и кодигнал. Большое спасибо!
Вышеуказанная ссылка имеет это:
Функция Autoload_Services ($ class_name) {$ file = 'Services /'. $ class_name. '.php'; Если (file_exists ($ file)) {free_once ($ file); }} Функция Autolove_VOS ($ class_name) {$ file = 'vos /'. $ class_name. '.php'; Если (file_exists ($ file)) {free_once ($ file); }} Функция Autoload_Printers ($ class_name) {$ file = 'Принтеры'. $ class_name. '.php'; Если (file_exists ($ file)) {free_once ($ file); }} spl_autoload_register ('autoload_services'); spl_autoload_register ('autoload_vos'); spl_autoload_register ('autoload_prinders');
Решение
Благодаря http://codeigniter.com/forums/viewthread/73804/#366081. И некоторые биты информации из каких-то Ci Folk, которые я следую в Twitter (я спросил их): Эрик Барнс, Дэн Ураган, Фил Осетри а также Zack kitzmiller, Я нашел решение. Если вы хотите, чтобы я понравился, вы можете следовать этим ребятам.
Я удалил init.php и config.php, затем заклинил следующее в нижней части моего config.php (я также автозагрузка из пользовательской библиотеки под названием 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 ');
Работает блестяще. Спасибо, люди!
Другие советы
Аааа, я вижу сейчас (после того, как посмотрел на предыдущий вопрос Вы спросили) ... у вас есть проблема, потому что есть 2 определены __autoload
Функции (и, следовательно, приводят к ошибке разбора) ...
Чтобы исправить это, просто переименуйте один из них на что-то еще, а затем сразу после определения вызов spl_autoload_register('yournewfunctionname');
...
Это должно быть всем, пока я понимаю вашу проблему ...