Autor Zpráva
jansfabik
Profil
Zdravím,
nemohu se rozhodnout mezi formátem konfiguračních souborů. Přemýšlel jsem nad těmito možnostmi (známkoval jsem způsob implementace a přehlednost kódu - jako ve škole):

XML - implementace: 1, kód: 5
Implementace je jednoduchá (pomocí integrované knihovny SimpleXML). Kód je ale velmi nepřehledný.

PHP - implementace: 1, kód: 4
Implementace je jednoduchá (includováním konfiguračního souboru). Kód je ale hůře editovatelný a v případě, že se v něm bude nacházet chyba v syntaxi, tak vyhodí Parse error a ukoční běh skriptu.

YAML - implementace: 4, kód: 1
Implementace je velmi složitá (musí se napsat vlastní obslužné třídy, což také snižuje rychlost). Kód je ale výborný.

INI - implementace: 1, kód: 3
Implementace je jednoduchá (pomocí integrované funkce parse_ini_file). Kód je ale méně čitelný.

Co byste mi doporučili? Co používáte vy?
tiso
Profil
PHP, alebo INI, prípadne DB
svadla
Profil
ja pouzivam xml, s prehlednosti nemam problem
php jsem vyloucil, aby konfiguraky mohl delat i bfu a neudelal mi tam nejakou divocinu :)
Alphard
Profil
jansfabik
podle mě dost záleží na věcech okolo, které jste neuvedl
jak rozsáhlá ta data budou, jak často se budou měnit, jak často se budou načítat, budou se měnit prostřednictvím nějakého rozhraní nebo ručně, bude to měnit admin nebo i uživatelé, jak se budou zálohovat, bude vadit, když si je někdo neoprávněný přečte?
jansfabik
Profil
bude se tam ukládat:

1) nastavení
2) informace o balíčcích
3) definice aktuálních verzí (pro aktualizování systému)
Mastodont
Profil
jansfabik
Složitá implementace YAML? Proč, proboha? Parsery jsou napsány.
jansfabik
Profil
Mastodont
Parsery jsou napsány, ale nejsou běžně součástí PHP, musí se to doinstalovat třeba knihovnou syck nebo se musí použít spyc a s tím souvisí i nižší rychlost načítání. Navíc tam chybí spousta vymožeností YAML.
Mastodont
Profil
jansfabik
Tak to máš sice pravdu, ale include příslušného souboru zas není tak náročný .. horší je, že i ty existující parsery obsahují chyby (nenašel jsem žádný, který by korektně uměl víceřádkové položky). Tady hraje svou roli nešikovnost toho formátu, napsat parser není tak jednoduché, viz poznámka There's gotta be a cleaner way to do this ve zdrojáku spyc ... škoda, že se nenašel nikdo, kdo by pro PHP napsal obdobu Kwalify včetně možnosti definovat DTD.

Osobně i přesto používám YAML.
jansfabik
Profil
Máte někdo zkušenosti s YAML v jiných programovacích jazycích? Mám na mysli Ruby on Rails, Javu, C, Python, apod. Docela rád bych věděl, jestli to nemají vyladěné. Možná (až jednou budu mít čas) se to pokusím přepsat do php.
Mastodont
Profil
Ruby - http://www.kuwata-lab.com/kwalify/
jansfabik
Profil
Tak jsem se podíval na tu Java verzi (je sice už tři roky stará, ale na ruby si netroufám :-)) a kód je přehledný a srozumitelný, takže až jednou bude čas tak to přepíšu do PHP.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0