segunda-feira, 1 de dezembro de 2008

Zend - Início

Olá pessoal, esse é o blog que a partir de hoje pretendo começar a postar dicas, tutoriais, novidades, etc.

Não terei uma periodicidade para postar, vou colocando aqui conteúdo conforme for aparecendo assuntos!

Programo em PHP/MySQL há 6 anos, tenho experiência com Delphi 7, SQL Server 2000, Java..


Hoje, venho dizer um pouco sobre o framework que estou, vamos dizer, “vidrado”, o framework da Zend (empresa que hoje mantém as versões do PHP), é um fw [framework] muito bem escrito, cheio de recursos, desde manipulação com banco de dados até criação de rss e web services!


Não sou nenhum profissional ainda na ferramenta, porém já estou desenvolvendo um sistema grande com ele.

Vamos ao que interessa: Como começar!


Para começar temos alguns requisitos minimos:


- PHP 5; [download aqui] [atualmente na versão 5.2.6]

- Apache com mod_rewrite habilitado ou qualquer outro que tenha reescrita de url; [vou postar um tutorial de como habilitar]

- O Zend; [download aqui] [atualmente na versao 1.6.1, recomento a versão full]

- Conhecimento básico da linguagem [PHP];


- Desejável algum conhecimento com orientação a objetos;

- Vontade de aprender.


Depois disso vamos partir para a configuração do Zend, estrutura de pastas, bootstrap, etc…


Primeiramente baixe o Zend e descompacte-o em qualquer lugar do seu micro, nela estará contido varios diretórios, demos, tests, library.. para nós apenas interessa a pasta library, copie essa pasta para a raiz do seu servidor, no meu caso “public_html/”, alguns servidores “www/”, “htdocs”, tem algumas variações..


Nossa estrutura de arquivos deve ficar assim:


Estrutura de pastas

Estrutura de pastas


Vou explicar, a pasta application é subdividida em 3 pastas, sendo elas Controllers, Views e Models, perceberam? MVC, cada um trabalha com uma parte da aplicação:


M - Models: Onde você criará as classes para manipular o banco de dados;

V - Views: Aqui é onde ficará a parte visual, os templates das páginas (vocês entenderão com o próximos tutoriais);

C - Controllers: Aqui fica toda a manipulação dos dados, vindos ou não do usuário, validações, etc. É onde você cria a lógica e tal.


O ZF (Zend Frameworks) trabalha com url limpas (www.site.com/artigos/php/id/2), e tudo passa pelo arquivo index.php [nosso bootstrap], o conteúdo dele é extenso, então é só clicar aqui e pegar o conteúdo, o arquivo está totalmente comentado, qualquer dúvida futura só postar..


Porém, para usarmos (desfrutarmos) das url limpas temos que ter alguns arquivos .htaccess e certas pastas, vou postar o local onde devem ficar e o conteúdo de cada uma delas, esses arquivos serão responsaveis tanto para a utilização das url limpas quanto para segurança de algumas pastas…


Local: /zf-basico1/.htaccess [raiz ok?]

Conteúdo:



RewriteEngine on

RewriteRule .* index.php

php_flag magic_quotes_gpc off

php_flag register_globals off

Explicação: Primeiro nos certificamos que está habilitado a reescrita de url, logo após dizemos que tudo deverá passar pelo index.php “para saber oque fazer”, e nas duas últimas linhas nos certificamos que magic_quotes e register_global estão desabilitadoa, se não estiverem disabilita-os.


Local: /zf-basico1/public/.access

Conteúdo:


RewriteEngine off

Explicação: Desabilitamos a reescrita de url para essa pasta.



Local: /zf-basico1/application/.access

Conteúdo:


deny from all

Explicação: Aqui nós bloqueamos qualquer tentativa de acesso às pastas onde ficará nossa aplicação e arquivos de configuração e acesso ao banco de dados e etc.. não queremos ninguém bisbilhotando não é?


Porém depois de tudo isso se você for acessar a index do sistema dará uma exception enooorme aí, correto?


Fatal error: Uncaught exception ‘Zend_Controller_Dispatcher_Exception’ with message ‘Invalid controller specified (index)’…..

Ela quer dizer oquê? Fiz alguma coisa errada?

Não, isso quer dizer apenas que a aplicação nao possui um Controlador para o index.


Mas como eu crio esse negócio de controlador?


Bem, vamos criá-lo agora. Crie um arquivo chamado IndexController dentro da pasta “./application/controllers/” com o seguinte conteúdo:


<?php

class IndexController extends Zend_Controller_Action

{

public function indexAction()

{

$this->view->boasvindas = “Bem-vindo ao Zend!”;

}


}

?>

Tentem acessar a index novamente, dará outra exception enoorme mais ou menos assim:


Fatal error: Uncaught exception ‘Zend_View_Exception’ with message ’script ‘index/index.phtml’…

Essa quer dizer que a aplicação não conseguiu encontrar um arquivo de template para a index, lembra que eu disse sobre o MVC, tudo separado, independente e tal? Então, para cada action você terá um template (arquivos .phtml) que exibirá os dados que você manipular nos controllers.. Complicado no começo mas com o passar dos tutoriais você entenderá!

Ok, para criar um index.phtml você o deve criar dentro da pasta “./application/views/scripts” uma pasta chamada.. Adivinha… chamada index!

index.phtml


<?php

echo $this->boasvindas;


Acessando o index você receberá uma mensagem: “Bem-vindo ao Zend!”


Galera, estou exausto, escrevi pra caramba! Qualquer dúvida comentem que eu farei o possível para responder!


P.S.: Tentem colocar no link www.seu-site.com/zf-basico1/index/index/ irá cair na index, note que não existe uma pasta index e outra index dentro da raiz do site!

Aguardem novos tutoriais..


Espero que tenham gostado!

Até a próxima.

Nenhum comentário: