Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Ferreira da Silva

problema com __autoload

Recommended Posts

Não sei oque está acontecendo, pois parece que o autoload não funcionar por causa dos includes!

Alguém pode me ajudar?

index.php

<?php
include_once"autoload.php";
?>

autoload.php

<?php
function __autoload($classe){
require_once"classes/".$classe.".php";
}
?>

index2.php

<?php
include_once"index.php";
$_moeda = new moeda;
?>

no index2.php, aparece esse erro

Fatal error: Class 'moeda' not found in /home/agenc403/public_html/beta/adm/base.php on line 3

 

fiz alguns teste pra verificar se a classe moeda passa pelo auto load dessa forma:

<?php
function __autoload($classe){
​require_once"classes/".$classe.".php";
echo $classe."<br>";
}
$_data = new data;
$_tempo = new tempo;
?>

Nesse teste que eu fiz ele imprimi todas as classes que estão dentro do próprio arquivo autoload.php, mas qualquer class que eu por no index2.php, não é impresso pelo echo, pois acho que é por causa do include, alguém pode me ajudar a resolver esse problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o include do autoload pelo path absoluto, da forma como está, pode não encontra-lo

 

Exemplo:

include_once $_SERVER['DOCUMENT_ROOT']. "/includes/autoload.php";

Eu constumo usar (__DIR__)

require dirname(__DIR__).'/vendor/composer/autoload_classmap.php'

E também dentro do autoload

 

Só um detalhe esta função acima esta obsoleta, pesquise por spl_autoload_register

Compartilhar este post


Link para o post
Compartilhar em outros sites

sugiro que use o autoload disponível no composer, é muito eficiente

https://getcomposer.org/doc/01-basic-usage.md#autoloading

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o include do autoload pelo path absoluto, da forma como está, pode não encontra-lo

 

Exemplo:

include_once $_SERVER['DOCUMENT_ROOT']. "/includes/autoload.php";

Eu constumo usar (__DIR__)

require dirname(__DIR__).'/vendor/composer/autoload_classmap.php'

E também dentro do autoload

 

Só um detalhe esta função acima esta obsoleta, pesquise por spl_autoload_register

 

 

Pow cara, obrigado, consegui !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.