⊗ppMVUFmAE 19 of 35 menu

Aplicarea MVC în PHP

Să analizăm aplicarea în comun a tuturor cunoștințelor învățate. Să presupunem, de exemplu, că pe site-ul nostru există niște articole-pagini. Noi vrem fie să afișăm un articol, fie să afișăm toate articolele. Să analizăm cum putem face acest lucru în framework-ul nostru.

Tabel în baza de date

Pentru început, să creăm tabelul pages în baza de date. Să adăugăm coloanele id, title și text. Să completăm acest tabel cu niște date prin PhpMyAdmin.

Model

Să creăm un model cu o metodă pentru obținerea unei înregistrări și o metodă pentru obținerea tuturor înregistrărilor:

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

Rutare

Să creăm rutele corespunzătoare:

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

Controller

Să creăm controller-ul:

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

Vizualizări

Să creăm vizualizarea pentru metoda one:

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

Să creăm vizualizarea pentru metoda 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 către pagină</td> </tr> <?php endforeach; ?> </table> </div>

Sarcini practice

Să presupunem că în baza de date aveți produse. Fiecare produs conține denumirea, prețul, cantitatea și descrierea. Implementați afișarea unui produs după id și a tuturor produselor similar cu cum este făcut în teorie.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge