Junho 30, 2008

Dados em funções/classes s/globais

Posted in Programming tagged , , , , , às 15:04:13 por João Pedro Pereira

O titulo pode não ser o mais explicativo do que na realidade o artigo trata mas foi o que se arranjou… Caso tenham sugestões de um melhor, estou aberto a sugestões. Passando ao artigo…

Enquanto andava a tentar arranjar a melhor forma de ir buscar as configurações de um portal, como por exemplo, nome, versão, dados para ligar à base de dados, etc para um sistema de gestão de conteúdos baseado em classes e funções utilizando php versão 5 e já a pensar em alguns aspectos da versão 6, decidi que não iria utilizar globais em caso algum, assim para fazer chegar ao interior de uma função ou classe necessitaria de outro método que não o global $string, ou através de define ou então através da passagem de argumentos como funcao($config, $data). E então surgiu-me a ideia de ir buscar os dados aos ficheiros através de uma classe. O que facilitou imenso o trabalho, e fica bem legivel e fácil de utilizar.

class config {

/**
* Get config informations
* @param string needed
*/
public function get($str)
{
require FILES_PATH . ‘conf/ficheiro.php’;
$needed = $$str;

return $needed;
}

}

Depois, para ir buscar um valor ao ficheiro é bastante simples o processo, como podemos ver no exemplo em baixo, o qual vai procurar o nome do template que vai ser utilizado.

function load_template ($tpl)
{
if($tpl == ‘normal’) require (FILES_PATH . ‘lib/tpl/’ . config::get(‘template’) . ‘/main.php’);
elseif($tpl == ‘admin’) require (FILES_PATH . ‘lib/tpl/’ . config::get(‘template’) . ‘/admin/main.php’);
}

Como vêm é muito fácil. Espero que tenha sido útil. Alguma correcção, ou sugestão…

Até à próxima.

Anúncios

1 Comentário »

  1. joaoqalves said,

    Interessante 😀 Já tenho feito algo parecido que até já tem mais umas funçõezitas (mas acho que PERDI essa classe :O) . Mas sim, está boa a ideia 😉


Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: