مسیریابی با استفاده از router در php

در برنامه هایی که به زبان PHP نوشته میشن معمولا هر ادرس منتهی به یه فایل میشه مثلا ادرس tarhche.ir/index.php که منتهی به یه فایل php شده! در حالت عادی ما اگه بخوایم یه ادرس خاص داشته باشیم باید به کمک فایل ها و فولدرهایی که میسازیم ایجاد کنیم! مثلا اگه بخوایم سایت ما ادرسی به صورت tarhche.ir/videos داشته باشه باید یه فولدر (پوشه) با نام video بسازیم و توش یه فایل index.php قرار بدیم 😐 (سورس کد های مربوط به این اموزش رو میتونید از انتهای اموزش دانلود کنید و استفاده کنید.)

اگه یه مدت با PHP کار کنید متوجه میشید که بعله یه چیزی به نام htaccess وجود داره و باهاش میشه ادرس دهی مسیر ها رو عوض کرد! ولی یک روش بهتر وجود داره 😀 شما میتونید همه ی درخواست هایی که داده میشه رو به یه فایل بفرستید و به وسیله ی اون فایل مدیریتش کنید! حالا چجوری؟

ما یه چیزی میسازیم به نام روتر یا router و ادرس تمامی درخواست ها رو به این فایل ارسال میکنیم! بعدش با استفاده از این فایل ادرس دریافت شده رو تجزیه و تحلیل میکنیم و برحسب نیاز فایل php مورد نظر رو اجرا میکنیم!!! به این روش مسیریابی به وسیله ی router میگن 😀 حالا بیاید شما رو با نحوه ی ساخت و استفاده از router اشنا کنم.

مرحله ی اول تا اخر : ساخت router با php (حسش نبود چند مرحله ای بنویسم :-D)

برای ساخت روتر نیاز داریم تمامی درخواست ها رو به فایل خودمون ارسال کنیم! میتونیم چند خط htaccess بنویسیم تا تمامی درخواست ها به یه فایلی که مورد نظر ما هستن ارسال بشن! فرض کنید نام فایل ما route.php باشه , حالا htaccess ما به صورت زیر خواهد بود:

در دستورات بالا تمامی درخواست ها رو به فایل route.php ارسال میکنیم و ادرس درخواست شده رو به صورت متد get درون uri قرار میدیم! حالا درون فایل route.php خودمون به صورت زیر میتونیم به ادرسی که درخواست شده دسترسی داشته باشیم :

در دستورات بالا ادرس صفحه ی درخواستی رو دریافت میکنیم و توی صفحه نمایش میدیم 😀 توی url هر ادرسی که وارد کنید توی صفحه نمایش داده خواهد شد! حالا برای اینکه بتونیم ادرس های خودمون رو مدیریت کنیم میایم از یه چندتا if یا switch case استفاده میکنیم! به مثال زیر دقت کنید :

در دستورات بالا ادرس دریافتی رو مقایسه کردیم و بر حسب نیاز محتوای مورد نظر خودمون رو تولید کردیم 😀 مثلا اگه localhost/simple_route/login رو بزنید (فایلها ی من درون پوشه ی simple_route در لوکال هاست من قرار دارن) صفحه ی لاگین به شما نمایش داده خواهد شد 😀 اما من فایلی به نام login.php ندارم! خب داره جالب میشه!!!! حالا میتونید ادرس فایلها رو حتی با پسوند asp درج کنید و محتوا رو نشون بدید تا همه فک کنن برنامه رو با asp.net نوشتید! 😀

میتونید محتوا رو با استفاده از دستور include یا reqiure به صفحه اظافه کنید! به مثال زیر دقت کنید :

خب 😀 حالا با توجه به دستورات بالا اگه ادرس localhost/simple_route/register.asp رو بزنید فایل مورد نظرمون از پوشه ی view لود میشه و به کاربر نمایش داده میشه! کاربر فک میکنه سایت ما asp هست در صورتی که ما برنامه رو به زبان php نوشتیم یو هاهاها 😀

دوستان عزیز سورس مربوط به نمونه مثال های این اموزش رو میتونید از انتهای همین اموزش دانلود کنید و استفاده کنید. امیدوارم که با استفاده از ساخت روتر بتونید سایت های بهتری بسازید! کسانی که مشکل یا سوال دارن از انتهای همین اموزش مطرح کنند تا پاسخ بگیرن.

روتری که در اینجا ساخته شد خیلی ساده بود و من نخواستم شما رو درگیر برنامه نویسی کنم! هدف ما فقط و فقط اموزش بود! اما شما میتونید یه چیز بهتر و خفن تر بسازید 😀 امیدوارم که این اموزش ایده ای تازه درون شما به وجود اورده باشه! تکنیک استفاده از روتر مسئله ای جدید نیست , خیلی از فریمورک ها از این تکنیک استفاده میکنن , برای مثال فریمورک سیمفونی و لاراول و …

موفق و سربلند باشید.

سورس کد نمونه روتر ساخته شده در این اموزش
1.2 KiB
33 Downloads
اطلاعات بیشتر
به اشتراک بگذارید:Email this to someoneShare on FacebookTweet about this on TwitterShare on Google+Digg thisShare on LinkedInPin on PinterestShare on StumbleUponFlattr the authorShare on RedditBuffer this pageShare on TumblrPrint this pageShare on YummlyShare on VK

می‌خواهید دیدگاهتان را بیان کنید؟