Este é um post disponível para assinantes MVPVocê também pode acessá-lo através de Créditos DevMedia. Clique aqui para saber mais!
Video: AutoLoad PHP - Curso Programação Orientada a Objetos com PHP – Parte 15
Nessa videoaula será mostrado como funciona o auto load do PHP. Ao longo do curso foi possível observar o quanto é complicado trabalhar com “N” includes cada vez que uma classe precisa ser instanciada, utilizando o auto load
Tempo: 15:14 min
Mini Resumo: Nessa videoaula será mostrado como funciona o auto load do PHP. Ao longo do curso foi possível observar o quanto é complicado trabalhar com “N” includes cada vez que uma classe precisa ser instanciada, utilizando o auto load, será possível realizar essa operação de uma maneira muito simples.
Tecnologias e Recursos: PHP 5, NetBeans, PHP, PHP5, IDE, NetBeans, OO, OOP, auto load
Rafael Silva
Especialista há diversos anos em tecnologias de desenvolvimento como .net, PHP, Android, Delphi, MySQL, Java e front-end. Ministrou aulas e produziu diversos artigos, vídeos e cursos online sobre estas tecnologias.
O que você achou deste post?
8 COMENTÁRIOS
Jeremias Queiroz Dos Santos
Estou com um projeto onde tentei fazer utilização deste recurso do Autoload, fiz implementação da mesma forma que você apresenta, sendo que estou usando da seguinte forma:
<?php
function __autoload($classes){
echo $classes.'';
$pastas = array('br.com.config',
'br.com.dao',
'br.com.facade',
'br.com.model',
'br.com.util'
);
$path = get_include_path();
foreach ($pastas as $pasta) {
$arquivo = $path.'\\'.$pasta.'\\'.$classes.'.class.php';
if(file_exists($arquivo)){
require_once($arquivo);
}
}
}
?>
Tenho um sistema como pacotes, porém sempre ele apresenta que a classe não foi encontrada, consegue visualizar algum problema, ou tem alguma sugestão do que possa ser?
desde já agradeço.
<?php
function __autoload($classes){
echo $classes.'';
$pastas = array('br.com.config',
'br.com.dao',
'br.com.facade',
'br.com.model',
'br.com.util'
);
$path = get_include_path();
foreach ($pastas as $pasta) {
$arquivo = $path.'\\'.$pasta.'\\'.$classes.'.class.php';
if(file_exists($arquivo)){
require_once($arquivo);
}
}
}
?>
Tenho um sistema como pacotes, porém sempre ele apresenta que a classe não foi encontrada, consegue visualizar algum problema, ou tem alguma sugestão do que possa ser?
desde já agradeço.
[há +1 mês] -
Responder
Wesley Yamazack
Olá Jeremias, obrigado pelo seu comentário.
Eu fiz este curso do inicio ao fim, seguindo todos os passos do Rafael Silva, não encontrei problemas nesta videoaula, mas como você falou que o projeto é outro vamos esperar para que o Rafael possa te ajudar.
Um abraço
Eu fiz este curso do inicio ao fim, seguindo todos os passos do Rafael Silva, não encontrei problemas nesta videoaula, mas como você falou que o projeto é outro vamos esperar para que o Rafael possa te ajudar.
Um abraço
[há +1 mês] -
Responder
[autor]
Rafael Silva
Opa Jeremias,
Faz o seguinte,
Retira a linha que verifica se o arquivo existe e, ao invés de colocar um require, coloca um echo e veja o retorno.
Abs !!!
Faz o seguinte,
Retira a linha que verifica se o arquivo existe e, ao invés de colocar um require, coloca um echo e veja o retorno.
Abs !!!
[há +1 mês] -
Responder
Jeremias Queiroz Dos Santos
Fiz como solicitou e tive o seguinte erro:
<code>Fatal error: Class 'MenuFacade' not found in ...cadMenu.php on line 34</code>
A instancia da classe que esta sendo feita ele não pega, este autoload esta em um arquivo separado chamado Load, mas para teste eu coloquei a função dentro do próprio cadMenu.php é apresenta o erro que existe duas declarações de autoload, para remover uma das, logo entendo que esta vendo o mesmo, porém nem o echo é exibido, apagando o autoload do outro arquivo e deixando somente o do próprio cadMenu.php para teste ele apresenta o mesmo erro.
Já não sei mais o que fazer para isto funcionar, estou usando no projeto já as declarações como a abaixo,é funciona normal:
include_once 'br.com.model/MenuFacade.class.php';
OBS: Tenho outros projetos aqui que o AutoLoad funciona normal, já não sei mais o que fazer. Se puder ajudar agradeço muito...Tenho fiz o curso que você apresentou sobre Boas Práticas é ele funciona, porém neste projeto apresenta este erro e não da certo.
Desde já agradeço a atenção.
<code>Fatal error: Class 'MenuFacade' not found in ...cadMenu.php on line 34</code>
A instancia da classe que esta sendo feita ele não pega, este autoload esta em um arquivo separado chamado Load, mas para teste eu coloquei a função dentro do próprio cadMenu.php é apresenta o erro que existe duas declarações de autoload, para remover uma das, logo entendo que esta vendo o mesmo, porém nem o echo é exibido, apagando o autoload do outro arquivo e deixando somente o do próprio cadMenu.php para teste ele apresenta o mesmo erro.
Já não sei mais o que fazer para isto funcionar, estou usando no projeto já as declarações como a abaixo,é funciona normal:
include_once 'br.com.model/MenuFacade.class.php';
OBS: Tenho outros projetos aqui que o AutoLoad funciona normal, já não sei mais o que fazer. Se puder ajudar agradeço muito...Tenho fiz o curso que você apresentou sobre Boas Práticas é ele funciona, porém neste projeto apresenta este erro e não da certo.
Desde já agradeço a atenção.
[há +1 mês] -
Responder
Jeremias Queiroz Dos Santos
Como citei no novo post, não estou questionando a aula não...somente estou buscando alguma ajuda dele que já tem uma vivencia maior com PHP, pois utilizo mais Java que PHP, logo estou neste projeto e com este problema que como informei em outros projetos aqui funciona, porém neste apresenta este problema que não consigo resolver.
[há +1 mês] -
Responder
Wesley Yamazack
Olá Jeremias, entendi sua ideia, legal. O Rafael te ajuda sem dúvidas!
Mas se você quiser algo mais "rápido" o que acha de usar o Fórum da DevMedia? Lá temos uma equipe muito forte que pode te ajudar sem dúvidas, você pode acessar neste link aqui: http://www.devmedia.com.br/forum/php , o que acha?
Um abraço
Mas se você quiser algo mais "rápido" o que acha de usar o Fórum da DevMedia? Lá temos uma equipe muito forte que pode te ajudar sem dúvidas, você pode acessar neste link aqui: http://www.devmedia.com.br/forum/php , o que acha?
Um abraço
[há +1 mês] -
Responder
Jeremias Queiroz Dos Santos
Fiz como sugerido, abri o tópico:
http://www.devmedia.com.br/forum/problema-com-autoload/418889
Caso possam ajudar, se possível por favor posta lá a resposta, pois servirá de ajuda aos demais usuário.
Obrigado pela atenção.
http://www.devmedia.com.br/forum/problema-com-autoload/418889
Caso possam ajudar, se possível por favor posta lá a resposta, pois servirá de ajuda aos demais usuário.
Obrigado pela atenção.
[há +1 mês] -
Responder
Wesley Yamazack
Opa Jeremias, legal o post. Vamos divulgar a resposta pros outros, assim que sair a solução.
Um abraço
Um abraço
[há +1 mês] -
Responder
Cursos relacionados
Publicidade

download

