LOGIN:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Zend Framework

Feed da seção Zend Framework

Newsletter de Zend Framework


Segunda-feira, 28/08/2006 - 12:23 - Por Júlio César Martini
Seções relacionadas:

Zend Framework - Uma visão geral

Fala pessoal! Essa semana aprenderemos um pouco sobre frameworks PHP, basicamente sobre o Zend Framework. Como todos devem saber, a ZEND é uma empresa fundada em 1999 por Andi Gutmans e Zeev Suraski e é a responsável pela manutenção e desenvolvimento de produtos e serviços para a linguagem PHP.

O Zend Framework foi lançado no dia 04 de março de 2006 e inclui diferentes componentes desenvolvidos em PHP5 para prover alta qualidade para desenvolvimento de aplicações web e web services.

Página oficial: http://framework.zend.com/

130_1.gif

Versão Atual: Zend Framework 0.1.5 (11 de julho de 2006)

Mas o que seria um framework?

É um conjunto de classes com objetivo de reutilização de um design, provendo um guia para uma solução de arquitetura em um domínio específico de software.

Qual a diferença entre biblioteca de classes e framework?

O framework se diferencia pois a biblioteca de classes se concentra em apenas oferecer implementação de funcionalidades, sem definir a reutilização de uma solução de arquitetura (design).

O Zend Framework segue o padrão MVC - Model View Controller ou Modelo-Visão-Controlador que é um padrão de arquitetura de aplicações que visa separar a lógica da aplicação (Model), da interface do Usuário (View) e do fluxo da aplicação (Controller). Permite que a mesma lógica de negócios possa ser acessada e visualizada por várias interfaces.

130_2.gif
Componentes do Zend Framework

Zend_Controller e Zend_View
Zend_Controller fornece os alicerces para a construção de websites baseados no MVC.
Zend_View separa o script de visualização dos controladores e modelos.

Zend_Config
Simplifica o uso de dados de configuração para aplicações web.

Zend_Db
Componente que provê acesso a banco de dados. Adicionalmente, ele ajuda a proteger suas consultas contra ataques de SQL Injection.

Zend_Fed
Componente que auxilia a geração de dados RSS e Atom para feeds.

Zend_Http_Cliente
Componente para o desenvolvimento de CLIENTES web services.

Zend_Filter_Input
Componente para filtragem e validação de campos de entrada.

Zend_Json
Componente que transforma estruturas PHP em JSON - JavaScript Object Notation (http://www.json.org/) para uso em aplicações com AJAX.

Zend_Log
Componente utilizado para geração de log de erros.

Zend_Mail e Zend_Mime
Componente para envio de email com suporte a anexos de todos os MIMES suportados.

Zend_PDF
Componente para criação e alteração de documentos PDF.

Zend_Search_Lucene
Para que não conhece o Lucene é uma software de busca e uma API de indexação de documentos escritos na linguagem Java e é mantido pela Apache Software Foundation (http://lucene.apache.org/java/docs/). O Zend_Search_Lucene é um componente do Lucene totalmente escrito em PHP 5.

Zend_XMLRpc
Componente para chamada remota de procedimentos. O SOAP é um padrão de RPC para WebServices.

Configuração do Zend Framework

01. Faça o dowload do Zend Framework no site: http://framework.zend.com
02. Descompacte-o numa pasta um nível abaixo do DocumentRoot do Apache.
03. Renomeie a pasta para zf.

Apache

A primeira coisa a fazer é configurar o Apache a trabalhar no mod_rewrite que terá a responsabilidade de redirecionar todas as requisições para um arquivo chamado index.php

http.conf - Apache (Windows)

Tirar o # (jogo da velha etc...) do início da linha:
LoadModule rewrite_module modules/mod_rewrite.so

Definir o nosso arquivo htaccess
AccessFileName .htaccess

Trocar as linhas abaixo:
#<Directory />
# Options Indexes FollowSymLinks
# AllowOverride None
#</Directory>

por:
<Directory />
Options FollowSymLinks Includes
AllowOverride All
</Directory>

Arquivo .htaccess
Crie um arquivo .htacess e salve no DocumentRoot do servidor Apache. No meu caso é c:/pagina.

RewriteEngine on
RewriteBase /
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php
php_flag magic_quotes_gpc off
php_value include_path "c:/zf/library"

Todas as requisições que não contiverem uma das extensões de arquivo listadas serão passadas para index.php

Restartar o Apache.

Estrutura da nossa aplicação de exemplo

c:/pagina (document_root do servidor apache)
.htaccess
index.php
c:/framework (aplicações que utilizam framework)
/exemplo01
/controllers
IndexController.php
/views
hello.php
/models
c:/zf/library (bliblioteca do zend framework)

Como você pode ver acima, a pasta que contém o nosso exemplo de framework, bem como a biblioteca do framework, encontra-se fora do DocumentRoot do Apache pois é uma recomendação da Zend devido a segurança.

Exemplo 01 - Hello World!

Vamos desenvolver o nosso primeiro exemplo utilizando o Zend Framework. Faremos o famoso Hello World!

Arquivo index.php

O arquivo index.php deverá ser salvo no DocumentRoot do Apache e será o responsável por inicializar o Zend_Controller_Front.

Nesse arquivo, teremos também o Zend_View para chamar a nossa aplicação.

<?
include 'Zend.php';

Zend::loadClass('Zend_Controller_Front');
Zend::loadClass('Zend_View');

$view = new Zend_View;
$view->addScriptPath('c:/framework/exemplo01/views');
Zend::register('view', $view);

$controller = Zend_Controller_Front::getInstance();
$controller->setControllerDirectory('c:/framework/exemplo01/controllers');
$controller->dispatch();
?>

Criando o indexController.php

Este arquivo deve ser criado na pasta controllers da sua aplicação.

<?php
class indexController extends Zend_Controller_Action {
public function indexAction()
{
$view = Zend::registry('view');
$view->title = 'iMasters - Júlio César Martini';
$view->body = 'Hello, World!';
echo $view->render('hello.php');
}
public function noRouteAction() {
$this->_redirect('/');
}
}
?>

Criando o hello.php

Este arquivo deve ser criado na pasta views da sua aplicação.

<html>
<head>
<title><?php echo $this->escape($this->title); ?></title>
</head>
<body>
<?php echo $this->escape($this->body); ?>
</body>
</html>

Resultado:

130_3.gif

No browser, você acessando via http://localhost ou http://127.0.0.1 deverá visualizar o Hello, World!

Você pode testar pelos seguintes endereços também:

http://127.0.0.1:85/index
http://127.0.0.1:85/index/index

E vocês me perguntam: Mas por que por esses endereços a página é acessada?

Pensem! Isso será assunto dos próximos artigos. Aguardem!

Para baixar todos os arquivos que usei para configuração do Zend Framework, clique aqui e faça o download do script.

Semana que vem tem mais. Espero que vocês tenham gostado!

Não deixe de nos enviar críticas ou sugestões para o próximo assunto, afinal a coluna é de vocês. Boa semana a todos!

Todos os artigos de Júlio César Martini

13 comentários publicados

  • 1. Como rodar outros aplicativos

    Terça-feira, 29/08/2006, por Fábio Martins

    Olá, parabéns pela matéria, desta forma podemos trabalhar de maneira padronizada e com qualidade, a única dúvida que eu tive, é se eu quizer rodar mais de uma aplicação no servidor apache como proceder, após a configuração não consegui rodar nenhuma aplicação minha...de qualquer forma estamos caminhando para melhor, abraço.

    Responder comentário
  • 2. Muito bom

    Terça-feira, 29/08/2006, por Maurício Vinicius

    Preciso começar a me abituar com frameworks, pois não aguento mais fazer a mesma coisa centenas de vezes. Ótima matéria, terá outras partes desta matéria? Parabéns. Vlw!

    Responder comentário
  • 3. Parabéns

    Terça-feira, 29/08/2006, por Renato Alexandre Costa Freitas

    A matéria é muito boa, já havia procurado muito algo sobre o assunto e principalmente sobre o frame da zend. agora com as configurações propostas meu apache não conseguiu abrir nada, no log do apache identifiquei que o erro estava sendo ocasionado pelo .htacess... o que será que está acontecendo de errado?
    []s

    Responder comentário
  • 4. Respondendo...

    Terça-feira, 29/08/2006, por Júlio César Martini

    Sobre o erro no Apache, você baixou o arquivo que deixei disponível no artigo? Ali tem o meu .htacess, talvez possa te ajudar no problema. Qualquer coisa coloca a mensagem de erro aqui pra tentarmos ajudar. Valeu!!!

    Responder comentário
  • 5. Legal...

    Quarta-feira, 30/08/2006, por Guilherme Rambo

    Pois eh, como o camarada acima disse, eh necessário se habituar à frameworks... Mas tenho duas duvidas: Como utilizar o framework num server q naum esteja no mew pc, numa hospedagem? e outra: TUdo isso soh pra escreve Hello Word na tela o.O?

    Responder comentário
  • 6. Mais uma novidade!!!

    Sexta-feira, 15/09/2006, por Alex Martins

    Júlio, parabéns pela matéria, acompanho a muito tempo seu trabalho, é de muita qualidade.
    Mas parece que algumas coisas vem mais pra complicar do que pra ajudar, agente se 'especializa' em uma determinada metodologia de trabalho mas logo vem outra!! Fica a pergunta, como vc programa em php, vc usa bibliotecas próprias, vc usa algum framework, gostaria de saber como vc se organiza no momento de programar, abraço.

    Responder comentário
  • 7. E o php 4 como fica? Outras fontes...

    Sexta-feira, 27/10/2006, por Tiago Post

    Olá! Realmente muito bom o artigo.
    Ao que me parece, todos estão falando das novidades adivindas do PHP 5, mas, e quem ainda tem que trabalhar com PHP 4, devido ao servidor? Estas novas ferramentas não estão disponíveis para nós, meros mortais?

    Todos falam em Design Patterns, mas não estou conseguindo achar informações para dominar realmente estas técnicas. Acredito que este tal framework seja algo relacionado a isto. Posso usar design patterns em PHP 4? Se sim, onde posso encotrar mais materiais relevantes sobre o assunto?

    Responder comentário
  • 8. comparações

    Sexta-feira, 03/11/2006, por richard ghizzoni

    muito bom! só faltou uma comparação com os diversos frameworks existentes, fica ai minha dica pra uma próxima coluna.

    Responder comentário
  • 9. ótimo

    Domingo, 05/11/2006, por Rafael Capucho

    Parabéns, ótima matéria Júlio

    Responder comentário
  • 10. include_path

    Quinta-feira, 14/12/2006, por Breno Oliveira

    Olá pessoal, bom quem ainda trabalha com o php 4 tem mesmo q usar outros framework's como cakephp.
    para quem ainda naum consegue utilizar pois está na net ... dá pra usar sim é só naum colocar dentro do public_html ou htdocs ..

    Responder comentário
  • 11. ZEND

    Segunda-feira, 07/07/2008, por Odenis Lima da Silva

    Boa tarde....
    fiz o teste aqui e deu erro

    Warning: include(Zend.php) [function.include]: failed to open stream: No such file or directory in C:\Paginas\index.php on line 2

    Warning: include() [function.include]: Failed opening 'Zend.php' for inclusion (include_path='c:/zf/library') in C:\Paginas\index.php on line 2

    Fatal error: Class 'Zend' not found in C:\Paginas\index.php on line 4

    <?
    include 'Zend.php';

    Zend::loadClass('Zend_Controller_Front');
    Zend::loadClass('Zend_View');

    $view = new Zend_View;
    $view->addScriptPath('c:/framework/exemplo01/views');
    Zend::register('view', $view);

    $controller = Zend_Controller_Front::getInstance();
    $controller->setControllerDirectory('c:/framework/exemplo01/controllers');
    $controller->dispatch();
    ?>

    alguem pode me ajudar

    Responder comentário
  • 12. Matéria muito boa...

    Quarta-feira, 22/10/2008, por José Ricardo Mendes Castro

    Muito esclarecedor a matéria. Sou programador PHP a 3 anos e sempre tive vontade de utilizar algum Framework para aumentar minha produtividade mas sempre foi um tabú pra mim esses Design Patterns.

    A minha dúvida é na questão da configuração no servidor web. Se meu site/sistema estiver hospedado na web e eu não estiver acesso as configurações do apache, como prosseguir?

    Responder comentário
  • 13. Mudando path

    Terça-feira, 10/02/2009, por Felipe Oliveira da Silva

    Amigo,
    eu preciso mudar o path de todos os includes no zend?
    Se eu não mudo ele dá erro...Fiz exatamente o que você pediu

    Responder comentário

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Júlio César Martini atualmente presta serviços de WebMaster/Programador para o UOL (http://www.uol.com.br), Graduado em Tecnólogo em Informática pela UNIFIAN - Faculdades Anhanguera e Pós-Graduado em Desenvolvimento de Software para Web pela UFSCAR. Foi o primeiro profissional a chegar à marca de 100 artigos publicados no iMasters e trabalha com PHP desde 2000. Site: http://www.juliocesarmartini.com


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.