Essa classe disponível no Zend Framework permite que sejam criados arquivos de configuração simples e eficazes para a nossa aplicação. Nesse artigo apresentarei 04 exemplos de utilização:
- Arrays
- Arquivo INI
- Arquivo XML
- Arquivo PHP
Poderemos notar que não há muita diferença de um script para o outro, já que alteraremos apenas algumas linhas do código.
Versão do framework utilizada: 1.5
Download: http://framework.zend.com/
IDE utilizada: Zend Studio for Eclipse
PROJETO 01: DADOS DA CONFIGURAÇÃO ARMAZENADOS EM ARRAYS.
1. No Zend Studio, clique em FILE / NEW / ZEND FRAMEWORK PROJECT. Ele criará um novo projeto seguindo a estrutura sugerida na documentação do Zend Framework.
Novo Projeto Zend Studio
2. Confira abaixo, a estrutura gerada:
Estrutura ZF
3. Editar o arquivo index.php que está dentro da pasta HTML. Nesse arquivo estão os componentes que serão utilizados. Ele é responsável por invocar os controladores e inicializar a aplicação.
require_once 'Zend/Config.php';
require_once 'Zend/Registry.php';
/**
* Configuração por array
*/
configArray = array( 'titulo' => 'Testando Zend_Config() com Arrays'
, 'autor' => 'Júlio César Martini'
, 'site' => 'iMasters');
config = new Zend_Config(configArray);
registry = new Zend_Registry();
registry->set('config', config);
Screenshot:
Index.php
Linha 11: Incluímos em nossa aplicação o Zend Config.
Linha 12: Incluímos em nossa aplicação o Zend Registry.
Linha 17: Criamos um array com os dados da configuração do nosso sistema.
Linha 21: Instanciamos Zend_Config() passando como parâmetro o nosso array.
Terminado essa etapa, poderíamos simplesmente na linha abaixo dar um echo config->titulo que funcionaria perfeitamente, mas como quero que essa variável esteja disponível para todas as camadas do meu projeto, vou utilizar o Zend_Registry().
Linha 23: Instancio Zend_Registry();
Linha 24: Armazena o valor de config.
4. Editar o arquivo IndexController.php que está dentro da pasta: application / default / controllers. Na função indexAction() resgataremos o valor que está no Registry e mandaremos o resultado para a VIEW que será responsável pela visualização.
class IndexController extends Zend_Controller_Action
{
/**
* The default action - show the home page
*/
public function indexAction()
{
// TODO Auto-generated IndexController::indexAction() action
params = Zend_Registry::get('config');
this->view->assign('titulo', params->titulo);
this->view->assign('autor', params->autor);
this->view->assign('site', params->site);
}
}
Screenshot:
IndexController
Linha 20: Utilizando o método GET do Registry recuperamos CONFIG.
Linha 21: Atribuímos o valor titulo de config a variável titulo que está disponível na view index.phtml.
5. Editar o arquivo index.phtml que está dentro da pasta: application / default / views / scripts / index para exibir os dados enviados pelo IndexController.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title><?php echo this->titulo; ?></title>
</head>
<body>
<h1> <?php echo this->titulo; ?> </h1>
<p> Autor: <?php echo this->autor; ?> </p>
<p> Site: <?php echo this->site; ?> </p>
</body>
</html>
Screenshot:
index.phtml
Linha 20: Exibimos o valor de titulo que vem setado pelo IndexController().
Resultado:
Resultado utilizando configuração com arrays.
PROJETO 02: DADOS DA CONFIGURAÇÃO ARMAZENADOS EM ARQUIVOS INI
1. Seguir os passos 1, 2 e 3 do projeto 01.
2. Criar o arquivo CONFIG.INI na pasta html.
config.ini
3. No passo 03 alteraremos algumas linhas no index.php para trabalhar com a configuração por arquivo INI.
require_once 'Zend/Config/Ini.php';
require_once 'Zend/Registry.php';
/**
* Configuração por arquivo INI
*/
config = new Zend_Config_Ini('config.ini', 'producao');
registry = new Zend_Registry();
registry->set('config', config);
Screenshot:
index.php
Linha 11: Incluímos em nossa aplicação o Zend Config Ini.
Linha 12: Incluímos em nossa aplicação o Zend Registry (ver explicação no projeto 01).
Linha 21: Instanciamos Zend_Config_Ini() passando como parâmetro o path do arquivo INI a ser lido e a área desejada.
4. Seguir os passos 04 e 05 do projeto 01.
Resultado:
Resultado utilizando configuração com arquivo INI.
PROJETO 03: DADOS DA CONFIGURAÇÃO ARMAZENADOS EM ARQUIVOS XML
1. Seguir os passos 1, 2 e 3 do projeto 01.
2. Criar o arquivo CONFIG.XML na pasta html.
config.xml
3. No passo 03 alteraremos algumas linhas no index.php para trabalhar com a configuração por arquivo XML.
require_once 'Zend/Config/Xml.php';
require_once 'Zend/Registry.php';
/**
* Configuração por arquivo XML
*/
config = new Zend_Config_Xml('config.xml', 'teste');
registry = new Zend_Registry();
registry->set('config', config);
Screenshot:
index.php
Linha 11: Incluímos em nossa aplicação o Zend Config XML.
Linha 12: Incluímos em nossa aplicação o Zend Registry (ver explicação no projeto 01).
Linha 21: Instanciamos Zend_Config_Xml() passando como parâmetro o path do arquivo XML a ser lido e a área desejada.
4. Seguir os passos 04 e 05 do projeto 01. O legal do arquivo INI e do XML é que posso, por exemplo, definir a área a ser lida. No nosso exemplo, criei parâmetros para uma área de TESTE e PRODUÇÃO.
Resultado:
Resultado utilizando configuração com arquivo XML
PROJETO 04: DADOS DA CONFIGURAÇÃO ARMAZENADOS EM ARQUIVO PHP
1. Seguir os passos 1, 2 e 3 do projeto 01.
2. Criar o arquivo CONFIG.PHP na pasta html.
config.php
3. No passo 03 alteraremos algumas linhas no index.php para trabalhar com a configuração por arquivo PHP.
require_once 'Zend/Config.php';
require_once 'Zend/Registry.php';
/**
* Configuração por arquivo PHP
*/
config = new Zend_Config( require 'config.php' );
registry = new Zend_Registry();
registry->set('config', config);
Screenshot:
index.php
Linha 11: Incluímos em nossa aplicação o Zend Config.
Linha 12: Incluímos em nossa aplicação o Zend Registry (ver explicação no projeto 01).
Linha 21: Instanciamos Zend_Config() passando como parâmetro o path do arquivo PHP a ser lido.
4. Seguir os passos 04 e 05 do projeto 01.
Resultado:
Resultado utilizando configuração com arquivo PHP
Conclusão:
Como podemos observar nesse artigo, existem N maneiras de se armazenar dados de configuração da nossa aplicação utilizando o Zend Framework. Atualmente muitos programadores utilizam arquivos INI/XML para guardar usuário e senha de banco de dados o que pode gerar um grave problema de segurança. Talvez ler os dados direto de um arquivo PHP nos daria uma segurança maior. O que acham? Opinem, deixem suas sugestões, afinal a coluna é de vocês.
Download dos scripts: Clique AQUI.