Nevyhovující způsob načítání presenterů
- Jan Jakeš
- Člen | 177
Způsob načítání presenterů v Nette je striktně daný a podle mě
naprosto nerozšiřitelný. Už jen pokud chci mít v aplikaci namespaces a
v těchto namespaces mít i Presentery, musím si přepsat
PresenterFactory
. To se dá ještě snést, i když je to podle
mě naprosto zbytečně obtěžující záležitost, ale…
Opravdový problém přichází, když mám svůj addon a v něm bych chtěl
mít vlastní presentery. Asi mi odpovíte, že mám psát komponenty, ale ty
jsou „slabší“ než presentery, musim psát další kód pro jejich
vytváření v Presenterech, atd. Hodilo by se tedy mít možnost naroutovat na
jakoukoliv třídu. A zase byste mohli odpovědět, že tuto možnost mám a
že si můžu přepsat PresenterFactory
. Jenže já mám svůj
addon, chci ho přidat přes DI jediným řádkem kódu, a jediné, co tento
addon může udělat, je přepsat PresenterFactory
pomocí DI, což
je poněkud… naprosto špatně. (Obvzlášť kdyby se pak o to snažilo více
addonů, že…).
Můj dotaz tedy zní – plánuje se na tomto něco měnit?
Nabízí se například použití DI a možnost tahání presenterů z kontejneru, ještě lepší by byla nějaká konvence „Vendor.MyAddon.MyPresenter“, a presentery by byly v jasně definované složce v addonu, ale problém je, že Nette nemá naprosto žádnou základní podporu pro addony a nedefinuje žádné konvence a pak addony vypadají, tak jak vypadají – nejednotnost, bordel, každý addon úplně jiný, každý se úplně jinak instaluje, milion sandboxů na GitHubu, atd. a pro začátečníky je těžké se zorientovat, protože jim nikdo neříká „udělej to přesně takhle“ a teď mě napadá, že už moc odbočuju a asi by to bylo na celé nové téma, možná ho založím :)
- Jan Tvrdík
- Nette guru | 2595
Juan wrote:
Způsob načítání presenterů v Nette je striktně daný a podle mě naprosto nerozšiřitelný. Už jen pokud chci mít v aplikaci namespaces a v těchto namespaces mít i Presentery, musím si přepsat
PresenterFactory
.
Řeší 23 dní starý commit.
- Filip Procházka
- Moderator | 4668
Jakto? PresenterFactory
hledá ve složkách až potom,
co selže autoloading. Tedy tě nějaká adresářová struktura vůbec
nezajímá.
Editoval HosipLan (8. 5. 2012 18:19)
- juzna.cz
- Člen | 248
Pokud mas presentery v addonech, tak jim casto budes chtit nastavit
i nejake specialni routy. Mely by se tedy registrovat primo do
configuratoru. A behem te registrace muzes nastavit routing, mapovani
presenteru a pripadne exponovat dalsi sluzby do systemoveho kontejneru.
Pekne to ma vyresene @HosipLan v Kdyby, rikal o tom i na posledni
posledni sobote.
- Jan Tvrdík
- Nette guru | 2595
Juan wrote: Nicméně složky
presenters
se stejně nezbavím (pokud chci používat složka = namespace).
Proč bys chtěl používat takovou blbost, jako složka = namespace?
- Jan Jakeš
- Člen | 177
HosipLan: Super, díky.
juzna.cz: Routa, ale vrací pouze jméno modulu, presenteru
a parametry, ne přímo třídu, takže by asi zase došlo na modifikaci
PresenterFactory
. Kdyby celkově řeší spoustu věcí skvěle,
ale lidí píší doplňky pro Nette, ne pro Kdyby, takže tak jako tak Nette by
zde mělo udávat nějaké standardy a ulehčovat práci.
Jan Tvrdík: Asi se nechápeme? Já mluvím o dodržování PSR-0, to snad není taková blbost:)
- Jan Tvrdík
- Nette guru | 2595
Juan wrote: Jan Tvrdík: Asi se nechápeme? Já mluvím o dodržování PSR-0, to snad není taková blbost:)
Chápeme, ale Honza Marek mi zakázal odpověď.