Skip to content

Instantly share code, notes, and snippets.

@vojtech-dobes
Created November 19, 2011 11:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vojtech-dobes/1378723 to your computer and use it in GitHub Desktop.
Save vojtech-dobes/1378723 to your computer and use it in GitHub Desktop.
Řešení NEON konfigurace s include

1: main.neon přepisuje vložené

Zde se hodí dát do .gitignore main.neon (abych mohl kdykoliv svoje údaje přepsat a nestrašilo mi to v gitu), ale zase musím na začátku pamatovat, že si do tohoto main.neon musím dát klauzuli include.

2: vložené přepisují main.neon

credentials.neon obsahuje opravdu jen to nejnutnější (tedy změněné údaje), není pro mě problém si ho hodit do .gitignore a při rozjíždění projektu si ho vytvořit (nemusím si pamatovat kromě jeho vytvoření nic jiného).

Přepsání služby v main.neon je zde ovšem zbytečné, protože ve skutečnosti je původní a bude přepsáno definicí z services.neon (která je ale opticky dříve).

3: includes přepisuje v daném místě (v průběhu zpracování souboru)

Tohle mi přijde nejelegantnější a nejtransparentnější - konfigurační soubory se dají číst přirozeně odshora dolů a je jediné pravidlo zní: "co přijde později platí". Do .gitignore si mohu dát credentials.neon stejně jako v u 2.

Problém tohoto řešení je v tom, že formát NEON něco podobného nepodporuje. Zpracování konfigurace by se totiž muselo více provázat se čtením samotného konfiguračního souboru.

includes:
- services.neon
services:
database:
class : MyDibiConnection
parameters:
database:
username : jmeno
password : heslo
services:
database:
class : DibiConnection
arguments : [%database%]
parameters:
database:
bla : bla
foo : bar
parameters:
database:
username : jmeno
password : heslo
includes:
- services.neon
- credentials.neon
services:
database:
class : MyDibiConnection
services:
database:
class : DibiConnection
arguments : [%database%]
parameters:
database:
bla : bla
foo : bar
parameters:
database:
username : jmeno
password : heslo
includes:
- services.neon
services:
database:
class : MyDibiConnection
includes:
- credentials.neon
services:
database:
class : DibiConnection
arguments : [%database%]
parameters:
database:
bla : bla
foo : bar
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment