Best practice sdílený kód

dreken
Člen | 36
+
0
-

Ve svých projektech jsem si zvykl používat svoje vlastní nádstavby, které mi třeba vytvářejí vlastní filtry v Latte, rozšiřují Doctrine repository nebo samostatné helpery pro různé příležitosti. Problém je, že zatím nemám systém, jak tento kód mezi mými projekty sdílet, takže vždycky poslední verzi třídy rozkopíruji do ostatních projektů. Což asi není úplně správně.

Chtěl bych z toho vytvořit nějakou sdílenou knihovnu, kterou bych si pak v projektech načetl composerem. Problém ale je, že bych to musel dát veřejně na github. A z takové směsice pomocných tříd by stejně komunita užitek neměla, pokud by to nebylo nějak dobře roztříděné a zorganizované.

Nabízí se mi teda nějaké další možnosti, umí composer nebo něco jiného načítat knihovnu z lokálního adresáře nebo privátního repozitáře?

Ondřej Kubíček
Člen | 494
+
0
-

dá samozřejmě, můžeš mít privatní repo, v composeru bys to pak zapsal nějak takhle třeba

"repositories": [
		{
			"type": "vcs",
			"url": "https://neco@gitlab.example.com/mojerepo.git"
		},
]

Editoval Ondřej Kubíček (18. 10. 2018 15:35)

Barbarossa
Člen | 74
+
+1
-

Nabízí se mi teda nějaké další možnosti, umí composer nebo něco jiného načítat knihovnu z lokálního adresáře nebo privátního repozitáře?

Ano umí.
V zásadě stačí přidat do svého compsoer.json odkaz na svůj private repozitář (na pc kde tvoříš k tomu má většinou git přístup, takže to není žádný problém od tama přes compsoer install dostat).

"repositories": [
    { "type": "vcs", "url": "git@git.mojedomena.cz:group/project.git" }
],

"require": {
	"group/project": "dev-master",
}

Jak je pospáno i v článku přes –-prefer-source (a správným nastavením ve svém IDE) se to pak i skvěle verzuje a rovnou pushuje

Editoval Barbarossa (18. 10. 2018 15:38)

GEpic
Člen | 566
+
0
-

Nezapomeň ale, že vcs repozitáře lze natahovat pouze z kořenového balíku. Pokud by si tedy natahoval nějaký jiný balík, který by poté obsahoval další vcs repozitáře, tak fungovat nebudou.

Nebo si rozjeď vlastní satis

Editoval GEpic (18. 10. 2018 20:12)