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".
Tak tak.
Autor je asi dobrý manažer/podnikatel a vytvořil si něco, co mu pomáhá rychle dodávat klientům hodnotu. Na tom samozřejmě není vůbec nic špatnýho.
Ale potom bohužel dostal pocit, že ten jeho slepenec je "framework", který by měl zveřejnit. A nedokáže přijímat kritiku nebo si připustit, že ten jeho výtvor možná není až tak geniální, jak si myslel. Že jeho "design patterny" fungují jenom díky tomu, že se v PHP všechno vytváří znova na každý request a jsou principielně špatně.
Použít tohle na skutečný projekt by mohl snad jen sebevrah.
Přesně tak, autor zapomíná, že pro něj je ten Jet jednoduchý a přehledný, protože jej 10+ let vyvíjí. Stejně, jako on hned nechápe Laravel nebo Nette, tak ostatní nechápou Jet. Ostatně - on skoro každý, kdo dělá v PHP dlouho a aktivně tvoří weby, má nějaký svůj FW nebo alespoň sadu knihoven - včetně mne :). V PHP je toto dané historicky, protože dřív zkrátka téměř nic nebylo... Fakt jej ale tady nebudu prezentovat, protože určitě jsem jej nenavrhl líp než Nette nebo Laravel - to ani při komunitním vývoji nelze.
Přečteno 19 730×
Přečteno 17 665×
Přečteno 17 176×
Přečteno 16 701×
Přečteno 15 348×