Ir para conteúdo

POWERED BY:

Arquivado

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

Uélio Nobre

__autoload com niveis infinitos

Recommended Posts

Bom dia pessoal.

 

Ontem eu comecei um projeto proprio do zero, e com isso esbarrei em uma situação que muitos ja passaram.

Estou tentando faze-lo todo em POO (ou algumas partes). E com isso me deparei com um erro na função __autoload();

 

De acordo com um dos meus livros, eu poderia mudar o diretorio de includes do servidor usando a função get_include_file() para capturar o valor do diretorio padrão e altera-lo com set_include_file();

 

Mas, tive um certo problema em fazer isto com um meu PC Windows com o pacote de instalação VertrigoServ e dei uma incrementada na função __autoload();

 

Testei ele no meu servidor pessoal Windows e no Servidor Linux e funcionou beleza.

 

Dica: Novatos em PROGRAMAÇÃO(procedural e poo), aprendam mais sobre loops e arrays.

 

<?
/* 
AUTOR: Uélio Nobre - uelionobre[at]hotmail.com
CRIADA EM: 7/10/2009 10:31 ATUALIZADA EM:  8/10/2009 09:43
DESCRIÇÃO: AUTOCARREGANDO CLASSES COM NIVEIS INFINITOS
DICA: USE OS CRÉDITOS DO SCRIPT PARA FUTURAS PESQUISAS
*/

function __autoload($classe)
{
// armazena o caminho relativo do arquivo
$path = "";	

// armazena o nome da pasta onde esta as classes
$pasta = "biblioteca/classes/";

// sinal de orientação do script
$flag = false;

// definindo os niveis da pagina
$niveis = 0;

// limite dos niveis;
$niveis_limite = 999;


// faça
do{
	// se o arquivo da classe existir
	if(file_exists($path . $pasta . $classe . ".inc.php")){

		// inclua o arquivo classe
		require_once($path . $pasta . $classe . ".inc.php");

		// sinal seta verdadeiro
		$flag = true;

	// caso contrário
	} else {

		// sinal continha como falso
		$flag = false;
	}

	// verificando niveis
	// ser os niveis chegar até 9999
	if($niveis == $niveis_limite){
		die("Caminho inexistente!");
	}		

	// adiciona um caminho relativo
	$path .= "../";

	// contador de niveis
	$niveis++;
}

// enquanto o sinal for falso
while($flag == false);
}

// criando objeto;
$formulario = new LoginUsuarioFormulario;
?>

 

- Espero que seja útil, e quem quiser incrementar pode descer a madeira.

- Abraços a todos e quando eu fizer algo interessante como este script, compartilharei com você Brasil!

- Desculpa a emoção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido

 

PHP - Patrocínio: TreinaWeb http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Laboratório de scripts (PHP)

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.