verzování modulů, jeden zdrojový kód pro modul ve více aplikacích
- Cup
- Člen | 38
Ahoj, chtěl bych se zeptat jakým způsobem se řeší to, když mám jeden
modul ve více aplikacích.
Chtěl bych dosáhout toho, že budu mít jeden modul, který bude třeba
parametrizovatelný s parametry v db, či txt.
Tento modul bude mít stejný kód pro všechny aplikace které ho používají.
Například modul auth = bude řešit přihlašování, zpomenutá hesla, registraci atd. Když pak budu zakládat nový projekt a budu chtít aby tam tento modul byl, tak jen nějak udělat to, že se zdrojové soubory zkopírují na místo v aplikaci z vývojové verze.
Hlavní otázka zní, jak se takovéhle problémy řeší v praxi. Jako výsledek bych chtěl to, že když budu zakládat nový projekt, tak jen řeknu co tam chci za moduly a ty se mi tam zkopírují z vývojových adresářů, kde jsou nejnovější zdrojáky. V případě úprav nebudu upravovat zdrojáky v aplikaci, ale někde kde je společný kód modulu pro všechny aplikace a v aplikacích jen nějakým způsobem zaktualizuju zdojáky z hlavní (větve)
Vysvětlí mi někdo jak toto chodí v praxi? :) Díky
- jiri.pudil
- Nette Blogger | 1032
Tohle skvěle řeší Composer – uděláš si z toho modulu balíček a v aplikaci ho jenom uvedeš jako závislost. (Pokud by neměl být veřejný, můžeš použít třeba Satis.) A pro parametrizaci bych si napsal CompilerExtension – pak bude modul nastavitelný v konfiguraci (v neonu) konkrétní aplikace.
- David Matějka
- Moderator | 6445
Zkratkovite:
- modul = samostatny git repozitar
- instalace pres composer
- pro composer vlastni repozitar se seznamem tech modulu. To se necha resit treba pomoci nastroje „satis“
- kazdy modul se bude instalovat jako CompilerExtension
//edit: pozde :D
Editoval matej21 (28. 5. 2014 13:31)
- Cup
- Člen | 38
Dik moc za nakopnuti. Budu to resit cca za mesic, takze kdyby k tomu jeste kdokoli neco mel, nebo nejaky zdroje, ukazky navody, tak sem s tim.
Jeste jen otazka, myslel sem ze composer mi ty balicky nahraje do slozky vendor. A ja to chci nahrat napriklad do AdminModule – ale podle toho co rikate to neni problem.
Diky a cau
edit ----
Plus me jeste napadlo – nektere soubory k tomu modulu bych potreboval
v jine slozce /lang. Jedna se o texty k lokalizaci, ktere se mohou taky menit
na zaklade zmeny zdrojovych kodu. To vse lze nastavit?
Editoval Cup (28. 5. 2014 13:35)
- David Matějka
- Moderator | 6445
K tomu jazyku, koukni, jak to resi treba kdyby/translation
CompilerExtension v kazdem tvem modulu pak implementuje to rozhrani
ITranslationProvider a jiny extension, ktery se stara o preklad (v tomto
pripade TranslationExtension) zjisti, ktery extensions implementuje to rozhrani
a vezme si z toho konfiguraci
viz taky tenhle thread: https://forum.nette.org/…ular-concept
Editoval matej21 (28. 5. 2014 13:48)