Você está na página 1de 10

VIU SOLUÇÕES ‐ FORMAÇÃO PHP – PHP5 E ORIENTAÇÃO A OBJETOS 

Sumário 
1.  Arquitetura MVC ............................................................................................................... 3 
1.1.  Porque usar MVC ...................................................................................................... 3 
1.2.  Layout de uma aplicação MVC ............................................................................. 4 
1.2.1.  Servidor Web .......................................................................................... 4 
1.2.2.  Ações e controladores ......................................................................... 5 
1.2.3.  Modelos .................................................................................................... 5 
1.2.4.  Visões ....................................................................................................... 5 
2.  Framework ......................................................................................................................... 6 
2.1.  Porque usar Framework? ....................................................................................... 6 
2.2.  Qual Framework utilizar? ....................................................................................... 7 
2.2.1.  CodeIgniter .............................................................................................. 7 
2.2.2.  CakePHP .................................................................................................. 8 
2.2.3.  Symfony ................................................................................................. 10 
2.2.4.  Framework Zend .................................................................................. 10 

VIU SOLUÇÕES ‐ FORMAÇÃO PHP – PHP5 E ORIENTAÇÃO A OBJETOS 
1. Arquitetura MVC

Model-View-Controller (MVC) é um design pattern que simplifica o


desenvolvimento e a manutenção de aplicações. O MVC consegue isso através
da separação da aplicação em três componentes lógicos (Camadas):
 Modelo: A camada de modelo é responsável pela lógica de negócios de
uma aplicação. Ele vai encapsular acesso a repositórios de dados e irá
fornecer uma biblioteca de classes reutilizáveis. Tipicamente , dentro do
modelo, podemos encontrar facilidades para abstração de banco de
dados , entrega de e-mail , validação e autenticação.
 View: A camada de visão está tipicamente relacionada com web design.
Ou seja, uso de templates e recursos visuais. Na visão podemos controlar
a aparência dos dados e oferecer facilidades para coletar dados do
usuário. Technologies encontrados exclusivamente em vista são HTML ,
CSS e JavaScript.
 Controller: A camada controlador cola tudo e mescla os estilos da visão
com as funcionalidades do modelo. Ele é responsável por coletar dados
de entrada do usuário e posteriormente decidir qual procedimento será
executado. O controlador irá chamar instalações modelo e interpretar o
retorno de dados para que ele possa ser processado pela visão . É
também responsável por todos exceção de aplicação e controle de fluxo.

1.1. Porque usar MVC


Em equipes, o MVC permite uma colaboração eficiente, dividindo as
responsabilidades em três papéis:
 Desenvolvimento: Os desenvolvedores posssuem habilidades
relacionadas ao PHP, administração de banco de dados, algoritmos,
arquitetura e dados validação. Esse papel normalmente será responsável
pelos detalhes de programação (o "como") de um aplicativo, e irá fornecer
APIs e fazer cumprir a política para interagir com os dados.
 Projeto: Os designers lidar são responsáveis por como um aplicativo será
apresentado. Eles serão altamente qualificados em tecnologias como

VIU SOLUÇÕES ‐ FORMAÇÃO PHP – PHP5 E ORIENTAÇÃO A OBJETOS 
HTML, CSS, JavaScript e ferramentas gráficas. Normalmente, esse papel
será responsável por interagir tanto com as fontes internas quanto
externas de comunicação para determinar as regras de negócio realistas
para que uma aplicação. Projeto geralmente leva a um protótipo de
desenvolvimento, a criação de mock-up projetos que mostram a
funcionalidade ideal .
 Integração: A integração junta o trabalho dos designers e
desenvolvedores. Integradores normalmente têm menos experiência do
que os desenvolvedores. Eles também são responsáveis pela
intermediação de dados. Isto ocorre através da solicitação de informações
a partir de formulários.

A divisão de papeis permite que as disciplinas criativas e técnicas possam


interagir mais facilmente. Sendo assim, pela primeira vez um designer irá projetar
com base nos requisitos de negócios existentes como o aplicativo deverá se
comportar.
Os desenvolvedores irão garantir que todas as funcionalidades solicitadas
sejam viáveis e se encaixem com as políticas de segurança e privacidade da
empresa.
Os integradores irão utilizar o design e convertê-lo em uma linguagem como
modelo simples.
A arquitetura MVC fornece também uma subdivisão útil da estrutura do
arquivos. Esta funcionalidade tem como objetivo reduzir os conflitos de códigos
e economizar tempo com mudanças.

1.2. Layout de uma aplicação MVC


O layout de aplicações MVC difere conforme o Framework. Entretanto, alguns
conceitos são comuns a todos os frameworks MVC:

1.2.1. Servidor Web


Ao contrário de outras aplicações PHP, aplicações MVC normalmente
implementam um script centralizado que trata todas as solicitações usando uma

VIU SOLUÇÕES ‐ FORMAÇÃO PHP – PHP5 E ORIENTAÇÃO A OBJETOS 
única entrada. Sendo assim, em vez de usar /caminho/para/ arquivo.php,
utilizamos /controller/action. Entretanto, este caminho não irá levar a um arquivo
PHP. Em vez disso, uma URL rescrita com mod_rewrite é usada para
redirecionar todas as solicitações HTTP. Por padrão, este script de inicialização
será responsável por inicializar o Framework: o carregamento de arquivos, leitura
de dados de configuração, analise de URL em e preenchimento de objetos que
encapsulam o pedido.

1.2.2. Ações e controladores


Após a inicialização, uma classe chamada de controlador frontal (FC) é
instanciada. O controlador frontal é tipicamente uma classe interna que é
responsável por interpretar variáveis de solicitação e encaminhamento a
execução de código para uma classe definida pelo usuário, o que é chamado de
um controlador de ação (AC). Geralmente, um controlador de ação irá
implementar uma interface padrão ou utilizar uma classe abstrata, de modo que
o controlador de ação do controlador frontal possam interagir usando uma API
comum. O controlador frontal, então, deverá invocar um método no controlador
de ação especificado pela URL. Este método é chamado de ação, e seu nome,
como o nome do controlador de ação, é determinado a partir da URL. A ação é
responsável por instanciar classes de modelo e saída dos resultados.

1.2.3. Modelos
Os modelos são geralmente a parte mais fácil. Eles geralmente não
seguem qualquer estrutura especial para além de existir em um local comum, de
modo que eles podem ser carregados automaticamente pela estrutura. Modelos
são simplesmente classes de utilitários que fornecem a manipulação de dados
necessários e funcionalidade de análise.

1.2.4. Visões
As visões são templates e podem ser escritos em qualquer linguagem de
template. O principal objetivo aqui é não incluir qualquer tipo de lógica de

VIU SOLUÇÕES ‐ FORMAÇÃO PHP – PHP5 E ORIENTAÇÃO A OBJETOS 
processamento ou manipulação de dados no modo de exibição é apenas saída
dados que tenham sido fornecidos especificamente pelo controlador.
A escolha da linguagem de templates depende se ela pode ser integrada com
o Framework.

2. Framework

Framework é um conjunto de classes que colaboram para realizar uma


responsabilidade para um domínio de um subsistema da aplicação. - Fayad e
Schmidt

Framework é um conjunto de processos genéricos criados para o


desenvolvimento de funcionalidades específicas. Além disso, o framework é
quem dita o fluxo de controle da aplicação, chamado de Inversão de Controle.

2.1. Porque usar Framework?

Caso esteja procurando uma maneira mais produtiva de desenvolvimento


de códigos. Uma maneira que elimine desperdício de tempo para que o mesmo
seja usado com foco no desenvolvimento de regras de negócio da sua aplicação.
Se você está interessado em escrever código com mais qualidade e
reaproveitando rotinas: acesso ao banco de dados, funções para envio de e-mail,
acesso a APIs de outros serviços. Neste caso, você está procurando um
Framework. O Framework tem como objetivo agilizar o desenvolvimento da
aplicação, melhorando a qualidade e legibilidade do código. Além disso, sua
utilização reduz a quantidade de problemas decorrentes de bugs, uma vez que
você utilizará um código padronizado e que já foi testado previamente pela
comunidade que o mantém.

Utilizar um Frameworks durante desenvolvimento de software possuem


vantagens, tais como:

 Praticidade: Facilidade de uso e detecção de erros,


 Foco: Concentração na abstração de soluções do problema;

VIU SOLUÇÕES ‐ FORMAÇÃO PHP – PHP5 E ORIENTAÇÃO A OBJETOS 
 Produtividade: Eficiência na resolução dos problemas e otimização de
recursos.
 Utilidade. Uso de funcionalidades nativas das mais variadas.
 Segurança. Código seguro para evitar um SQL Injection e outras falhas
de segurança.
 Extensibilidade. Possibilidade de extender diversas funcionalidades
nativas.
 Economia de tempo. Velocidade de desenvolvimento de recursos
trabalhosos tais como: autenticação, controle de acesso e etc.
 Ajuda fácil. Comunidade ativa de fácil interação.

2.2. Qual Framework utilizar?


2.2.1. CodeIgniter
O CodeIgniter é um framework leve e fácil de usar, adequado para
ambientes de hospedagem compartilhada por consumir poucos recursos. Ele
está bem documentado e oferece uma biblioteca com vídeos-tutoriais ensinando
as suas funcionalidades.

VIU SOLUÇÕES ‐ FORMAÇÃO PHP – PHP5 E ORIENTAÇÃO A OBJETOS 
2.2.2. CakePHP
CakePHP poderia ser chamado de “PHP on Rails”, pois segue princípios
utilizados em Ruby on Rails. É focado no desenvolvimento rápido de aplicativos.

VIU SOLUÇÕES ‐ FORMAÇÃO PHP – PHP5 E ORIENTAÇÃO A OBJETOS 
VIU SOLUÇÕES ‐ FORMAÇÃO PHP – PHP5 E ORIENTAÇÃO A OBJETOS 
2.2.3. Symfony
O framework Symfony se encaixa para programadores mais experientes,
que desenvolvem aplicativos para uso corporativo. Também segue a filosofia do
“Rails”.

2.2.4. Framework Zend


O framework Zend foca na criação de aplicativos complexos e possui uma
grande comunidade de desenvolvimento contribuindo para a sua construção.

VIU SOLUÇÕES ‐ FORMAÇÃO PHP – PHP5 E ORIENTAÇÃO A OBJETOS