Вопрос

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

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

Php spl_autoload_register.

но Я не знаю, как нацелиться на 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');...

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top