Složené závorky v boostrapu

- _Martin_
 - Generous Backer | 679
 
Ahoj,
stáhl jsem si dnes alpha verzi Nette a objevil jsem v bootstrapu
následující zápis:
// Setup router
{
	$router = $application->getRouter();
	$router[] = new NRoute('index.php', 'Homepage:default', NRoute::ONE_WAY);
	$router[] = new NRoute('<presenter>/<action>[/<id>]', 'Homepage:default');
};
Připadám si jak naprostý začátečník, když se ptám: „k čemu jsou tam ty složené závorky“?

- Mikulas Dite
 - Člen | 756
 
K ničemu, pouze vizuálně oddělují bloky kódu. Na rozdíl třeba od C++ neoddělují scope, takže
<?php
$scope = 0;
{
	$scope = 1;
}
var_dump($scope);
vypíše 1. Každopádně v nejnovější
revizi to už není, takže to byl jenou nějaký pokus.
Edit: Jo aha, to jsem mluvil trošku mimo, protože jsi neuvedl celý ten kód ; ) Je tam použitá lambda funkce, též anonymní funkce. Tady je teda scope oddělený, viz ty manuály.
Editoval Mikulas Dite (19. 3. 2011 15:37)

- Patrik Votoček
 - Člen | 2221
 
je tam registrována jako callback (anonymní fce) kterej se spustí až při spuštění aplikace. tj routy se nastaví až když dojde ke spuštění applikace.

- _Martin_
 - Generous Backer | 679
 
Ten kód jsem uvedl celý. Já totiž neměl na mysli vývojovou verzi, ale tu relativně stabilní (s označením Alpha 2). V ní jsou na rozdíl od vývojové jen složené závorky bez callbackou. Proto jsem se divil, k čemu to tam je.
Edit: už začínám tušit – stahoval jsem prefixovanou verzi a on to tak nejspíš schroupal převodník z pět-trojkové. Neměl by to spíš nahradit normální funkcí? Bug nebo feature?
Editoval _Martin_ (20. 3. 2011 21:56)