Comportamiento diferente de spl_autoload_register b/n en línea y localhost
-
21-12-2019 - |
Pregunta
Tengo la siguiente estructura de directorios, puse todas mis clases dentro classes/
como se muestra a continuación, y tengo un header.php
que llama a todos los archivos y tiene otras configuraciones importantes que todos los archivos comparten.
Ahora, si uso spl_autoload_register()
Por aquí:
spl_autoload_register(function($class){
include 'classes/'. $class .'.class.php';
});
adentro inc/header.php
archiva y llama a esto header.php
de mi index
entonces funciona bien en mi host local, pero cuando subo todo el script tal cual a un host en vivo, aparece errores como.
Warning: include(classes/filehandler.class.php) [function.include]: failed to open stream: No such file or directory in /home/.../public_html/....com/inc/header.php on line 9
Line 9
es el spl_autoload_register()
No entiendo cómo pudo suceder esto y espero que alguien tenga alguna idea.
gracias
Solución
Para mostrar lo que quiero decir con mis comentarios, agregue este código en su archivo index.php y retire el autocargador de sus otros archivos:
spl_autoload_register(function($class){
$classesPath = dirname(__FILE__) . '/classes/';
if (is_file($classFile = $classesPath . $class.'.class.php')) {
include $classFile;
}
});
for inc / encabezado.php:
spl_autoload_register(function($class){
$classesPath = dirname(__FILE__) . '/../classes/';
if (is_file($classFile = $classesPath . $class.'.class.php')) {
include $classFile;
}
});