21K Views

MVC: UMA nova perspectiva Para Construção de Aplicações Web

Christopher Alexander diz, “Cada padrão descreve um problema que ocorre repetidas vezes em nosso ambiente, e então descreve o núcleo da solução para o problema, de tal forma que você pode usar esta solução um milhão de vezes, sem nunca fazê-lo da mesma forma duas vezes”.

Como engenheiro de software, todos nós já ouvimos que as pessoas compartilhem suas poucas palavras de sabedoria sobre como não “reinventar a roda”. Se já existe uma solução para um problema comum, é do nosso melhor interesse de utilizá-lo, em vez de perder tempo no desenvolvimento de novas soluções e de aperfeiçoá-lo.

O que é engraçado, porque apesar de eu não concordo inteiramente com não “reinventar a roda”, creio que resumem perfeitamente a essência de padrões de projeto em engenharia de software, que é o que vamos falar hoje. Mais especificamente, iremos falar sobre o padrão MVC e como ele desempenha um papel importante no desenvolvimento de uma grande aplicação.

Padrão MVC (Model – View – Controller)

MVC é um software padrão arquitetônico, o que simplesmente significa que é um padrão para definir a estrutura básica e fundamental de trabalho de um aplicativo a partir de um ponto de vista arquitetônico. Tradicionalmente usado para a construção de área de trabalho GUIs, este padrão tem sido amplamente adotada para a construção de aplicações web, e cada implementação deste padrão de variar na sua interpretação, com sutis diferenças. Que é dizer que não há uma “forma correta” de ir sobre ele.

MVC, como o nome sugere divide a aplicação em três partes interligadas: Modelo, Visão e Controlador

  • Modelo: o modelo é O objeto da aplicação, o que é apenas outra maneira de dizer que ele é usado para armazenar dados que é utilizado através de nossa aplicação e é a ponte entre o componente de Vista & o componente do Controlador. Modelo desconhece a existência dos outros dois elementos constitutivos: a visão e o controlador.
  • : O modo de Exibição é o modelo de tela de apresentação, no sentido de que a vista é o que o usuário vê quando usa a sua aplicação. Ele obtém os dados que passam para ele e deixa o resultado final que é visível no ecrã. No caso de um aplicativo da web, você pode imaginar a vista como o final do documento HTML que é processado pelo navegador (user-agent).
  • Responsável: Controlador define a forma como o usuário interage com o nosso aplicativo. Seu trabalho é levar na entradas do usuário, atualizar o modelo correspondente de acordo, e, em seguida, re-compor a vista. O controlador é o que colas, tanto o modelo e vista em conjunto, e a maioria dos nossos lógica de aplicativo correspondente a interface de usuário reside.

 

Uma maneira simples de imaginar o padrão MVC é pensar em um modelo que contém alguns dados estatísticos. A vista processa os dados que residem dentro do modelo em um gráfico. Este gráfico pode ser um gráfico de pizza ou de um gráfico de barras, dependendo do que o usuário prefere, que é manipulada pelo controlador.

Não há muito mais a explorar sobre o padrão MVC, o que nós falamos acima é mais do que o suficiente para agarrar uma compreensão básica do que ele. Vamos ir em frente e construir uma simples aplicação PHP para entender o padrão MVC em mais profundidade.

O aplicativo que vamos construir, será muito simples. Nós vamos utilizar um único arquivo php (index.php) para lidar com a lógica de nossa aplicação web. Nós vamos quebrar a nossa aplicação em controladores que correspondem a diferentes pontos de vista. Todos os controladores de ir para o Controlador de diretório, todos os pontos de vista irá para o modo de Exibição de diretório, e o modelo vai para o Modelo de diretório. Então aqui está como nós vamos estrutura de diretórios da nossa aplicação:

Aplicação
-> Controller
-> Model
-> View
-> index.php

 

// index.php

ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);

function autoload($className)
{
    include_once "Controller/{$className}.php";
    include_once "Model/{$className}.php";
}
spl_autoload_register("autoload");

$requestAction = !empty($_GET['action']) ? $_GET['action'] : 'Home';

switch ($requestAction) {
    case 'User':
        $controller = new UserController();
        break;
    default:
        $controller = new HomeController();
        break;
}

$controller->handleRequest();

 

// Controller/UserController.php

class UserController{
    public function handleRequest()
    {
        include "View/userView.php";
    }
}

 

// Controller/HomeController.php

class HomeController{
    public function handleRequest()
    {
        include "View/homeView.php";
    }
}

 

// View/userView.php

echo (''
    . '<h1>Web Application</h1>'
    . '<p>User View</p>'
);

 

// View/homeView.php

echo (''
    . '<h1>Web Application</h1>'
    . '<p>Home View</p>'
);

O que estamos fazendo aqui é, basicamente, obter os detalhes da página que o utilizador está a visitar a partir de $_GET[‘action’], que se o conjunto de mapas a ação de seu controlador correspondente. Se nenhuma ação for correspondido, então nós padrão para a Home do Controlador. Para cada controlador de nós temos, nós definimos uma função handleRequest() que processa o pedido e executa a aplicação de acordo, seja ele de processamento de um determinado modo de exibição, ou redirecionar o usuário para outra página (digamos, após o envio do formulário de sucesso).

Espero que, se você compreender o fluxo da aplicação que estamos construindo aqui, você vai começar a ver os benefícios de uma abordagem MVC para construir coisas. Para mim, pessoalmente, é melhor organizado e estruturado. É como mover-se de Programação Procedural de Programação Orientada a Objeto, exceto, neste caso, estamos fazendo o mesmo com a construção de nosso aplicativo.

não fomos muito em detalhes sobre o modelo parte do padrão MVC, mas esse é outro tópico completamente e algo que eu gostaria de deixar para os leitores a explorar para si. Para as peças básicas, você pode trabalhar com o seu modelo (que é usado para armazenar dados) dentro de seu controlador e passar essa modelo para o visualizar. Lembre-se que o modelo único propósito é o de gerenciar os dados, e desconhece o Controlador e o modo de Exibição. O controlador é o que colas tanto a Visão e o Modelo. E a Vista é como você representar seu modelo para o usuário. Não há absolutamente nenhuma necessidade de forçar um modelo em um modo de exibição, onde não é necessário, portanto, é possível que um ponto de vista que não dependem de um modelo.

Category(s) Design uvdesk
. . .

Comment

Add Your Comment

Be the first to comment.

css.php