Spl_autoload_register's diverso comportamento B / N online e localhost
-
21-12-2019 - |
Domanda
Ho la seguente struttura di directory, ho messo tutte le mie classi all'interno di classes/
come mostrato di seguito, e ho un header.php
che richiama tutti i file e ha altre impostazioni importanti che tutti i file condividono.
Ora, se utilizzo spl_autoload_register()
in questo modo:
spl_autoload_register(function($class){
include 'classes/'. $class .'.class.php';
});
.
Inside inc/header.php
File e chiamare questo header.php
dal mio file index
, quindi funziona bene sul mio localhost, ma quando caricando tutto lo script AS-è in un host live, quindi ottengo errori come.
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
è il spl_autoload_register()
Non capisco, come potrebbe accadere, e sperando che qualcuno abbia alcuna idea.
Grazie
Soluzione
Per mostrare cosa intendo con i miei commenti, aggiungi questo codice nel file index.php e rimuovi il caricatore automatico dai tuoi altri file:
spl_autoload_register(function($class){
$classesPath = dirname(__FILE__) . '/classes/';
if (is_file($classFile = $classesPath . $class.'.class.php')) {
include $classFile;
}
});
.
per inc / header.php:
spl_autoload_register(function($class){
$classesPath = dirname(__FILE__) . '/../classes/';
if (is_file($classFile = $classesPath . $class.'.class.php')) {
include $classFile;
}
});
.