⊗ppMVUFmAE 19 of 35 menu

Application du MVC en PHP

Voyons l'application conjointe de tout ce qui a été étudié. Supposons, par exemple, que nous ayons sur le site des articles-pages. Nous voulons soit afficher un article, soit afficher tous les articles. Voyons comment le faire dans notre framework.

Table en base de données

Pour commencer, créons une table pages dans la base de données. Ajoutons-y les colonnes id, title et text. Remplissons cette table avec quelques données via PhpMyAdmin.

Modèle

Créons un modèle avec une méthode pour obtenir un enregistrement et une méthode pour obtenir tous les enregistrements :

<?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"); } } ?>

Routage

Configurons le routage correspondant :

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

Contrôleur

Créons le contrôleur :

<?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 = 'Liste de toutes les pages'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Vues

Créons la vue pour la méthode one :

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

Créons la vue pour la méthode all :

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

Tâches pratiques

Supposons que vous ayez des produits dans votre base de données. Chaque produit contient un nom, un prix, une quantité et une description. Implémentez l'affichage d'un produit par id et de tous les produits de manière similaire à ce qui est fait dans la théorie.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser