Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom, pensei em desenvolver um mini-framework com a seguinte intenção: evitar "trocentos" includes no início de nossas páginas. Imagine o seguinte cenário:
<?phpinclude('config.php');include('class.db.php');include('login.php');include('extra.php');......?>Em certas páginas, a lista chega a ser grande e exagerada. Então, a intenção é diminuir esta linha para duas no máximo.
Vamos ao exemplo
<?phprequire_once('config-include.php');loadFiles('classes/','class.pg1,class.pg2');?>E no arquivo **config-include.php** teremos a seguinte função:
<?php/*** Função para incluir todos os arquivos necessários em um dado momento* @param string $dir caminho do diretório onde os arquivos estão localizados* @param string $files nome dos arquivos sem a extensão .PHP*/function loadFiles($dir,$files) { // Divide a string em várias strings, onde cada uma delas é o nome de arquivo $files = explode(',',$files); // Faz um loop entre os arquivos foreach($files as $fileInclude) { // Faz a inclusão dos arquivos desejados include($dir . $fileInclude . '.php'); } // Fim do foreach } // Fim da função loadFiles?>A função já está auto-explicativa.
Bom, gostaria de compartilhar isto com todos e ao mesmo tempo perguntar a vocês o que acham disso?
Nota: Acabei de criar a função e sei que há muito o que incrementar nela ainda, como: utilizar file_exists - para evitar de especificar o nome errado de diretório/arquivo, deixá-la mais inteligente afim de saber quando o cara digitou ou não a extensão .php para os arquivos, entre outras...
Valeu Fabyo pela sugestão, mas vamos lá.# eu utilizo um script chamado init.phpVocê poderia postá-lo?# é como se fosse um autoexec.bat lembra?Desculpe, mas não.# você corre o risco de incluir algum script que nao precisaos arquivos passados no parâmetro $file deverá ser somente os arquivos necessário para inclusão.# se você validar por exemplo que existe e se ele nao existir o seu sistema paraA intenção é esta, parar o sistema, se você especificou tal arquivo é por que ele é necessário, e sendo assim, você precisa dele.# o arquivo só é incluido no escopo quando a classe for estanciadaNeste caso, você está considerado o uso somente de classes, mas a intenção é que ele seja genérico.
entao sobre o autoexec.bat era na epoca de windows 95 e 98
quando precisavamos todo dia fazer a mesma rotina, limpar pasta temporaria, apagar arquivos do scandisck , incluir alguma função no path do windows, etc...
dai criavamos o autoexec.bat que quando o windows iniciava ele ja fazia todo o processo para nos.
o init.php é algo parecido onde faço as principais validações
* versao do php que eu quero que rode o sistema
* para desenvolvimento eu deixo o display_erros = on e error_report mostrar tudo
* Se o register_globals tiver em on no servidor eu uso uma função para matar o efeito causado por ele
* crio constantes necessarias para uso no sistema exemplo path da pasta root
* verifico se os arquivos principais existem
e por ai vai
esse seu exemplo nao fica muito funcional se você tem muitos arquivos e em pastas diferentes
Maravilha,# esse seu exemplo nao fica muito funcional se você tem muitos arquivos e em pastas diferentessim realmente. Neste exemplo precisaria chamar a função cada vez que o diretório for diferente.Valeu pelas explications.Um abraço.
eu faço algo parecido, mas eu utilizo um script chamado init.php onde eu faço toda validação necessaria e inclusao de arquivos e testes, é como se fosse um autoexec.bat lembra?
só que do jeito que você fez você corre o risco de incluir algum script que nao precisa ou se você validar por exemplo que existe e se ele nao existir o seu sistema para, mas na verdade seu sistema nem precisava dele dai.
o legal é você usar algo semelhante ao Autoloading Objects
http://br2.php.net/manual/pt_BR/language.oop5.autoload.php
o arquivo só é incluido no escopo quando a classe for estanciada