Frage

Bitte wie kann ich spl_autoload_register () mit Codeigniter verwenden? Ich muss dies tun, weil Im Codeigniter mit einem anderen Rahmen verwendet, die ebenfalls automatisch geladen verwendet.

Ich sehe etwas hier

PHP spl_autoload_register

und Ich weiß nicht, wie das CodeIgniter Ziel automatisch geladen . Im neu zu OOP und Codeigniter. Vielen Dank!

Der obige Link hat diese:

function autoload_services($class_name){
    $file = 'services/' . $class_name. '.php';
    if (file_exists($file)){
        require_once($file);
    }
}

function autoload_vos($class_name){
    $file = 'vos/' . $class_name. '.php';
    if (file_exists($file)){
        require_once($file);
    }
}

function autoload_printers($class_name){
    $file = 'printers' . $class_name. '.php';
    if (file_exists($file)){
        require_once($file);
    }
}

spl_autoload_register('autoload_services');
spl_autoload_register('autoload_vos');
spl_autoload_register('autoload_printers');
War es hilfreich?

Lösung

Dank http://codeigniter.com/forums/viewthread/73804/#366081 und einige Bits von Informationen aus einigen CI folk, dass ich auf twitter folgen (ich fragte em): Eric Barnes , Dan Horrigan , Phil Sturgeon und Zack Kitzmiller , fand ich eine Lösung. Wenn Sie ein CodeIgniter n00b wie ich sind, können Sie gerne diesen Jungen folgen.

Ich löschte init.php und config.php, klemmt dann den folgenden in der Tiefe meines CI config.php (Ich bin auch aus einer benutzerdefinierten Bibliothek namens mylibrary selbstladende).

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');

Werke brillant. Danke, Leute!

Andere Tipps

Ahhh, ich sehe jetzt (nach einem Blick auf eine Vorfrage Sie gefragt) ... Sie ein Problem haben, weil es 2 definiert __autoload Funktionen (und in einem Parse-Fehler führen daher) ...

Um es zu beheben, einfach umbenennen einer von ihnen etwas anderes, und dann direkt nach der Definition Aufruf spl_autoload_register('yournewfunctionname'); ...

Das sollte alles, was es ihm sein, so lange, wie ich das Problem verstehen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top