Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão...

12
Programação para Internet Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação

Transcript of Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão...

Page 1: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para InternetCurso de Gestão da Informação

Prof. Dr. Daniel A. FurtadoMódulo 8 – Introdução ao Padrão MVC com PHP

Universidade Federal de UberlândiaFaculdade de Computação

Page 2: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 2

Descrito pela primeira vez em 1979, por Trygve Reenskaug, em um contexto diferente do atual;

O padrão utilizado atualmente para desenvolvimento web é uma adaptação do padrão original;

MVC – Introdução

Page 3: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 3

MVC = Model-View-Controller (modelo-visão-controlador)

MVC é um padrão de arquitetura de software baseado na ideia fundamental de que a lógica da aplicação deve ser separada de sua apresentação (interface);

Amplamente utilizado em aplicações Web;

O que é MVC?

Page 4: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 4

O padrão MVC propõe que a aplicação seja dividida em três componentes principais, cada qual com uma responsabilidade bem definida:

O que é MVC?

• Trata dos dados e da lógica de negócios;Model

• Apresentação dos dados ao usuário no formato apropriado e com o devido layout;View

• Recebe as requisições do usuário e chama os recursos apropriados (métodos, funções, etc.) para tratá-las;

Controller

Page 5: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 5

Gerencia as requisições do usuário, as quais são geralmente realizadas via HTTP GET ou POST (quando o usuário clica em algum elemento da interface para executar alguma ação);

Sua principal função é chamar e coordenar os recursos e objetos necessários para executar a ação do usuário;

Geralmente o controller chama o model apropriado para a tarefa requisitada e então seleciona a view adequada;

Controlador – Controller

Page 6: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 6

Inclui os dados da aplicação e as regras de negócio que os processam;

O modelo provê ao controlador os dados requisitados em um formado padronizado, utilizando um modelo de dados;

Tal modelo de dados será sempre o mesmo, independente de como ele será apresentado ao usuário (é por isso que podemos escolher qualquer visão disponível para apresentá-lo);

O modelo contém a parte mais importante da lógica da aplicação, isto é, a lógica que se aplica ao problema sendo tratado (Loja virtual? Portal de notícias? Gestão hoteleira?);

Modelo – Model

Page 7: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 7

A visão provê diferentes maneiras de apresentar os dados recebidos do modelo;

Podem ser templates onde os dados são preenchidos;

Poderá haver várias visões diferentes e o controlador tem que decidir qual delas usar;

Visão – View

Page 8: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 8

Padrão MVC

Usuário (navegador)

Controller

Model(BD, regras de negócio...)

View(templates, layout...)

1) Usuário envia uma requisição ao controlador via URL

2) Controlador solicita os dados ao modelo

3) Modelo retorna os dados solicitados

4) Controlador seleciona uma visão

5) Visão retornada ao controlador;

6) Controlador devolve a visão (página HTML) que carrega os dados do modelo selecionado.

Page 9: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 9

Uma aplicação web é geralmente composta de uma coleção de controladores, modelos e visões;

Padrão MVC

Usuário (navegador)

Main Controller

Controller 1 Controller 2 Controller 2

...

Page 10: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 10

A principal vantagem de utilizar o padrão MVC é a separação clara da apresentação (interface com o usuário) da lógica da aplicação; De fundamental importância, considerando os diferentes tipos de usuários

usando diferentes tipos de dispositivos (celular, tablet, desktop, etc.); O modelo retornará exatamente os mesmos dados, mas o controlador

escolherá diferentes visões para apresentá-los;

Redução da complexidade no desenvolvimento de projetos grandes;

Desenvolvimento em equipe mais eficiente;

Código melhor estruturado e mais fácil de manter;

Quais são as vantagens?

Page 11: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 11

Frameworks baseados no MVC para PHP

Page 12: Curso de Gestão da Informação Prof. Dr. Daniel A. Furtado Módulo 8 – Introdução ao Padrão MVC com PHP Universidade Federal de Uberlândia Faculdade de Computação.

Programação para Internet - Prof. Dr. Daniel A. Furtado - w3schools 12

Popularidade dos Frameworks MVC (PHP)