Problema a risalire le cartelle in hosting per l'autoload

di il
3 risposte

Problema a risalire le cartelle in hosting per l'autoload

Buongiorno.
Premetto che sono nuovo a php, ho passato l'estate su un libro ad imparare i fondamenti e con il framework che man mano ha preso vita mi sono preso la briga di provare ad utilizzarlo per mettere su un piccolo sito per una gara di ciclismo.
Io lavoro con Visual Studio (prima usavo asp.net) e il progettino in area di sviluppo funziona che è un bijou, ma una volta caricati i file su aruba mi viene fuori un errore:
Warning: include(/web/htdocs/nomesitoweb/home/includes/../classes/Butty/EntryPoint.php): failed to open stream: No such file or directory in /web/htdocs/nomesitoweb/home/includes/AutoLoad.php on line 6.

il codice dell'autoload è:

function autoloader($className){
    $fileName = str_replace('\\','/',$className) . '.php';
    $file = __DIR__ . '/../classes/' . $fileName;
    include $file;
}

spl_autoload_register('autoloader');
Se qualcuno mi riesce a dare un suggerimento.
Grazie

3 Risposte

  • Re: Problema a risalire le cartelle in hosting per l'autoload

    Ciao ho tolto il nome del sito dal warning e sostituito con "nomesitoweb".
  • Re: Problema a risalire le cartelle in hosting per l'autoload

    Prova usando i backslash se usi Windows oppure non creare $file ma usa direttamente la concatenazione senza variabile nel tuo include mentre $fileName sarà il valore per creare una costante e in include concateni la costante.
    function autoloader($className){
        if(!defined('absolute_path_class')) {
        define('absolute_path_class', str_replace('\\','/',$className) . '.php');
        }
        include __DIR__ . '/../classes/' . absolute_path_class;
    }
    
    spl_autoload_register('autoloader');
  • Re: Problema a risalire le cartelle in hosting per l'autoload

    Grazie per il suggerimento.
    Tuttavia il problema rimane in quanto l'errore che viene fuori è sempre la stringa che contiene /../classes etc...
    Sembra che non interpreti /../.
    Ho spostato le cartelle delle classi come sottocartelle di includes ed evito di usare /../
Devi accedere o registrarti per scrivere nel forum
3 risposte