Návrh zrušení Nette\Config

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8227
+
0
-

Navrhuji zrušit Nette\Config, protože se mi tato vrstva zdá zbytečná.

  1. Objekt Config může být klidně nahrazen za stdClass
  2. Zmrazení objektu není moc potřeba a pokud snad ano, dá se řešit i jinak
  3. Načítač konfigurace v podstatě jen deserializuje obsah souboru a dá se nahradit třeba za Neon::decode(file_get_contents('config.neon')) nebo např. json_decode(file_get_contents(...)), zkrátka jde spíš o úkol pro funkci než pro třídu + interface
  4. Dědičnost sekcí použitá v INI souboru by se měla spíš řešit mimo parser a být tak nezávislá na formátu.
  5. Stejně se bude používat jen jeden formát konfigurace

Nebo používáte Config nějak víc?

Honza Marek
Člen | 1664
+
0
-

Neuvažuješ o sloučení environment proměnných a configu? Přijde mi to jako dva způsoby řešení pro to samé.

David Grudl
Nette Core | 8227
+
0
-

Jj, i tzv. režimů.

Nilp
Člen | 65
+
0
-

Dost mi v Config chybí podpora pro skládání configu z více souborů, vyřešilo by se to tímhle?

arron
Člen | 464
+
0
-

Pouzivam Config pro ukladani modifikovane konfigurace (napr. pri instalac CMS), takze me se ta trida fakt hodi :-)

westrem
Člen | 398
+
0
-

David suhlasim s bodmi, ktore si vypisal vyssie no zaroven pocitujem rovnako nedostatok toho co popisuje Nilp a arron, aj ked ja by som to popisal asi takto.

Bolo by super, kebyze je moznost ukladat napr pole nastaveni do config suboru .neon a zaroven aby bolo mozne skladat viacero .neon suborov dokopy a vytvorit tak finalnu konfiguraciu systemu.

Uvediem 2 priklady:

  1. ked chceme aby mohol mat kazdy uzivatel nejake vlastne nastavenia v systeme a z nejakeho dovodu nechceme alebo nemozeme pouzit DB
  2. moznost konfigurovat pluginy – clovek sklada aplikaciu s roznych pluginov pricom kazdy moze mat nejake nastavenia // config direktivy. Vtedy by sa dal nacitat hlavny config a jednotlive config subory od pluginov a vytvorit tak aktualne nastavenie celeho systemu
paranoiq
Člen | 392
+
0
-

vytváření .neon souboru je podstatně jednodušší, než jeho parsování a může to být třebas v extras

načítání konfigurace z víc zdrojů by mělo řešit array_merge_recursive()

Patrik Votoček
Člen | 2221
+
0
-

více konfiguračních souborů se dá jednoduše řešit pomocí merge. Problém je když pak chceš uložit konfiguraci (jak zjistit co kam uložit?).

Editoval Patrik Votoček (4. 2. 2011 17:18)

westrem
Člen | 398
+
0
-

No neviem presne v akej podobe sa bude parsovat .neon subor (rozumej do coho – ci to bude len hole pole alebo nejaka obalka nad tym) preto som to pisal skor ako mozne featuresy, inac plati to co ste povedali, ze by to riesil rekurzivny merge.

Ukladat konfiguraciu by sa mozno dalo vyriesit tak, ze by som ulozil napr nejake podpole celeho konfiguraku a urcil mu subor a do toho by sa vygenerovala Neon syntax. Alebo zriesit nejaku obalku teda nad tym polom ktora by si drzala meta informacie co bolo odkial tahane.