⊗ppMVUFmAE 19 of 35 menu

Applicazione di MVC in PHP

Diamo un'occhiata all'applicazione congiunta di tutto ciò che è stato studiato. Supponiamo, ad esempio, che sul nostro sito ci siano alcune pagine-articoli. Vogliamo mostrare un singolo articolo oppure mostrare tutti gli articoli. Vediamo come farlo nel nostro framework.

Tabella nel DB

Per iniziare, creiamo una tabella pages nel database. Aggiungiamo le colonne id, title e text. Compiliamo questa tabella con alcuni dati tramite PhpMyAdmin.

Modello

Creiamo un modello con un metodo per ottenere un singolo record e un metodo per ottenere tutti i record:

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

Routing

Creiamo il routing corrispondente:

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

Controller

Creiamo il controller:

<?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 = 'Elenco di tutte le pagine'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Viste

Creiamo la vista per il metodo one:

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

Creiamo la vista per il metodo 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 alla pagina</td> </tr> <?php endforeach; ?> </table> </div>

Compiti pratici

Supponiamo che nel tuo database ci siano prodotti. Ogni prodotto contiene nome, prezzo, quantità e descrizione. Implementa la visualizzazione di un singolo prodotto tramite id e di tutti i prodotti in modo simile a quanto fatto nella teoria.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta