Corak reka bentuk Pengawal Halaman ialah pendekatan seni bina yang biasa digunakan dalam sistem berasaskan web. Ia mengatur aliran kawalan dengan mendedikasikan pengawal khusus untuk mengendalikan logik untuk halaman atau permintaan individu. Pendekatan ini membantu mengasingkan tanggungjawab, menjadikan pangkalan kod lebih mudah untuk diselenggara dan berkembang.
Dalam corak Pengawal Halaman, setiap halaman (atau sekumpulan halaman dengan gelagat yang serupa) mempunyai pengawalnya sendiri, bertanggungjawab untuk:
Pelaksanaan biasa melibatkan komponen berikut:
Aliran
Struktur Fail
/htdocs /src /Controllers HomeController.php AboutController.php /Services ViewRenderer.php /Views home.html.php about.html.php /public index.php /routes.php composer.json
Autoloader
{ "autoload": { "psr-4": { "App\": "htdocs/" } } }
composer dump-autoload
Templat
Templat untuk laman utama dan about.html.php.
<!DOCTYPE html> <html> <head> <title><?= htmlspecialchars($title) ?></title> </head> <body> <h1><?= htmlspecialchars($title) ?></h1> <p><?= htmlspecialchars($content) ?></p> </body> </html>
ViewRenderer
namespace App\Services; class ViewRenderer { public function render(string $view, array $data = []): void { extract($data); // Turns array keys into variables include __DIR__ . "/../../Views/{$view}.html.php"; } }
Pengawal Rumah
Mengendalikan logik halaman utama.
namespace App\Controllers; use App\Services\ViewRenderer; class HomeController { public function __construct(private ViewRenderer $viewRenderer) { } public function handleRequest(): void { $data = [ 'title' => 'Welcome to the Site', 'content' => 'Homepage content.', ]; $this->viewRenderer->render('home', $data); } }
MengenaiPengawal
Mengendalikan logik halaman "Perihal Kami".
namespace App\Controllers; use App\Services\ViewRenderer; class AboutController { public function __construct(private ViewRenderer $viewRenderer) { } public function handleRequest(): void { $data = [ 'title' => 'About Us', 'content' => 'Information about the company.', ]; $this->viewRenderer->render('about', $data); } }
laluan.php
Mentakrifkan pemetaan laluan kepada pengawal.
use App\Controllers\HomeController; use App\Controllers\AboutController; // Define the routes in an associative array return [ '/' => HomeController::class, '/about' => AboutController::class, ];
index.php
Titik masuk aplikasi.
/htdocs /src /Controllers HomeController.php AboutController.php /Services ViewRenderer.php /Views home.html.php about.html.php /public index.php /routes.php composer.json
Kelebihan
Kelemahan
Untuk projek yang lebih kompleks, di mana terdapat penggunaan semula logik yang ketara atau berbilang titik masuk, corak seperti Pengawal Depan atau penuh seni bina MVC mungkin lebih sesuai.
Atas ialah kandungan terperinci Corak Reka Bentuk PHP: Pengawal Halaman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!