verzování modulů, jeden zdrojový kód pro modul ve více aplikacích

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

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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)