Jak nastavit namespace presenterům?
- Šaman
- Člen | 2666
Ahoj, už jsem zjistil, že presenterům (pokud nepoužívám moduly) není dobré nastavovat namespace. Není to dobré proto, že pak aplikace nefunguje. Nebo jsem něco přehlíd a už to jde?
Rád bych měl presentery pro pořádek v namespace alespoň ‚Projekt‘,
nebo raději ‚Projekt\Application‘, když například komponenty mám v
‚Projekt\Controls‘.
V případě modulů by mi stávající chování vyhovovalo, jen by se modul
přidal za defaultní NS – ‚Projekt\Application\Frontend‘.
Dá se toho nějak jednoduše docílit? Pokud ne, nemyslíte, že by to bylo dobré?
Díky.
- David Matějka
- Moderator | 6445
o formatovani tridy se stara trida implementujici rozhrani Nette\Application\IPresenterFactory s defaultni implementaci Nette\Application\PresenterFactory – tu si muzes zdedit a nejak to upravit
nebo pouzit sofistikovanejsi reseni z nelly od vrtaka
nezapomen to potom spravne registrovat jako sluzbu, viz https://github.com/…xtension.php#L46
- Šaman
- Člen | 2666
Díky. O PresenterFactory vím, že to má Nella vyřešené, to jsem
nevěděl.
Ale nechci nějak výrazně upravovat chování Nette, protože až projekt
odevzdám, může se v něm šťourat i někdo jiný. Snažím se to psát co
nejméně WTF.
Takže to asi nechám bez NS, jen mě zajímal váš názor na beznamespacové
presentery. IMHO se mi nelíbí.
- Jan Tvrdík
- Nette guru | 2595
Nechapu. Nelibi se ti presentery bez namespace, ale cisty zpusob, jak toho dosahnout, odmitas.
- Šaman
- Člen | 2666
Rozhodně neodmítám, jenom do projektu na kterém teď dělám nechci
zavádět úpravy v chování samotného Nette, protože nevím, kdo ho
převezme.
A proto tenhle dotaz píšu do diskuze o vývoji – zajímalo mě jestli je
požadavek na NS presenterů blbost, nebo naopak jestli by nebylo dobré
implementovat přímo do Nette.
Každopádně díky @matej21 za stručnou a zároveň vyčerpávající odpověď, bude se hodit v jiných projektech.
- Vojtěch Dobeš
- Gold Partner | 1316
Ještě doplním: jak poukazuje Honza, tak napsat si vlastní
PresenterFactory
není nic proti ničemu, rozhodně nejde
o měnění fungování Nette. Je to asi taková změna jako jakýkoliv
vlastní PHP kód.
V masteru je již i commit, který zavádí snadné nastavení vlastního formátu presenterových jmen v konfiguraci, takže v budoucnu nás čeká pro namespaceované presentery luxusní podpora.
- Šaman
- Člen | 2666
- Řeknu to jinak. Nechci měnit konvence, protože správa projektu asi nebude na mě. Navíc to má sloužit i jako ukázková aplikace. Takže by bylo ideální, aby bylo všechno Nette best practise, aby případný člověk po mě nemusel kontrolovat co všechno z Nette mám přetížené. Dál bych tuto debatu nerozvíjel, protože se netýká Nette, ale řízení tohoto jednoho projektu.
- Ad. nativní podpora v Nette: Kontroloval jsem repozitář, ale tuhle úpravu jsem v posledních commitech nenašel – nevíš jak má fungovat? Nebo který je to commit? Zatím vyvíjím na .dev verzi, tak bych to rovnou vyzkoušel. Díky.
- Vojtěch Dobeš
- Gold Partner | 1316
Děkuji Hosiplanovi za pátrací akci, do které se mi opravdu, ale opravdu nechtělo :).