TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #108 522
اگه برای هر صفحه‌ی پروژه‌ی PHP خودت یه فایل جدا مثل 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
  • 👍 5
More from @developixphp
  1. Sep 26, 2026این کد موقع اجرا چه خروجی‌ای می‌ده و مشکلش کجاست؟ 🔖 #PHP #پی_اچ_پی 👤 Developix 💎 Channe…
  2. Sep 25, 2026🔥 پکیج: قراردادهای ترجمه سیمفونی اگر کد PHP را برای چندزبانگی می‌نویسید، بهتر است منطق بر…
  3. Sep 16, 2026🚀 &rlm;LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  4. Sep 11, 2026ارسال ایمیل تأیید ثبت‌نام، بازیابی رمز عبور یا نوتیفیکیشن سفارش، تقریباً توی هر پروژه‌ PHP…
  5. Sep 10, 2026برنامه نویسی سوکت در PHP بخش اول عبارت دیگر در ارتباط های غیر سوکت برای ارسال یک پالس از س…
  6. Aug 31, 2026🔥 پکیج: استاندارد PSR-11 برای Container استاندارد PSR-11 فقط یه interface مشترک برای Cont…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →