• Nenhum resultado encontrado

3.2 Identificação dos actores

4.1.2 Zend Framework

Uma Web Framework é um conjunto de classes que se destina a apoiar o programador no de- senvolvimento de sites dinâmicos, aplicações Web e Web Services. Uma Web Framework alivia o

4.1 Tecnologias utilizadas 27

Figura 4.2: Quantidade de artigos sobre Zend indexados no motor de busca Google, comparativa- mente com artigos sobre Symfony e Cake PHP (http://www.google.com/trends)

programador da repetição de actividades comuns realizadas no desenvolvimento Web. Por exem- plo, a maioria das frameworks já disponibilizam bibliotecas, entre outras, para o acesso a sistemas de gestão de bases de dados, gestão de sessões e promovem por norma a reutilização do código.

Para o desenvolvimento do eMarketplace sentiu-se a necessidade de adoptar uma Framework PHP, ficando após uma primeira análise, três em consideração: Symfony, Zend Framework e CakePHP. Cada uma delas tem as suas vantagens e desvantagens, portanto a escolha significava perder num ponto e ganhar noutro. Após a utilização e a análise de cada uma, a opção passou pelo Zend Framework. Entre outros, os pontos que foram considerados na decisão final passaram essencialmente pela popularidade, documentação, curva de aprendizagem, documentação, comu- nidade de utilizadores, entidade criadora, preocupação com a usabilidade, conformidade com o PHP e Web 2.0.

O Zend Framework (ZF) é uma framework Open Source (código aberto) que dispõe de vários recursos para o desenvolvimento em PHP. Zend Framework é uma framework de código aberto (open-source) desenvolvido em PHP5, concebido para evitar a repetição de código pelos pro- gramadores, sendo uma das suas principais características a sua arquitectura MVC (Model-View- Controller), tornando seu código mais reutilizável e mais fácil de manter. A Framework "propõe-se a oferecer um conjunto de bibliotecas de recursos de grande poder, fornecendo soluções modernas, robustas e seguras para o programador" [61].

Existe uma tendência de crescimento da comunidade à volta desta framework, como revela a figura4.2, o número de artigos existentes indexados no motor de busca Google1referentes a Zend, comparados com as frameworks Symfony e Cake PHP.

A arquitectura MVC fornece um padrão de projecto de modo a dividir a funcionalidades en- volvidas na manutenção e apresentação dos dados de uma aplicação. Pode-se associar um padrão de projecto como uma padrão de design como um esqueleto ou estrutura em que as aplicações Web são construídas. A Zend Framework é uma framework baseada na arquitectura MVC [61].

Figura 4.3: Padrão MVC da Zend Framework

O processo tradicional de desenvolvimento de uma aplicação Web em PHP seria da seguinte forma:

O código ilustrado encontra-se num único ficheiro, onde está presente a conexão à base de dados, lógica de negócio, lógica de aplicação e apresentação de dados. Ao longo do tempo de utilização de uma aplicação deste tipo, torna-se muito difícil a sua manutenção pois entre outras desvantagens o programador terá de editar todas as páginas do projecto.

A essência do padrão MVC divide a concepção do projecto em três camadas. A figura 4.3

descreve o modelo padrão standard MVC.

4.1 Tecnologias utilizadas 29

1. Model (M) – refere-se a lógica de negócio; modela os dados e o comportamento por trás do processo de negócio, responsável pelo armazenamento e geração de dados, independente da apresentação;

2. View (V) – refere-se à lógica de interface, usada para receber a entrada de dados e apresentar o resultado, camada de interface com o utilizador;

3. Controller (C) – refere-se à lógica de controlo, determina o fluxo da apresentação servindo como uma camada intermediária entre a camada de apresentação e a lógica.

Para criar um projecto usando a framework Zend, é necessário, tal como qualquer outra apli- cação em php, de se criar um ficheiro “index.php”. Este ficheiro terá as informações de acesso ao site e como deve ser controlado. Para garantir que um único ponto de entrada é mantido, pode-se utilizar um ficheiro designado por .htaccess de forma a garantir que nenhum outro ficheiro é ace- dido, e esconder o ficheiro “index.php” no endereço URL. Assim é possível criar endereços url mais amigáveis ao utilizador (friendly URL’s).

No servidor apache terá de estar activa a função mod_rewrite para o ficheiro “.htaccess” actuar de forma correcta:

R e w r i t e E n g i n e On

R e w r i t e C o n d %{REQUEST_FILENAME} !− f R e w r i t e C o n d %{REQUEST_FILENAME} !−d R e w r i t e R u l e ^ ( . ∗ ) $ i n d e x . php

O ficheiro “.htaccess” vai permitir que o endereços (URLs) da aplicação web fique de forma análoga à seguinte:

http://www.my-emarketplace.com/servicos/servico/1234

Se o "mod_rewrite"estiver desabilitado, o endereço da aplicação o mesmo, será semelhante ao seguinte:

http://www.my-emarketplace.com/index.php?rt=servicos&servico=1234

A estrutura de um projecto utilizando a framework Zend pode ser personalizada pelo progra- mador, contudo existe uma estrutura standard à qual deverá obedecer como exemplo, os ficheiros index.php e .htacess estarão localizados na base do projecto. A organização do projecto num di- rectório deverá conter uma pasta para os ficheiros de código do Model, View e Controller, como é possível visualizar na figura4.4.

Zend Framework incluí, na sua biblioteca, componentes tais como:

Componente Breve descrição

Zend_Controller Este módulo fornece um controlo total de um pedido para a aplicação. Traduz pedidos em acções especí- ficas e assegura que eles são executados.

Zend_Db Baseado no PHP Data Objects (PDO) e fornece o acesso à base de dados de uma forma genérica. Zend_Feeds Torna fácil a agregação de RSS e Atom feeds. Zend_Filter Proporciona funções de filtragem de um conjunto de

caracteres (strings), como isEmail() ou getAlpha(). Zend_InputFilter Pode ser utilizado para trabalhar com arrays tal

como form inputs.

Zend_HttpClient Permite aumentar a performance dos pedidos HTTP. Zend_Json Permite traduzir objectos PHP para Javascript Ob-

ject Notation e vice-versa.

Zend_Log Proporciona a funcionalidade de autenticação numa aplicação.

Zend_Mail É usado para enviar texto e anexos por e-mail. Zend_Mime É usado pelo Zend_Mail para ajudar na codificação

das mensagens (MIME).

Zend_Pdf Permite a criação de novos documentos em formato pdf.

Zend_Search É usada para retornar resultados de uma forma sofisticada na pesquisa. Por exemplo baseados por relevância ou por outros factores.

Zend_Service_Amazon, Zend_Service_Flickr, Zend_Service_YouTube, Zend_Service_Twitter, etc,

Permite aceder facilmente a estes serviços através de APIs.

Zend Framework é utilizado em poderosas aplicações PHP por empresas tais como IBM2, Magento3ou SAPO4(serviço de e-mail, entre outros serviços do portal).

2http://www.ibm.com 3http://www.magento.com 4http://www.sapo.pt

4.1 Tecnologias utilizadas 31

Documentos relacionados