⊗ppMVUFmAE 19 of 35 menu

Aplicação do MVC em PHP

Vamos dar uma olhada na aplicação conjunta de tudo o que foi estudado. Suponha, por exemplo, que nós tenhamos alguns artigos/páginas no nosso site. Nós queremos mostrar um único artigo ou mostrar todos os artigos. Vamos ver como fazer isso no nosso framework.

Tabela no BD

Para começar, vamos criar uma tabela pages no banco de dados. Vamos adicionar as colunas id, title e text. Vamos preencher esta tabela com alguns dados via PhpMyAdmin.

Modelo

Vamos criar um modelo com um método para obter um único registro e um método para obter todos os registros:

<?php namespace Project\Models; use \Core\Model; class Page extends Model { public function getById($id) { return $this->findOne("SELECT * FROM pages WHERE id=$id"); } public function getAll() { return $this->findMany("SELECT id, title FROM pages"); } } ?>

Roteamento

Vamos criar o roteamento correspondente:

<?php use \Core\Route; return [ new Route('/page/:id', 'page', 'one'), new Route('/pages/', 'page', 'all'), ]; ?>

Controlador

Vamos criar o controlador:

<?php namespace Project\Controllers; use \Core\Controller; use \Project\Models\Page; class PageController extends Controller { public function one($params) { $page = (new Page) -> getById($params['id']); $this->title = $page['title']; return $this->render('page/one', [ 'text' => $page['text'], 'h1' => $this->title ]); } public function all() { $this->title = 'Lista de todas as páginas'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Views

Vamos criar a view para o método one:

<h1><?= $h1; ?></h1> <div id="content"> <?= $text; ?> </div>

Vamos criar a view para o método all:

<h1><?= $h1; ?></h1> <div id="content"> <table> <tr> <th>id</th> <th>title</th> <th>link</th> </tr> <?php foreach ($pages as $page): ?> <tr> <td><?= $page['id']; ?></td> <td><?= $page['title']; ?></td> <td><a href="/page/<?= $page['id']; ?>/">link para a página</td> </tr> <?php endforeach; ?> </table> </div>

Tarefas Práticas

Suponha que você tenha produtos no seu banco de dados. Cada produto contém um nome, um preço, uma quantidade e uma descrição. Implemente a exibição de um único produto por id e de todos os produtos de forma semelhante ao que foi feito na teoria.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar