سیستم مسیریابی در AlvandCMS یکی از پیچیدهترین و قدرتمندترین اجزای هسته است که در فایل core/modules.php پیادهسازی شده. این سیستم با تابع analyzeUrl() همه درخواستهای HTTP را تجزیه و به بخشهای مناسب هدایت میکند.
معماری مسیریابی
Request URL
|
v
analyzeUrl()
|
+-- normalizePath (حذف اسلشهای اضافی)
+-- segment analysis (تجزیه بخشهای URL)
+-- folder resolution (تشخیص پوشه اصلی)
+-- database lookups (جستجوی محتوا)
+-- route resolution (تعیین مسیر نهایی)
|
v
Output Array (نتیجه نهایی)
ساختار خروجی analyzeUrl()
تابع analyzeUrl() یک آرایه شامل اطلاعات کامل مسیریابی برمیگرداند:
php
[
'folder' => 'admin|shop|blog|...',
'segments' => [...],
'second' => '...',
'slug' => '...',
'params' => [...],
'db_lookup' => [...],
'route' => '...',
'template' => '...',
'content_type' => 'post|page|product|...',
'decoded_url' => '...',
'has_farsi' => true|false,
]
انواع مسیرهای شناسایی شده
سیستم مسیریابی به طور خودکار انواع زیر را تشخیص میدهد:
- /admin/ - پنل مدیریت
- /blog/ - وبلاگ
- /shop/ - فروشگاه
- /page-slug - برگهها
- /post-slug - پستها
- /category/slug - دستهبندیها
- /author/username - نویسندگان
- /tag/slug - برچسبها
- /node-type/slug - گرههای سفارشی
- /my-account/ - حساب کاربری
- /cart - سبد خرید
- /checkout - تسویه حساب
- /api/ - درخواستهای API
قابلیت URL فارسی
AlvandCMS از URLهای فارسی با استفاده از urlencode() و urldecode() پشتیبانی میکند. پارامتر has_farsi در خروجی مسیریابی مشخص میکند که آیا URL شامل کاراکترهای فارسی است.
هوکهای مسیریابی
| هوک | نوع | توضیح |
|---|---|---|
analyze_url/seo_resolution | فیلتر | تفکیک SEO در مسیریابی مدرن |
analyze_url/result | فیلتر | تزریق اسکیما به نتیجه مسیریابی |
هدایت به کنترلرها
پس از تشخیص مسیر، سیستم فایل مناسب را از core/system/admin/, core/system/api/ یا قالبهای تم شامل میکند.