PHP හි MVC භාවිතය
අප ඉගෙන ගත් සියල්ල එකට භාවිතා කරන ආකාරය බලමු. උදාහරණයක් ලෙස, අපගේ වෙබ් අඩවියේ යම් ලිපි පිටු ඇතැයි සිතමු. අපට එක් ලිපියක් පෙන්වීමට හෝ සියලුම ලිපි පෙන්වීමට අවශ්යයි. අපගේ රාමුව තුළ මෙය කරගන්නේ කෙසේදැයි බලමු.
දත්ත සමුදායේ වගුව
පළමුව, දත්ත සමුදායේ 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 අනුව එක් නිෂ්පාදනයක් සහ සියලු නිෂ්පාදන එළිදක්වන්න.