Zend Framework

Introdução ao Zend Framework

Por em

É muito simples instalar o ZF, você apenas precisa baixá-lo em framework.zend.com e copiar a pasta principal para um nível abaixo do seu htdocs.

Ex:

/var/www/zf (arquivos do zend framework)
/var/www/htdocs/ (arquivos que são visíveis e acessíveis a quem acessará sua aplicação)

O conceito principal é: Tudo que for chamado pelo index.php (aka bootstrap), descerá um nível e acessará sua aplicação via o ZF.

Outro ponto é: ZF é baseado no conceito MVC (models, views, controllers), então ele necessita de uma estrutura de pastas um pouco diferente do que quem não utiliza esse padrão. Veja abaixo um exemplo:

Estrutura ZF

Nesse post, vamos exemplificar qual é a funcão do index.php com um exemplo de configuração:

error_reporting(E_ALL|E_STRICT); // Exibe todos os errors
ini_set('display_errors', 1);

// configura a localização de onde está a pasta com os arquivos do ZF
set_include_path('.' . PATH_SEPARATOR . '../../zf/'
. PATH_SEPARATOR . '../application/default/models'
. PATH_SEPARATOR . get_include_path());

require_once "Zend/Loader.php";
Zend_Loader::registerAutoload();

// load configuration
$config = new Zend_Config_Ini('../application/config.ini', 'general');
$registry = Zend_Registry::getInstance();
$registry->set('config', $config);

//Setup auth Session
Zend_Session::start();

// setup database
$db = Zend_Db::factory($config->db);
Zend_Db_Table::setDefaultAdapter($db);

// setup controller
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->setControllerDirectory('../application/default/controllers');
$layout = Zend_Layout::startMvc(array('layoutPath'=>'../application/default/layouts'));

// run!
$frontController->dispatch();

Neste exemplo acima fizemos o seguintes passos:

  1. Como estamos supondo que estamos em um ambiente de desenvolvimento, configuramos o php para exibir todos os erros e eventos fora do padrão (notices).
  2. Configuramos o include_path, ou seja, sempre quando dermos uma include em Zend/ ele buscará os arquivos do ZF que está em uma pasta a dois níveis abaixo chamada “zf”
  3. Utilizamos uma API do zend para que le possa ler arquivos de configuração nesse caso é um arquivo “.ini” com os parâmetros para fazer a conexão em um banco de dados.
  4. Iniciamos uma sessão, para conseguirmos diferenciar os acessos, ou seja, cada usuário, quando acessa o site ganha uma sessão para ele e então podemos identificá-lo.
  5. Configuramos a conexão com o banco de dados a partir do objeto config que carregou os dados do arquivo config.ini
  6. Criamos um dos objetos principais do ZF FronController (faz o intermédio entre os models e as views). Essa configuração foi: Criar o objeto (getInstance()), mostrar os “erros” – No caso de um ambiente em produção o $frontController->throwExceptions(true); seria false e setamos em qual diretório o ele irá buscar os arquivos de controllers.
  7. Também utilizamos o suporte para layouts do ZF, ou seja, quando ele for carregar qualquer página, primeiramente ele busca uma página Mestre chamada layout.pthml na pasta determinada pela aplicacão.
  8. Dispach! ou seja, Rodar programa!!

Sei que de certa forma esse exemplo foi um pouco superficial para quem nunca tinha mexido com o ZF, mas aos poucos vamos postando e vocês entenderão a cada dia mais sobre esse framework. Fora que, com certeza, a SON (School of Net), futuramente, oferecerá cursos de ZF. Tudo na prática.

Qualquer dúvida, é só comentar.