چند مطلب مهم و پایه ای فریم ورک فت فری
Category : موارد دیگر
در این پست با نحوه آدرس دهی و دریافت پارامتر از سمت کلاینت اشنا خواهیم شد.
در حالت عادی زمانی که شما یک فایل php را در سرور خود قرار میدهید ( فرض میکنیم اسم فایل php ما nitro.php است ) زمانی که می خواهیم این فایل را اجرا کنیم باید ادرس url رو به این صورت وارد کنیم :
http://yoursite.ir/file/nitro.php
یکی از امکانات فریم ورک ها قابلیت مسیردهی ( routing ) انها است که قابلیت انعطاف بالایی به ما می دهد برای مثال به راحتی می توانید به هر شکل که دوست دارید مسیر دهی به فایل php را انجام دهید برای مثال:
http://yoursite.ir/nitro
اگر روش پیاده سازی فریم ورک را نخواندید برای اموزش روی لینک زیر کلیک کنید
اموزش پیاده سازی و نصب fatfree framework
در زمان نصب فریم ورک در ان فایلی به اسم routes.ini ساختیم در این فایل می تونیم تنظیمات مربوط به مسیر دهی را به سادگی انجام بدیم به کد زیر دقت کنید
[routes] ;base routes GET /=MainController->main GET /hello=MainController->showHello
کد های بالا را که در فایل routes.ini قرار داده ایم این قسمت از کد
GET /=MainController->main
ادرس اصلی سایت مارا نشان می دهد (yoursite.ir) هر کاربری که ادرس سایت را وارد کند به فایلی یه اسم MainController.php در فولدر controllers هدایت می شود و درون این فایل تابع main فراخوانی می شود در کد یعدی :
GET /hello=MainController->showHello
در این کد تعریف کردیم زمانی که کاربر ادرس سایت را به این صورت وارد کرد (yoursite.ir/hello) به فایل MainController.php هدایت شد و تابع showHello را اجرا می کند
کد MainController.php هم که در مسر app/controllers قرار دارد به صورت زیر است
<?php class MainController { function showHello(){ echo 'Hello NitroCode.ir :)'; } function main(){ echo 'OK'; } }
حالا می خواهیم یک پارامتر ورودی بگیریم مثلا اسم یک شخص رو میخوایم به عنوان ورودی بگیریم و نمایش بدیم
http://yoursite.ir/ali
حالا برای این که بتونیم نام وارد شده در url سایت رو دریافت کنیم کد فایل routing.ini رو به صورت زیر زیر تغییر می دهیم
[routes] ;base routes GET /@name=MainController->main POST /@name=MainController->main
و کد فایل MainController.php رو به صورت زیر تغییر می دهیم
<?php class MainController { function main($f3,$params){ echo $params['name']; } }
با انجام این تغییرات و اجرای برنامه می بینید که اسم ali در مرورگر چاپ می شود
نحوه دریافت پارامتر به صورت POST و یا GET هم به صورت زیر انجام می شود
<?php class MainController { function main($f3){ $name= $f3->get("GET.name"); $name2= $f3->get(POST.name); } }
که متغیر name رو به روش GET و name2 را به روش POST گرفتیم مثال پایینم برای درک بهتر به کار بردیم
routes.ini
[routes] ;base routes GET /@email=MainController->main
MainController.php
<?php class MainController { function main($f3){ $email= $f3->get("GET.email"); } }
url example : http://nitrocode.ir/[email protected]