آموزش روتینگ با PHP ( مسیریابی صفحات )

آموزش روتینگ با PHP ( مسیریابی صفحات )Reviewed by کارگاه توسعه on Dec 12Rating:

در این مقاله قصد داریم به آموزش روتینگ با PHP بپردازیم و نحوه صحیح مسیریابی صفحات وب و ریدایرکت کردن آدرس ها با استفاده از .htaccess را مورد بررسی قرار دهیم .

اگر قصد طراحی یک CMS اختصاصی را داشته باشید ، حتما به این چالش برخورده اید که چگونه میتوان صفحات سایت را مسیریابی یا روتینگ نمود ، اینکار در فریم ورک محبوب PHP یعنی لاراول به خوبی انجام می شود ، اما اگر نخواهید از لاراول استفاده کنید باید آنرا بصورت دستی با زبان PHP تعریف کنید .

۱- مرحله اول :: ریدایرکت تمام URL ها به فایل روتر

اولین مرحله برای ساخت سیستم روتینگ ، این است که تمام URL های دریافتی را به یک فایل تصمیم گیرنده منتقل کنید . این فایل تصمیم میگیرد که چه صفحه ای را باید نمایش دهد .

میتوانیم اسم آنرا router.php بنامیم ( نام آن فرقی نمی کند و میتوانید هر نام دیگری را انتخاب کنید )

برای اینکار ، می بایست یک فایل .htaccess در روت ( ریشه اصلی ) سایت خود ایجاد کرده و محتوای زیر را درون آن قرار دهیم .

با استفاده از این کد در فایل .htaccess تمام URL ها به فایل router.php منتقل می شود ( نام فایل روتر در خط پنجم مشخص شده router.php )

توجه : طبق کد بالا ، فایل router.php نیز باید در ریشه اصلی سایت ساخته شود .

۲- مرحله دوم :: تعریف تابع مسیریاب یا همان روتر

این کد را میتوانیم درون فایل router.php که قبلا ایجادش کرده بودیم ، قرار دهیم .

تابع url_route وظیفه جداسازی اجزای url بر اساس علامت / را دارد . یعنی کلماتی که با / جداسازی می شوند را پیدا کرده و آنرا در قالب یک آرایه بر میگرداند .

تابع ROUTE وظیفه اصلی مسیریابی و روتینگ را دارد . این تابع سه پارامتر را دریافت می کند تا عمل روتینگ را به درستی انجام دهد .

نکته قابل توجه این تابع اینجاست که اسلش ( / ) اضافی در انتهای URL تاثیری روی کارکرد این تابع نمی گذارد و اسلش های اضافی را نادیده می گیرد .

 

۳- مرحله اخر :: اجرای تابع ROUTE() برای روتینگ

هم اکنون به مرحله اخر روتینگ رسیدیم 🙂

کافیست تابع ROUTE() را صدا زده و ۳ پارامتر زیر را ارسال کنید .

توجه : تابع ROUTE() را درون فایل router.php که در ریشه اصلی سایت قرار دارد صدا بزنید .

 

پارامتر اول :: URL موردنظر

در پارامتر اول ، آدرس موردنظر قرار می گیرد ؛ بطور مثال اگر بخواهیم با وارد کردن آدرس site.com/welcome یک فایل خاص اجرا شود ، عبارت welcome/ را وارد می کنیم .

 

پارامتر دوم :: مسیر دایرکتوری فایل

در این پارامتر ، مشخص میکنیم فایلی که قصد اجرا کردن آنرا داریم در چه دایرکتوری قرار دارد .

اگر فایل موردنظر درون دایرکتوری قرار دارد ، تنها مسیر آن دایرکتوری را وارد می کنیم ( همانند کد زیر )

توجه داشته باشید ، اگر فایل مورد نظر در ریشه اصلی سایت ( روت ) قرار داشت ، پارامتر دوم را یک رشته خالی قرار دهید .

پارامتر سوم :: نام فایل 

در این پارامتر نام فایل را وارد می کنیم .

 

۴- مرحله چهارم :: شناسایی صفحات پیدا نشده یا همان ۴۰۴

فرض کنید ۳ بار از تابع ROUTE استفاده کردیم ، اما URL که کاربر وارد کرده بود مطابق با هیچ یک از آنها نبود .

بنابراین باید بررسی کنیم اگر آدرسی که کاربر وارد کرده بود مطابق با هیچ یک از موارد تعریف شده نبود ، صفحه ۴۰۴ نمایش داده شود .

برای اینکار ، کد زیر را در انتهای فایل router.php قرار دهید ، شما به جای چاپ کردن کلمه ۴۰۴ ! میتوانید صفحه ۴۰۴ اختصاصی خود را ضمبمه کنید .

 

تمام شد 🙂

حالا اگر آدرس /welcome را درون سایت خود اجرا کنید ، فایل welcome.php را از دایرکتوری directory برای شما اجرا می کند .

شما میتوانید به تعداد بی نهایت تابع ROUTE را صدا زده و برای مسیر های مختلف مسیریابی خود را انجام دهید .

روشی که معرفی شد ، نمونه ساده ای از روتینگ با PHP بود ، شما می توانید امکانات حرفه ای تری به آن اضافه کنید و آنرا به اشکال مختلفی توسعه دهید .

در ضمن فراموش نکنید در صورت داشتن سوال در این زمینه ، میتوانید آنرا از طریق کامنت مطرح کنید ::)