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
presentersse 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ěď.