about.php، contact.php و ... میسازی، کمکم همهچی شلوغ و سختقابلمدیریت میشه. یه Router ساده میتونه کل مسیرها رو تمیز و قابلگسترش کنه، حتی بدون استفاده از فریمورکی مثل Laravel 👌این پست بر اساس ایدهها و الگوی PSR-7 و نمونههای سادهای مثل klein.php یه روتر سبک رو نشون میده که به راحتی تو هر پروژه PHP 8 میتونی استفادهاش کنی.
ایدهی اصلی چیه؟
✅ همهی request ها از یه
index.php رد بشن (Front Controller)✅ بر اساس
REQUEST_METHOD و REQUEST_URI، تابع یا Controller مناسب صدا زده بشه✅ کدهای صفحهها بهجای پخش شدن، در توابع/کلاسها باشن
ساخت یک Router خیلی ساده
تو public روت پروژه، یه
index.php بساز و کد زیر رو بذار:<?php
declare(strict_types=1);
$routes = [
'GET' => [
'/' => function () {
echo 'Home Page';
},
'/about' => function () {
echo 'About Page';
},
],
'POST' => [
'/contact' => function () {
echo 'Form submitted';
},
],
];
$method = $_SERVER['REQUEST_METHOD'] ?? 'GET';
$uri = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH);
if (isset($routes[$method][$uri])) {
$handler = $routes[$method][$uri];
$handler();
} else {
http_response_code(404);
echo '404 Not Found';
}
الان وقتی بری به
/ یا /about یا با POST بری به /contact، روترت دقیقا میدونه چی رو اجرا کنه 🙌یه کم تمیزتر با کلاس
میتونی روتر رو تو یه کلاس بذاری (مثلا
src/Router.php) و با composer و autoload استفادهاش کنی. نمونهی خیلی شبیه به این ساختار رو تو پروژههای کوچیک GitHub مثل "simple-php-router" راحت پیدا میکنی و میتونی ایده بگیری.چرا این کار مفیده؟
• اضافه کردن route جدید فقط با یه خط تو آرایه انجام میشه 🔧
• بعدا میتونی middleware، auth، یا JSON API رو راحت اضافه کنی
• قدم اولیه برای مهاجرت به معماری تمیزتر و نزدیکتر به استانداردهایی مثل PSR هست
امتحانش کن، یه پروژه کوچیک بساز و چند تا route تعریف کن. اگه برات مفید بود، برای بقیهی PHP dev ها هم بفرست تا اونها هم از این ساختار تمیزتر لذت ببرن 👨💻👩💻
🔖 #PHP #پی_اچ_پی #PHP #Routing #Web #Backend #Modern_PHP #PSR
👤 Developix
💎 Channel: @DevelopixPHP