MVC در PHP قسمت دوم :: Router
|
11-27-2013, 02:50 PM
ارسال: #1
|
|||
|
|||
MVC در PHP قسمت دوم :: Router
سلام
در پست قبلی درمورد معماری MVC و مزایای اون باهم صحبت کردیم.در این پست و چند پست آینده سعی میکنیم باهم یک فریم ورک سه لایه با معماری MVC بسازیم.برای اینکه بتونید با این آموزشها پیش برید باید با مباحث شیء گرایی در PHP آَشنایی داشته باشید. شروع کار یکی از مهمترین قسمتهای پیاده سازی MVC در وب مسیریابی یا Routing میباشد.این یعنی اینکه با استفاده از درخواستی که کاربر داره بتونیم کنترلر ، مدل و ویو مورد نظر رو لود و اجرا کنیم. درخواست کاربر به وسیله URL ارسال میشه.به عنوان مثال اگر کاربر روی لینک زیر کلیک کنه : 1 دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید. در این معماری باید به این شکل باهاش بخورد کنیم : article نام کنترلر view نام اکشن یا متدی که در کنترلر article قرار داره و قسمت بعدی پارامترهایی که به متد view ارسال میشه رو مشخص میکنه. برای مسیریابی یا routing در فریم ورک ها کلاس با نام Routing وجود داره که این کار رو انجام میده.مسیریابی در فریم ورکهای مختلف به روشهای متفاوتی پیاده سازی شده.یکی از مسیریابی دستی استفاده کرده یکی از مسیریابی اتوماتیک و بیشتر فریم ورکها هردو امکان رو به کاربر میدن ما برای فریم ورکمون از مسیریابی اتوماتیک! استفاده میکنیم. برای پیاده سازی مسیریابی باید در فایل htaccess یه سری خطوط رو اضافه کنیم : کد php: <IfModule mod_rewrite.c> یک فایل با نام index.php بسازید و کدهای زیر رو داخلش بنویسید : کد php: <?php یک ثابت برای نگهداری ” جداکننده پوشه ها ” به این خاطر که در لینوکس و ویندوز این کاراکتر فرق داره. در لینوکس از اسلش ( / ) و در ویندوز از بک اسلش ( \ ) استفاده میشه. ثابت ROOT برای نگهداری مسیر اصلی فریم ورک یک فایل در پوشه library با نام Router.php بسازید و محتویات زیر رو داخلش قرار بدید : کد php: <?php این کلاس برای مسیر یابی به کار میره.یک متد با نام route که یک پارامتر میگیره.پارامتر ارسالی همون url ی هست که کاربر درخواست کرده. ابتدا url رو به وسیله تابع explode به آرایه تبدیل میکنیم. قسمت اولش میشه نام کنترلرمون . قسمت دومش میشه نام تابع یا متدی که کاربر درخواست کرده. اگر هرکدوم وجود نداشته باشن به صورت پیش فرض کنترلر Index و متد Index اجرا میشه. بقیه قسمتها هم به عنوان پارامتر در نظر گرفته میشن. بعدش کلاس کنترلر مورد نظر رو از پوشه app/contoller/ لود میکنیم . ازش یک شی میسازیم و با تابع call_user_func_array متد مورد نظر رو با پارامترهایی که داریم اجرا میکنیم. دقت کنید که نام کلاس کنترلر باید به این صورت باشه : IndexController و نام فایلش باید اینجوری باشه : index.php خی حالا تغریبا قسمت اول کارمون تمومه و برای تست یک پوشه با نام app بسازید و توی این پوشه یکی دیگه با نام controller بسازید. یک فایل با نام article.php ایجاد کنید و محتویات زیر رو داخلش بنویسید : کد php: <?php حالا آدرس زیر رو باز کنید : ۱۲۷٫۰٫۰٫۱/article/view/32 خب اولین قسمت کارمون تموم شد در پستهای بعدی لایه مدل و ویو رو هم باهم میسازیم |
|||
|
کاربرانِ درحال بازدید از این موضوع: 2 مهمان