Jump to content
Sign in to follow this  
srnalim

Problema com Autoload simples

Recommended Posts

Boa tarde galera, preciso de uma ajudinha rápida, tenho buscado na net mas só acho coisas com frameworks, tenho esse autoload simples...

function __autoload($class){
    require_once($class.'.php');
}

try{
    
} catch (Exception $ex) {
    echo $ex->getMessage();
}

E tenho o seguinte caminho

src/php/bd

Dentro desta pasta bd tenho os arquivos e um namespace neles.

namespace src\php\bd;

class dbConn ...

Mas quando faço a chamada

require_once('src/php/autoload.php');

$pdo = new src\php\bd\dbConn();

recebo isso:

Warning: require_once(src\php\bd\dbConn.php): failed to open stream: No such file or directory in ../src/php/autoload.php on line 4

Localmente funciona normal somente quando upo pra hostgator que da isso...

Share this post


Link to post
Share on other sites

Como você diz que procurou e só encontra autoloads com frameworks, eu sugiro a utilização do autoload da PSR-4. Você pode instalar através do composer que é bem fácil.

 

composer.json:

{
    "autoload": {
        "psr-4": {
           /** aqui você defini os namespaces **/
        }
    }
}

Se você possuir alguma namespace em específico, pode adicionar ele dessa forma (como exemplo abaixo):

{
    "autoload": {
        "psr-4": {
            "Meu\\Namespace\\" : "caminho/para/Meu/Namespace"
        }
    }
}

Todos os namespaces definidos devem terminar com "\\". Caso você queria definir um "global", que pegue conforme o nome das pastas, deve definí-lo em branco, como mostrado abaixo:

{
    "autoload": {
        "psr-4": {
            "": "",
            "Meu\\Namespace\\" : "caminho/para/Meu/Namespace",
            "Application\\" : "Application"
        }
    }
}

Como mostrado no exemplo acima, você pode definir quantos paths/namespaces quiser.

 

Você só precisa utilizar o composer para instalar. E incluir apenas um arquivo no seu arquivo PHP:

require_once __DIR__.'/vendor/autoload.php';
Em 01/06/2015 at 14:24, srnalim disse:

Localmente funciona normal somente quando upo pra hostgator que da isso...

Filepath do windows é tratado diferentemente que do linux, isso deve ser levado em consideração na hora de criar uma classe de autoload.

Edited by Gabriel Heming
Adicionar mais exemplos

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.