Escolar Documentos
Profissional Documentos
Cultura Documentos
Desenvolvimento em PHP
Novatec
captulo 1
Introduo
Sei que escrever esse pargrafo anterior em um livro sobre PHP uma
blasfmia e, provavelmente, um exagero. Mas com o surgimento do Rails, vrios
programadores da comunidade open source em consenso de que programar para
o ambiente web, muitas vezes, era uma tarefa repetitiva e maante, perceberam
que vrios aspectos poderiam ser reaproveitados, e, principalmente, que progra-
mar poderia ser divertido. No estou dizendo que no existissem frameworks
para PHP antes disso, mas a reao de todos foi olhar com mais ateno para
os existentes e criar novos, pensando nessas idias.
14
Captulo 1 Introduo 15
1.1 PHP 5
O PHP foi criado inicialmente como uma linguagem de script estruturada,
mas, com o passar dos anos, novos recursos foram sendo adicionados com
o intuito de transform-la em uma linguagem orientada a objetos. Na verso
4 da linguagem, j existia a possibilidade de se utilizar classes e objetos, mas
de uma maneira ainda rudimentar.
1.1.1.2 Classes
Uma classe pode ser considerada como uma descrio, um molde para criar
objetos. Ela define todos os dados e comportamentos possveis daquele tipo de
objetos. Dessa forma, um objeto considerado uma instncia de uma classe.
1.1.1.3 Herana
Podemos definir uma classe como sendo uma classe-filha de outra. Isto
significa que a nova classe herda todas as caractersticas da classe-pai. Este
conceito muito importante e utilizado nos frameworks que veremos no
decorrer deste livro. Exemplos:
<?php
class LinguagemProgramacaoEstruturada extends LinguagemProgramacao {
function goto($linha) {
echo Movendo para linha $linha;
//implementao;
}
}
1.2 Frameworks
1.2.1 O que um framework?
Parafraseando um professor que tive, framework um arcabouo de software.
Sempre gostei dessa definio, mais pela forma como foi dita do que pelo
seu significado. Em outras palavras, um framework de desenvolvimento
uma base de onde se pode desenvolver algo maior ou mais especfico.
uma coleo de cdigos-fonte, classes, funes, tcnicas e metodologias que
facilitam o desenvolvimento de novos softwares.
1.3 Tecnologias
Ao olharmos atentamente para os principais frameworks de desenvolvimento
para PHP, podemos observar que algumas tecnologias e tcnicas so comuns
maioria deles. O tpico 1.3 apresenta algumas delas.
1.3.1.1 MVC
MVC um acrnimo para Model, View, Controller (Modelo, Viso e
Controlador). A idia separar todo o desenvolvimento de uma aplicao
nestas trs partes, ou camadas:
Model gerencia o comportamento dos dados da aplicao.
View gerencia a sada grfica e textual da parte da aplicao visvel
ao usurio.
Controller interpreta as entradas de mouse e teclado do usurio, co-
mandando a Viso e o Modelo para se alterarem de forma apropriada.
Todas as requisies feitas pelo usurio so enviadas ao Controller. Este
manipula os dados usando o Model e invoca a View correta, de acordo com
a ao executada ou com os resultados vindos do Model.
A grande vantagem de se utilizar o padro MVC a separao de lgica
e apresentao, sendo que isso favorece o trabalho em equipe. Um designer
poderia trabalhar na apresentao, definindo o HTML, CSS, Flash, enquanto
um Data Base Administrator (DBA), administrador de banco de dados, pode-
ria trabalhar com o modelo e outro programador poderia se concentrar nas
regras de negcio inseridas no controlador. Dessa forma, qualquer mudana,
por exemplo, na apresentao, teria pouco ou nenhum impacto nas demais
camadas da aplicao.
1.3.1.2 ActiveRecord
Este padro de design facilita a manipulao de dados contidos em uma base
de dados por aplicaes desenvolvidas com o paradigma orientadas a objetos.
Uma tabela de uma base de dados vista na forma de uma classe, enquanto
cada linha da tabela considerada um objeto desta classe. Quando um ob-
jeto criado, alterado ou excludo, esta ao automaticamente refletida na
base de dados. Desta forma, no necessrio que o desenvolvedor conhea
uma linguagem de manipulao de dados como SQL, alm de manter toda
a aplicao desenvolvida no paradigma orientado a objetos.
20 Frameworks para Desenvolvimento em PHP
1.3.2 AJAX
O AJAX (Asynchronous Javascript and XML ) no uma tecnologia nova,
mas ganhou holofotes a partir do momento em que o Google comeou a
us-la em seus aplicativos, como o Gmail, o qual usa uma mistura de HTML,
Javascript e CSS, possibilitando a criao de aplicaes que aparentam ser
executadas localmente na mquina do usurio e no em um ambiente web.
Um exemplo simples seria a apresentao da descrio de um item aps a
digitao do seu cdigo-fonte em um campo text de um formulrio HTML,
sem aparentar para o usurio que a pgina realizou uma requisio ao servidor
para buscar a informao.
1.3.3 Internacionalizao
Internacionalizao o processo de possibilitar que seja facilmente alterada
a linguagem da interface e de mensagens de uma determinada aplicao.
Para facilitar o desenvolvimento deste tipo de aplicaes, necessrio que
a ferramenta, biblioteca ou framework utilizado possua suporte a essa
caracterstica. Alguns frameworks como o Symfony possuem suporte
internacionalizao, enquanto o CakePHP ainda no.
1.3.4 PEAR
PEAR consiste em um repositrio de componentes reutilizveis para PHP.
Estes componentes abrangem vrios tpicos, como autenticao, gerao
de imagens, conexo com bases de dados etc. Alm de ser um repositrio
de componentes, PEAR tambm um sistema de distribuio, que facilita
Captulo 1 Introduo 21
deve haver uma rea administrativa onde o usurio pode alterar as suas
colees;
Esta aplicao foi escolhida por no ser muito complexa, e mesmo assim
possuir caractersticas que possibilitam demonstrar algumas necessidades
de outras aplicaes como controle de acessos, validao de campos, acesso
a bancos de dados entre outras.
Apache 2.0.55
PHP 5.1.6
MySQL 5.0.24a-9
DBDesigner 4
Esse ambiente foi utilizado, pois meu ambiente de trabalho. Nada impede
que sejam utilizadas outras opes como:
22 Frameworks para Desenvolvimento em PHP
Apache para plataforma Windows ou outro servidor web que suporte PHP.
Pode ser utilizada qualquer IDE que suporte PHP. O interessante que tenha
suporte mnimo highlighting. Outra boa ferramenta o Zend Studio.