⊗ppMVUFmAE 19 of 35 menu

Aplicación de MVC en PHP

Veamos la aplicación conjunta de todo lo estudiado. Supongamos, por ejemplo, que tenemos algunas páginas de artículos en nuestro sitio web. Queremos mostrar un artículo o mostrar todos los artículos. Veamos cómo hacerlo en nuestro framework.

Tabla en la base de datos

Para empezar, creemos la tabla pages en la base de datos. Añadamos las columnas id, title y text. Llenemos esta tabla con algunos datos a través de PhpMyAdmin.

Modelo

Hagamos un modelo con un método para obtener un registro y un método para obtener todos los 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"); } } ?>

Enrutamiento

Hagamos el enrutamiento correspondiente:

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

Controlador

Hagamos el 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 las páginas'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Vistas

Hagamos la vista para el método one:

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

Hagamos la vista para el método all:

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

Tareas prácticas

Supongamos que tienes productos en tu base de datos. Cada producto contiene nombre, precio, cantidad y descripción. Implementa la visualización de un producto por id y de todos los productos de manera similar a como se hizo en la teoría.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar