EDIT: Pokračování článku Nette moduly (a vlastní instalátor) #3
Po delší odmlce konceptu řešení nette modulů použitelně píšu zase. Připravuji kompletní článek, kde bych rád popsal, jak by to mohlo fungovat. Teď bych ale potřeboval poradit s následujícím:
Řešení už nenazývám modulami, protože se to pletlo. Funkce původních Nette modulů zůstává. Rozšiřuji pouze jejich schopnost distribuce (jednoduše řečeno). Balení základních funkcionalit pro aplikaci jsem po vzoru Symfony pojmenoval Bundle (nette way: Addon?). A to je také jediné, čím jsem si u nich inspiroval (yeh).
Aktuální stav řešení si můžete prohlédnout v repozitáři na Githubu.
Pomocí vlastního jednoduchého composer instalátoru Nette budles umějí od minula navíc:
Nicméně teď řeším dilema - Současný instalátor funguje tak, že v composer.json přidáte závislost např. "flame-cms/doctrine-bundle": "@dev"
. Composer balíček vezme a překopíruje do složky app. Zdá se to jako dobrý nápad, ale má to několik "ale".
Například výše zmíněný bundle představuje základní skeleton pro Doctrine nastavení v Nette. Co když DoctrineBundle budu chtít rozšířit o svoje Entity? Do složky DoctrineBundle ve složce app si vytovřím složku Entity, kam je všechny dám. V tom není problém. Problém je ale v tom, že v rootu aplikace mám v .gitignore
něco takového src/app/*Bundle
. To způsobí to, že moje rozšíření se nedostane do gitu, zůstane uložené jen v mé lokální kopii. Takže co s tím?
Možných řešeních je několik:
Nepadá vás nějaké jiný či ideálnější způsob řešení? Nebo jaké z výše jmenovaných vám přijde nejlepší? Nemůžu se rozhodnout.