Vlastní model ve vendoru pro cms

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

Ahoj,

snažím se usnadnit si práci a pracovat více modulárně. Mám vlastní cms a k tomu x aplikací, které využívají stejné nebo podobné modely. Říkal jsem si, jestli by nestálo za to, udělat si z toho nějaký composer package. Nejdřív se ale chci zeptat zkušenějších, jestli je vhodné cpát modelovou vrstvu do vendoru.
Pokud ano, tak mohli byste mi poradit, jak rozchodit tuto modelovou vrstvu v aplikaci nejlepším způsobem? Dalo by se stále injektovat?

Díky za každou reakci
Míra

Šaman
Člen | 2659
+
0
-

Samozřejmě, Nette injecty používá a ty jeho třídy a rozhraní taky injectuješ (třeba IMailer).
IMHO: Ale spíš, než do vendoru bych to zatím dával někam úplně mimo, třeba do ‚/libs‘ a uvidíš, jak se ti to osvědčí. Asi si budeš muset vyřešit spoustu workflow ohledně verzování, zpětné kopatibility verzí apod.

Miri
Člen | 117
+
0
-

Super, to rád slyším a děkuju

Trošku jsem si projížděl google a snažil se pochopit jak to celé funguje, tím myslím composeru. Mám s ním zkušenosti jen jako pomocníka, přes který stahuju to co potřebuju. Nikdy jsem neuploadil.

Nastíním jak jsem to pochopil, myslíš že bys mě mohl opravit?

  1. Vytvořím vlastní projekt v IDE. Zde vytvořím celý package, tak jak potřebuju. (je vhodné mít balíček jako vlastní projekt?)
  2. Pushnu projekt např na github.
  3. zaregistruju ho do packagist
  4. přes composer stáhnu do svých projektů a autoloader si sám naloaduje moje třídy ?
  5. injektuju stejně jako z klasického modelu?

Díky
Míra

Šaman
Člen | 2659
+
+1
-

Ad. injecty: Je jedno, kde se třída nachází, je jen důležité, aby byla v dosahu buď Nettího RobotLoaderu (pokub by byla třeba v tom adresáři /libs), nebo v režii composeru. Pak jsou dostupné odkudkoliv, tedy i pro DI container.

Ad. vytvoření vlastního balíčku: Packagist není nutný, ani GitHub. To jsou jen veřejná úložiště odkud by byl balíček dostupný každému. Lze mít zcela lokální balíčky, nebo v nějakém firemním repozitáři. Ale jak přesně se vytvoří composer balíček, to si vygoogli. Já dělal jen jeden veřejný na packagistu.

Miri
Člen | 117
+
0
-

injektování mi už funguje z adresáře libs.

Teď už to jen přidat do composeru a zautomatizovat si to.

Ještě jednou díky

Oli
Člen | 1215
+
+1
-

@Miri koukni na satis. Třeba tady se to celkem řešilo (a vyřešio) https://forum.nette.org/…stavit-satis