چند مطلب مهم و پایه ای فریم ورک فت فری

چند مطلب مهم و پایه ای فریم ورک فت فری

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

در حالت عادی زمانی که شما یک فایل 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@example.com

منبع اصلی


Leave a Reply