A Composer – Focus Module Installer repository egy speciális Composer installer plugin, amely a Focus CMS moduljainak strukturált és automatizált telepítését biztosítja.
A csomag célja, hogy a modulok Composer-függőségként legyenek kezelhetők, ugyanakkor architekturálisan a CMS elsőrendű építőelemei maradjanak.
Fontos különbség a hagyományos Composer workflow-hoz képest, hogy a modulok nem a vendor/ könyvtárba kerülnek telepítésre, hanem közvetlenül a projekt Modules/ mappájába.
Független, moduláris telepítési mechanizmus
A telepítés nem kizárólag az alkalmazás composer.json fájlján keresztül történhet.
A rendszer támogat egy moduláris, az App composer.json-tól független telepítési modellt is, amelyet a modules.json konfigurációs fájl valósít meg.
Ez lehetővé teszi:
- opcionális repository definíciók megadását,
- helyi fejlesztési repository-k használatát,
- szimbolikus link (symlink) alapú integrációt,
- dinamikus modulregisztrációt a Composer installer plugin segítségével.
A modules.json fájl deklaratív módon írja le, hogy mely modulok kerüljenek telepítésre, és milyen forrásból (pl. VCS, path repository, symlink).
Ennek eredményeként:
- a modulok a projekt strukturális részei maradnak,
- nem „fekete doboz” dependency-ként viselkednek,
- verziókövetetten, de domain-szinten integráltan jelennek meg,
- fejlesztési környezetben akár közvetlenül linkelhetők is.
Ez a megközelítés különösen jól illeszkedik a moduláris, domain-orientált architektúrához, ahol a rendszer funkcionális egységei nem egyszerű csomagok, hanem a rendszer aktív komponensei.
A Composer – Focus Module Installer a Theme Installer párjaként működik, így a Themes/ és Modules/ könyvtárak Composer-alapú workflow részeként kezelhetők, miközben megőrzik a CMS logikai szerkezetét.
GitHub tároló
https://github.com/hi-personal/focus-cms-cmi