Pregunta

Por favor, ¿cómo puedo usar spl_autoload_register () con CodeIgniter? Necesito hacer esto porque Im usando CodeIgniter con otro marco que también utiliza la carga automática.

vi algo aquí

PHP spl_autoload_register

y I no sabe cómo dirigirse a la CodeIgniter carga automática . Im nuevo en programación orientada a objetos y CodeIgniter. ¡Muchas gracias!

El enlace de arriba tiene esta:

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');
¿Fue útil?

Solución

Gracias a http://codeigniter.com/forums/viewthread/73804/#366081 y algunos bits de información de algunos popular IC que sigo en twitter (pedí em): Eric Barnes , Dan Horrigan , Phil esturión y Zack Kitzmiller , he encontrado una solución. Si usted es un n00b CodeIgniter como yo, usted puede tener gusto de seguir estos chicos.

He eliminado init.php y config.php, entonces atascado lo siguiente en la parte inferior de mi config.php de CI (También estoy de carga automática de una biblioteca personalizada llamada 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');

funciona muy bien. Gracias, gente!

Otros consejos

Ahhh, veo ahora (después de mirar una cuestión previa usted pidió) ... va a tener un problema porque hay 2 funciones __autoload definidos (y por lo tanto da lugar a un error de análisis) ...

Para solucionarlo, basta con cambiar el nombre de una de ellas a otra cosa, y luego a la derecha después de la llamada definición spl_autoload_register('yournewfunctionname'); ...

Eso debería ser todo lo que hay que hacer, siempre y cuando entiendo su problema ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top