Pergunta

enter image description here

Eu tenho a seguinte estrutura de diretórios, coloquei todas as minhas classes dentro classes/ como mostrado abaixo, e eu tenho um header.php que chama todos os arquivos e possui outras configurações importantes que todos os arquivos compartilham.

Agora, se eu usar spl_autoload_register() Por aqui:

spl_autoload_register(function($class){
        include 'classes/'. $class .'.class.php';
    });

dentro inc/header.php arquivo e chame isso header.php do meu index arquivo, ele funciona bem no meu host local, mas quando carrego todo o script como está para um host ativo, recebo erros 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 é o spl_autoload_register()

Não entendo como isso pode acontecer e espero que alguém tenha alguma ideia.

obrigado

Foi útil?

Solução

Para mostrar o que quero dizer com meus comentários, adicione este código em seu arquivo index.php e remova o autoloader de seus outros arquivos:

spl_autoload_register(function($class){
    $classesPath = dirname(__FILE__) . '/classes/';
    if (is_file($classFile = $classesPath . $class.'.class.php')) {
        include $classFile;
    }
});

Para inc/header.php:

spl_autoload_register(function($class){
    $classesPath = dirname(__FILE__) . '/../classes/';
    if (is_file($classFile = $classesPath . $class.'.class.php')) {
        include $classFile;
    }
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top