Modulární aplikace: CompilerExtension vs config.neon

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mirimCZ
Člen | 24
+
0
-

Ahoj,

předělávám aplikaci do modulární. Modulů je mnoho: Article, Fotogalery, Whatever. Každý modul je vždy rozdělen na dva submoduly – Public a Admin. Každý modul bude mít pochopitelně svoje specifika – služby, routy, parametry. Všechny moduly budou „dědit“ od SystemModulu (mohl by se jmenovat i CoreModule).

Proč používat CompilerExtension když tyhle potřebné věci můžu definovat v configu pro každý modul a v system configu jen includnout configy pro všechny dostupné moduly?

Předem díky za odpovědi,
přeji hezký den :)

____

Nejsem si úplně jistej třeba nastavením rout v configu ale AD1 jsem dneska našel řešení RouterFactory, které asi ani nebude potřebovat vlastní router pro každý modul pokud budu dodržovat convention before configuration (super poučka, doporučuju dodržovat) AD2 viděl jsem tu na fóru (ale v praxi nezkoušel), že by routy měli jít nastavovat i v configu.

Editoval mirimCZ (21. 5. 2014 15:36)

pepakriz
Člen | 246
+
0
-

Zde je vysvětleno, proč je lepší použít compilerExtension místo include: https://forum.nette.org/…e-promennych

mirimCZ
Člen | 24
+
0
-

Dík. A mimochodem koukal jsem i na tvůj framework jak řeší moduly atp :) dík za inspiraci.

Taky by se hodilo ještě někde zvýraznit tehle topic od Davida (https://forum.nette.org/…racni-soubor). Bylo by dobré kdyby ten příklad byl i na stránce s dokumentací (https://doc.nette.org/…n/extensions) můžu to tam nějak přidat? (ano, můžu https://doc.nette.org/…ocumentation)

Vyřešilo to všechno moje váhání, ale našel jsem to samozřejmě až teď. Servisy se tak dají načíst pohodlně i z neonu, což byla moje podmínka.

Editoval mirimCZ (21. 5. 2014 21:45)

mirimCZ
Člen | 24
+
0
-

Z https://forum.nette.org/…e-promennych, nechci oživovat tak staré téma, ještě k tomu s OT dotazem:

enumag napsal(a):

Knihovny v libsDir by spíš než svůj vlastní config.neon měly mít vlastní CompilerExtension.

Filip Procházka napsal(a):

Přesně tak. Není důvod vkládat configy vendorů.

Pokud vycházím z toho, že každý modul je CompilerExtension a tedy se dá považovat za vendor, vyvstává otázka: Proč?

Editoval mirimCZ (22. 5. 2014 14:03)