⊗ppMVUFmAE 19 of 35 menu

Εφαρμογή του MVC σε PHP

Ας δούμε την κοινή εφαρμογή όλων των γνωστών πραγμάτων. Ας υποθέσουμε, για παράδειγμα, ότι έχουμε κάποια άρθρα-σελίδες στον ιστότοπό μας. Θέλουμε είτε να εμφανίσουμε ένα άρθρο, είτε να εμφανίσουμε όλα τα άρθρα. Ας δούμε πώς μπορούμε να το κάνουμε στο πλαίσιό μας.

Πίνακας στη ΒΔ

Για να ξεκινήσουμε, ας δημιουργήσουμε τον πίνακα pages στη βάση δεδομένων. Θα προσθέσουμε τις στήλες id, title και text. Ας γεμίσουμε αυτόν τον πίνακα με κάποια δεδομένα μέσω του PhpMyAdmin.

Μοντέλο

Ας φτιάξουμε ένα μοντέλο με μια μέθοδο για την ανάκτηση μιας εγγραφής και μια μέθοδο για την ανάκτηση όλων των εγγραφών:

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

Δρομολόγηση

Ας φτιάξουμε την αντίστοιχη δρομολόγηση:

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

Ελεγκτής

Ας φτιάξουμε τον ελεγκτή:

<?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 = 'Λίστα όλων των σελίδων'; $pages = (new Page) -> getAll(); return $this->render('page/all', [ 'pages' => $pages, 'h1' => $this->title ]); } } ?>

Προβολές

Ας φτιάξουμε την προβολή για τη μέθοδο one:

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

Ας φτιάξουμε την προβολή για τη μέθοδο all:

<h1><?= $h1; ?></h1> <div id="content"> <table> <tr> <th>id</th> <th>title</th> <th>σύνδεσμος</th> </tr> <?php foreach ($pages as $page): ?> <tr> <td><?= $page['id']; ?></td> <td><?= $page['title']; ?></td> <td><a href="/page/<?= $page['id']; ?>/">σύνδεσμος προς τη σελίδα</td> </tr> <?php endforeach; ?> </table> </div>

Πρακτικές Ασκήσεις

Ας υποθέσουμε ότι έχετε προϊόντα στη βάση δεδομένων σας. Κάθε προϊόν περιέχει τίτλο, τιμή και ποσότητα, περιγραφή. Υλοποιήστε την εμφάνιση ενός προϊόντος κατά id και όλων των προϊόντων παρόμοια με αυτό που γίνεται στη θεωρία.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη