Domanda

Inserire l

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

È stato utile?

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;
    }
});
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top