Criando templates - Entendendo o padrão MVC na prática - Parte 11 Artigo

Conheça os cursos gratuitos do WebDevBr! - Inscreva-se!


Este artigo foi publicado a 2 anos, 5 meses, 2 semanas, 6 dias atrás.

Esta não é a última parte desta série, a minha vontade era voltar e reescrever tudo, mas não posso, seria um desrespeito com quem vem acompanhando desde a primeira publicação em 24 de outubro de 2013. Muita coisa mudou por aqui e quero que vocês acompanhem, então com o fim desta etapa vou começar outra (que terminarea rápido, prometo!) e vamos voltar e refatorar tudo o que foi feito utilizando padrões rescentes e boas práticas.

Os outros artigos desta série.

No artigo anterior criamos (de forma prática até) o Controller e a Model do nosso framework, então vamos criar a última camada que falta, a view.

Gostou deste artigo?

Receba atualizações semanais com novos artigos do WebDevBr e outras dicas!

Mas antes, precisamos fazer uma correção acesse o arquivo em Library/Erik/Core/Master/View.php e nas linhas 32 e 42 troquem APP por App (falha minha).

Comece criando um diretório chamado View dentro de App/Modulos/Index, e vamos criar um arquivo chamado index.php (que é o nome exato do método index() dentro do *Controller *seguido de '.php').

<h1>Framework criado por Erik Figueiredo!</h1>
<pre>
<?php
    print_r($teste);
?>

Perfeito, agora  vamos criar um diretório para o tema em App/Templates/Default/, assim temos a liberdade de trabalhar página a página com um código diferente e tudo dentro de um tema comum.

Precisamos ter, obrigatóriamente, um arquivo chamado index.php dentro deste diretório, e ele vai ter o nosso Html, ia ficar ilegível eu passar tudo aqui, então vou mandar o link no GitHub e você baixa de lá, alias, baixe o pacote completo e copie o diretório App/Templates/Default/ para dentro do seu projeto: https://github.com/erikfig/Frameworks/tree/1.0

Dentro do arquivo index.php encontramos:

$this->templateUrl($string); - Gera o URI até o tema, então podemos concatenar com algum resource (imagem, javascript, css, enfim, qualquer coisa), por exemplo:

<link href="<?php echo $this->templateUrl('css/bootstrap.min.css');?>" rel="stylesheet" media="screen">
<link href="<?php echo $this->templateUrl('css/tema.css');?>" rel="stylesheet" media="screen">

$this->base_url; - Retorna a URL base até a home do site.
$this->conteudo(); - Imprime o conteúdo, ou seja, a saída da *action* (como são chamados os métodos dentro do *Controller*), ou seja, aquele *index.php* que criamos em *App/Modulos/Index*.

Se você precisar de uma nova página, por exemplo, para adicionar novos registros através da url /index/add é simples:

  • No controller você cria um action (método) chamado add()
  • Em App/Modulos/Index você cria um arquivo chamado add.php

Muito mais fácil trabalhar assim né.

E o que vem ai?

Estou preparando a próxima versão desta série, e você pode acompanhar no GitHub, vai ter até um arquivo para rodar o servidor embutido (como é nos grandes frameworks, rsrs), fica esperto e se cadastra no WebDevBr pra ser avisado.


Cursos relacionados


* Parcelamento apenas cartão de crédito! Pode haver uma pequena variação no parcelamento em relação a simulações apresentadas!