Přiznám se že mě dost děsí design těch metod třeba ten resolver
1) metoda resolve mění vnitřní stav objektu místo aby vracela jaký immutable result
2) tím že se k resolveru přistupujeme jako ke globální proměně není problém mít kód ve stylu
$router = MVC::getRouter();
$router->resolve( $URL );
$base = $router->getBase();
someMethodCall();
$base2 = $router->getBase();
No a v metodě someMethodCall mi může kdokoli změnit stav $routeru já se to nedozvíme bude to pro mě wtf, protože v autorově podání je dependency injection jen sada globálních proměnných. Takže se ve výsledku dostanu do stavu že
$base != $base2;
Přitom by stacilo si uvědomit že úkolem routeru je routovat, ne zodpovídat "jaké je aktuální locale".
Přečteno 20 712×
Přečteno 18 551×
Přečteno 17 778×
Přečteno 17 524×
Přečteno 16 220×