Fat Free Framework използва $args['name'] или PARAM.name за параметри на маршрут?

В кода на Fat Free Framework и примерите онлайн понякога виждам URL параметри, посочени по следния начин:

route_func($f3, $args) {  
     echo $args['name'] 
}

виждам също:

route_func($f3, $args) {  
    $param=$f3->get('PARAMS.name');      
    echo $param;
}

Кой метод е за предпочитане? Има ли някакви предупреждения към едното или другото?


person ethanpil    schedule 12.05.2014    source източник
comment
излишни разходи за инстанциране на обекта и извикването на метода. леко намаляване на скоростта. В противен случай това е опа и по-лесен за използване код срещу отгатване дали ключът съществува в масива.   -  person user3587554    schedule 12.05.2014


Отговори (1)


Променливата PARAMS може да бъде достъпна от всяко място в кода, така че $f3->get('PARAMS.name') работи навсякъде.

Както и да е, за удобство, по време на маршрутизиране параметрите на маршрута се предават на манипулатора на маршрута. Така че можете да спестите един ред код, като използвате втория аргумент, предаден на манипулатора на маршрута.

С други думи, двата примера, които предоставихте, са еквивалентни, така че изберете този, който разбирате най-добре.

Вижте този отговор за повече подробности относно аргументите, предавани по време на маршрутизиране.

ЗАБЕЛЕЖКА:

Както предложи @user3587554, двата синтаксиса се различават при третирането на несъществуващи ключове: $args['name'] хвърля грешка, докато $f3->get('PARAMS.name') връща NULL. Така че, за да бъде напълно идентичен, първият синтаксис трябва да бъде @$args['name']. Но през повечето време тази предпазна мярка е безполезна, тъй като няма съмнение относно името(ата) на параметъра.

person xfra35    schedule 12.05.2014