0% acharam este documento útil (0 voto)
153 visualizações

Entendendo MVC Com PHP5

1. O documento discute o desenvolvimento de sistemas em três camadas utilizando o padrão MVC e a linguagem PHP. 2. A arquitetura em camadas separa a apresentação, lógica de negócio e acesso a dados, tornando os sistemas mais flexíveis, enquanto o MVC define a interação entre esses componentes. 3. O PHP é uma linguagem adequada para implementar esse modelo, permitindo a separação das responsabilidades e a reutilização de código.

Enviado por

rcesarnas
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
153 visualizações

Entendendo MVC Com PHP5

1. O documento discute o desenvolvimento de sistemas em três camadas utilizando o padrão MVC e a linguagem PHP. 2. A arquitetura em camadas separa a apresentação, lógica de negócio e acesso a dados, tornando os sistemas mais flexíveis, enquanto o MVC define a interação entre esses componentes. 3. O PHP é uma linguagem adequada para implementar esse modelo, permitindo a separação das responsabilidades e a reutilização de código.

Enviado por

rcesarnas
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 11

1 Desenvolvimento em 3 camadas utilizando MVC e PHP 5 Introduo O incio da utilizao de linguagens comerciais foi marcado pelo desenvolvimento de sistemas

aplicativos monolticos, instalados em mquinas isoladas. Esses aplicativos geravam uma imensa quantidade de linhas de cdigo para a sua implementao, o que tornava a tarefa de manuteno extremamente difcil, alm de complexa e onerosa. Era muito comum encontrar sistemas contendo todas as funcionalidades do aplicativo em uma nica grande camada como demonstra a figura abaixo.

Com a necessidade de separar a lgica de acesso aos dados do restante da aplicao surgiram as aplicaes em duas camadas. Nesse tipo de aplicao a lgica de acesso aos dados estava separada do restante da aplicao, permitindo assim vrios programas acessarem a mesma base de dados. Apesar desta evoluo na arquitetura os sistemas ainda eram potencialmente monolticos, pois a lgica de apresentao (interface homem mquina) e a lgica de negcio (algoritmos do sistema), estavam reunidas em uma nica camada. Com o advento da Internet esta arquitetura teve que ser alterada, pois o tempo necessrio para carregar todos os componentes da regra de negcio na estao cliente em um aplicativo Web era extremamente elevado, tornando assim o sistema invivel. Houve a separao lgica do negcio da interface com o usurio.

A separao em camadas lgicas tornou os sistemas mais flexveis permitindo que as partes pudessem ser manipuladas de forma independente. As funcionalidades da camada de negcio podem ser divididas em classes as quais podem ser agrupadas em pacotes ou componentes minimizando as dependncias entre as classes e pacotes. O modelo de trs camadas tornou-se a arquitetura padro para sistemas corporativos com base na Web.

Juntamente com a popularizao da Arquitetura de Camadas ressurgiu o modelo MVC de desenvolvimento. Este modelo traz simplicidade e coerncia interfaces. Apesar da popularizao simultnea destes dois Padres Arquiteturais que estes passaram a ser confundidos. Modelo MVC e Arquitetura de Camadas so conceitos diferentes, que podem ser aplicados em conjunto ou no. A arquitetura em camadas diz respeito separao entre os componentes, enquanto o modelo MVC diz respeito interao entre os componentes.

3 Arquitetura em Camadas: Separao entre os Componentes A Arquitetura em Camadas utilizada no desenvolvimento de software para separar as responsabilidades existentes em uma aplicao. Uma camada uma separao lgica de software - uma separao bsica de questes do nvel de desenvolvedor - para que se possa particionar com mais facilidade as responsabilidades do sistema. A utilizao de camadas permite a estruturao de aplicativos que podem ser decompostos em grupos de sub-tarefas, em que cada grupo de subtarefas est em um determinado nvel de abstrao. Isolando-os em grupos possvel diminuir o acoplamento entre os componentes, fazendo com que as mudanas em um grupo no impactem muito em outro grupo. A diviso mais comum feita entre as camadas de apresentao, lgica de negcio e lgica de acesso a dados. Na Camada de Apresentao esto todas as classes e demais artefatos relacionados com a interao entre o usurio e a aplicao. A Camada de Negcios contm a modelagem do domnio do problema em classes de negcio e a Camada de Persistncia contm as classes com conhecimento sobre como persistir objetos no banco de dados. O diagrama abaixo mostra os objetos em uma aplicao simples.

4 Aplicando a tcnica de Camadas, vamos agrupar os objetos com responsabilidade semelhante:

Utilizando Camadas o projetista tem um critrio a utilizar quando decide agrupar duas ou mais classes, mas o uso de Camadas no diz nada sobre como estes grupos se comunicam. As Camadas promovem o encapsulamento (uma Camada no vai saber o que tem dentro da outra) e a coeso (componentes parecidos ficam no mesmo grupo). Vantagens da utilizao de camadas: Facilidade da diviso do trabalho Suporte ao desenvolvimento e testes incrementais Reutilizao de camadas Possibilidade de padronizao de interfaces Manutenibilidade Portabilidade Testabilidade

5 MVC (Modelo, Visualizao, Controle): Interao entre os Componentes Segundo Macoratti (2006), a arquitetura MVC fornece uma maneira de dividir a funcionalidade envolvida na manuteno e apresentao dos dados de uma aplicao. A arquitetura MVC no nova, e foi originalmente desenvolvida para mapear as tarefas tradicionais de entrada, de processamento e de sada para o modelo de interao com o usurio. A maneira mais natural de conduzir esta interao no definir regra alguma. Agindo desta forma os componentes podem falar entre si sem qualquer limitao ou protocolo. O modelo de trs camadas fsicas (3-tier) divide um aplicativo de modo que a lgica de negcio resida no meio das trs camadas fsicas. Isto chamado de camada fsica intermediria ou camada fsica de negcios. A maior parte do cdigo escrito reside na camada de apresentao e de negcio. A arquitetura MVC - (Modelo Visualizao Controle) fornece uma maneira de dividir a funcionalidade envolvida na manuteno e apresentao dos dados de uma aplicao. A arquitetura MVC no nova e foi originalmente desenvolvida para mapear as tarefas tradicionais de entrada, de processamento e de sada para o modelo de interao com o usurio. Usando o padro MVC fica fcil mapear esses conceitos no domnio de aplicaes Web multicamadas. Na arquitetura MVC o modelo representa os dados da aplicao e as regras do negcio que governam o acesso e a modificao dos dados. O modelo mantm o estado persistente do negcio e fornece ao controlador a capacidade de acessar as funcionalidades da aplicao encapsuladas pelo prprio modelo. Um componente de visualizao manipula o contedo de uma parte particular do modelo e encaminha para o controlador as aes do usurio; acessa tambm os dados do modelo via controlador e define como esses dados devem ser apresentados. Um controlador define o comportamento da aplicao, ele que interpreta as aes do usurio e as mapeia para chamadas do modelo. Em um cliente de aplicaes Web essas aes do usurio poderiam ser clique de botes ou selees de menus. As aes realizadas pelo modelo incluem ativar processos de negcio ou alterar o estado do modelo. Com base na ao do usurio e no resultado do processamento do modelo, o controlador seleciona uma visualizao a ser exibida como parte da resposta a solicitao do usurio. H normalmente um controlador para cada conjunto de funcionalidades relacionadas. A arquitetura de 3 camadas que est representada abaixo uma implementao do modelo MVC. O modelo MVC est preocupado em separar a informao de sua apresentao.

Camada de apresentao ou visualizao - No est preocupada em como a informao foi obtida ou onde ela foi obtida apenas exibe a informao. Inclui os elementos de exibio no cliente: HTML, XML, ASP, Applets, PHP a camada de interface com o usurio usada para receber a entrada de dados e apresentar o resultado Camada de lgica da Aplicao (Modelo) - o corao da aplicao. Responsvel por tudo que a aplicao vai fazer. Modela os dados e o comportamento por atrs do processo de negcios Preocupa-se apenas com o armazenamento, manipulao e gerao de dados um encapsulamento de dados e de comportamento independente da apresentao Camada de Controle - determina o fluxo da apresentao servindo como uma camada intermediria entre a camada de apresentao e a lgica. controla e mapeia as aes Vantagens do modelo MVC : Como o modelo MVC gerencia mltiplos visualizadores usando o mesmo modelo fcil manter , testar e atualizar sistemas mltiplos muito simples incluir novos clientes apenas incluindo seus visualizadores e controles Torna a aplicao escalvel possvel ter desenvolvimento em paralelo para o modelo, visualizador e controle pois so independentes Reaproveitamento de cdigo Facilidade de manuteno Camada de Persistncia independente Implementao de segurana Facilidade na alterao da interface da aplicao PHP5 e MVC

7 PHP (um acrnimo recursivo para "PHP: Hypertext Preprocessor") uma linguagem de script Open Source de uso geral, muito utilizada e especialmente guarnecida para o desenvolvimento de aplicaes Web embtivel dentro do HTML. O PHP permite a criao de sites Web dinmicos, possibilitando uma interao com o usurio atravs de formulrios, parmetros da URL e links. A diferena de PHP com relao a linguagens semelhantes tais como JavaScript que o cdigo PHP executado no servidor, sendo enviado para o cliente apenas html puro. Desta maneira possvel interagir com bancos de dados e aplicaes existentes no servidor, com a vantagem de no expor o cdigo fonte para o cliente. A utilizao do PHP no desenvolvimento de sistemas para Internet utilizando o paradigma de Orientao a Objeto tem crescido muito. Juntamente com isso vrios frameworks (conjunto de classes com objetivo de reutilizao de um projeto) que implementam o padro MVC em PHP tem surgido, a saber:
Zend

Framework - Framework em PHP no padro MVC PHP.MVC - Framework em PHP no padro MVC Ruby on Rails - Conjunto de frameworks, incluindo MVC, para Ruby CakePHP - Framework MVC para PHP symfony - Framework MVC para PHP
Framework

Com o objetivo de poupar o trabalho de entender o funcionamento destes frameworks, est sendo proposta uma Arquitetura de Desenvolvimento simples, usando o padro MVC, de forma a subsidiar os projetos de software. A figura a seguir descreve a arquitetura em trs camadas que ser utilizada.

8 Entendendo a Arquitetura

Lgica de Apresentao - Entrada e sada de dados. A nica viso do sistema pelo usurio.

Lgica do Negcio - So Classes que validam os dados provenientes da interface com Usurio. Retornam mensagens de erro quando houver. Tambm responsvel por levar e trazer informaes do Banco de Dados.

Lgica de Acesso a Dados - Camada responsvel pela comunicao e manuteno de dados e informaes.

Exemplo de uma aplicao em PHP5 utilizando o modelo MVC Problema: Manuteno de uma tabela de usurio em um banco de dados. Soluo: Criar uma aplicao capaz de cadastrar, mostrar, alterar e excluir registros na tabela de usurio. A construo deste tipo de aplicao requer a utilizao de um padro (pattern). Para a soluo do problema foi criada a seguinte estrutura padro:

A pasta arquitetura ir conter as classes utilitrias do sistema, a saber: Banco de Dados, E-mail, Manipulao de Arquivos, dentre outras. A pasta negcio conter as classes que compem a lgica dos sistemas. A pasta sistema conter as pginas que faro a troca de dados com o usurio.

9 Pasta arquitetura Na pasta arquitetura em fabrica_sisgp fica as classes utilitrias dos aplicativos a serem criados. Para este exemplo foi criada a classe que manipula o banco de dados.
BancodeDados.class

A classe BancodeDados recebe os atributos host, username, password e squema, do arquivo: conexo.xml. No mtodo construtor os atributos so inicializados com os dados vindos do arquivo XML. Os mtodos existentes na classe BancodeDados realizam a conexo e as demais operaes nas tabelas do banco de dados. Dessa forma tem-se um objeto que ir fazer todo o acesso ao banco de dados. Assim, toda aplicao que necessitar interagir com o banco de dados ir usar o objeto BancodeDados.

DAO.class A classe DAO conter os mtodos setBancoDados e getBancoDados, a qual ser extendida pelas classes objectDAO.class de cada entidade negocial. Data Access Object (DAO) significa "Objeto de acesso ao Banco", ou seja, todas as operaes que necessitarem manipular alguma informao no banco de dados sero realizadas por essa classe. Pasta negcio Na pasta negcio em fabrica_sisgp ficam as classes relacionadas com as funes do sistema, ou seja, com o negcio do sistema. Na pasta negcio ser criada uma pasta para cada entidade descrita no diagrama de classe. Neste exemplo tem-se a pasta pdu.

Como a proposta separar em camadas a aplicao, existir um conjunto de classes que faro a persistncia com o banco de dados. Dessa forma tem-se uma classe que far o transporte do banco (Pdu.class) e outra mais especfica que executar as funes (PduDAO.class). A classe Pdu conter os atributos e os mtodos de acesso a esses atributos.

1 A classe PduDAO conter os mtodos que realizam as aes da entidade Pdu. Esse exemplo possui os seguintes mtodos: ocadastrar oalterar oexcluirPorId orecuperarPorId orecuperarTodos Para cada classe representada no Diagrama de Classes dever existir uma pasta com o nome da classe, e dentro desta pasta os arquivos object.class e objectDAO.class. A SessionFacadePdu tem um conjunto de mtodos de negcio responsvel por acessar e atualizar dados. um ponto de entrada nico dos dados e funcionalidades. uma camada de controle da lgica de negcio da aplicao. Possui os seguintes mtodos: ocadastrarPdu oalterarPdu oexcluirPduPorId orecuperarPduPorId orecuperarTodosPdu A SessionFacadePdu funciona da seguinte forma: O mtodo construtor recebe como parmetro o banco de dados passado por referncia, e o atribui a varivel banco que ser usada pelos mtodos. A validao dos dados feita com excees que sero disparadas quando o dado no estiver de acordo com a regra de negcio. A classe PduDAO instanciada, passando o banco por referncia j conectado para o objeto us-lo. Caso haja algum erro no PduDAO, l disparada uma exceo. preciso sempre dar um require_once das classes que sero usadas.

1 Pasta sistema A pasta sistema em fabrica_sisgp objetiva guardar as aplicaes que implementam a comunicao entre a interface e a lgica do sistema. Para este exemplo foram criadas aplicaes que tm por objetivo a manuteno do cadastro de PDU da Unidade. A pasta sistema possui a seguinte estrutura:

A aplicao index.php, na pasta sistema, foi construda para ser o ponto de entrada do sistema. Essa aplicao mostrar um menu com as opes do usurio. A aplicao manterPdu.php, existente na pasta pdu ser responsvel por controlar todas as aes relacionadas ao PDU (cadastrar, consultar, atualizar, cancelar, mostrar, alterar e excluir). A idia receber as requisies do usurio, direcion-las aos objetos de negcio, onde os dados so processados e retornados ao usurio.

Concluso O objetivo deste documento foi mostrar alguns conceitos relacionados construo de aplicaes utilizando o paradigma de orientao a objetos, em uma arquitetura em trs camadas seguindo o modelo MVC, com PHP5. Os programas fonte usados na aplicao esto disponveis junto a esse material. Para um completo entendimento deste exemplo de utilizao do PHP sugiro percorrer a lgica verificando cada detalhe (passagem de argumentos, instanciamento de objetos, chamada de funes, etc).

Você também pode gostar