Toepassing van MVC in PHP
Kom ons kyk na die gesamentlike toepassing van alles wat geleer is. Laat ons byvoorbeeld sê ons het 'n paar artikelbladsye op ons webwerf. Ons wil óf een artikel wys, óf alle artikels wys. Kom ons kyk hoe om dit te doen in ons raamwerk.
Tabel in die Databasis
Om te begin, skep 'n tabel pages
in die databasis. Voeg kolomme id,
title en text by. Vul hierdie
tabel met 'n paar data
via PhpMyAdmin.
Model
Laat ons 'n model skep met 'n metode om een rekord te kry en 'n metode om alle rekords te kry:
<?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");
}
}
?>
Roete-bepaling
Laat ons die ooreenstemmende roete-bepaling doen:
<?php
use \Core\Route;
return [
new Route('/page/:id', 'page', 'one'),
new Route('/pages/', 'page', 'all'),
];
?>
Beheerder
Laat ons 'n beheerder skep:
<?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 = 'Lys van alle bladsye';
$pages = (new Page) -> getAll();
return $this->render('page/all', [
'pages' => $pages,
'h1' => $this->title
]);
}
}
?>
Uitsigte
Laat ons 'n uitsig skep vir die one metode:
<h1><?= $h1; ?></h1>
<div id="content">
<?= $text; ?>
</div>
Laat ons 'n uitsig skep vir die all metode:
<h1><?= $h1; ?></h1>
<div id="content">
<table>
<tr>
<th>id</th>
<th>titel</th>
<th>skakel</th>
</tr>
<?php foreach ($pages as $page): ?>
<tr>
<td><?= $page['id']; ?></td>
<td><?= $page['title']; ?></td>
<td><a href="/page/<?= $page['id']; ?>/">skakel na bladsy</td>
</tr>
<?php endforeach; ?>
</table>
</div>
Praktiese take
Laat ons sê jy het produkte in jou databasis.
Elke produk bevat 'n naam, prys en
hoeveelheid, beskrywing. Implementeer die vertoning van een
produk volgens id en alle produkte soortgelyk
aan hoe dit in die teorie gedoen is.