Zadejte hledaný výraz...

Možnosti konfigurace aplikací v PHP

Fuck You
verified
rating uzivatele
(1 hodnocení)
27. 10. 2007 14:16:06
Právě přemýšlím nad tím, jaký formát je nejvhodnější pro konfigurační soubory, tak sem upnu pár myšlenek. Mám na mysli taková ta nastavení, která se mění jednou za uherský rok, ale načítají se při každém požadavku.
:ooo: Ideál je tedy takový, aby se v tom kdokoli hned napoprvé vyznal a aby se to načítalo ihned.
INI
+ PHP má funkci parse_ini_file, která je extrémně rychlá.
+ V těch souborech se snadno vyzná úplně každý.
- Lze tím vytvářet nanejvýš dvourozměrná pole.
- V hodnotách nelze používat dvojité uvozovky, odřádkování a asi i některé další znaky.
Nebýt posledního zmíněného mínusu, tak bych nejspíš neváhal. Přesně tenhle způsob konfigurace mi vyhovuje.
XML
+ Parsování je v PHP taktéž zabudované a rychlé.
- V těch souborech se nikdo nevyzná (hodně moc velký mínus).
XML je od začátku ze hry, zmínil jsem ho čistě pro úplnost.
JSON
+ PHP má funkce i pro JSON (od PHP 5.2.0).
+ JSON je dost přehledný...
- ...ale ne zas tolik, aby se úplně každý obešel bez nápovědy.
- Hlavně JSONu schází komentáře.
JSON je sympatický formát a přicházel by v úvahu, kdyby jen měl vestavěný nějaký mechanizmus pro komentáře.
Nakonec by šlo si ho rozšířit třeba nějak takhle:
$config = json_decode(
preg_replace("|/*.*?*/|s", "", file_get_contents("config.json"))
)
Ale to se mi nějak nelíbí. Už to pak není JSON, ale "můj vlastní formát, založený na JSON".
YAML
+ Umí popsat i složitější struktury.
+ Použití se podobá INI.
- Bohužel, na druhý pohled je přes veškerou snahu moc překombinovaný. To už radši i ten JSON.
- PHP ho neumí a je potřeba používat nepěkné pure-PHP kódy.
To by vyžadovalo nějaký mechanizmus kešování a tedy další zbytečné zesložitění. Krom toho ten formát není zrovna intuitivní pro někoho, kdo s ním nedělá častěji.
PHP
+ Rozsáhlé možnosti.
- Příliš rozsáhlé možnosti.
Kdykoli jsem dělal něco s nějakou aplikací, která se konfigurovala v PHP (třeba phpMyAdmin), tak se mi do toho moc nechtělo hrabat. Člověk má přitom takový divný pocit, že zasahuje přímo do programu a něco hrozně pokazí...
Nakonec asi u PHP taky skončím, ale stejně: Co pro podobné účely používáte vy ostatní?
27. 10. 2007 14:16:06
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25571
Parsovani XML rychle? no mozna je rychle ale tech funkci co se musi vytvorit aby to z xml udelalo treba pole , tj docela dost radku kodu.
27. 10. 2007 14:52:31
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25570
toshi
verified
rating uzivatele
(4 hodnocení)
27. 10. 2007 14:57:04
YAML
- problémy s tab/mezera
Jinak ta třída(sf používam), je krajně nešikovná pokud se v konfiguráku objeví chyba resp. nedokáže ani vyplivnout kde a co je špatně.
27. 10. 2007 14:57:04
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25569
Tvá úvaha o tom, že se v XML souborech nikdo nevyzná mi přijde divná.
27. 10. 2007 15:23:51
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25568
Fuck You
verified
rating uzivatele
(1 hodnocení)
27. 10. 2007 15:34:35
Napsal AdamH;17861
Parsovani XML rychle? no mozna je rychle ale tech funkci co se musi vytvorit aby to z xml udelalo treba pole , tj docela dost radku kodu.
Pokud bych použil XML, tak bych to nepřeváděl na nějaké pole, ale používal bych DOM a XPath.
27. 10. 2007 15:34:35
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25567
lupo
verified
rating uzivatele
(2 hodnocení)
27. 10. 2007 15:36:17
Nové projekty v PHP stavím nad Zend Frameworkem - pro práci s konfigurací má třídu Zend_Config, která umí pracovat s INI i XML.
Používám jako zdroj INI soubor rozdělený do sekcí.. Jakékoliv složitější struktury dávám do DB, je to lepší i pro integritu/údržbu databáze.
27. 10. 2007 15:36:17
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25566
jirin
verified
rating uzivatele
(5 hodnocení)
27. 10. 2007 16:23:10
Co delam v ZF tak v ini je to idelani, jinak co delam non-ZF tak vetsinou jen php...
27. 10. 2007 16:23:10
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25565
Fuck You
verified
rating uzivatele
(1 hodnocení)
27. 10. 2007 18:06:14
To já se právě od ZF trochu odkláním. V tom, co teď píšu už vlastně používám od Zendu jenom Zend_Db, Zend_Loader, Zend_Registry a Zend_Acl.
Nad Zend_Config zauvažuju (jestli bude mít pro mě nějaké výhody oproti třeba obyčejnému poli), ale i pak zůstává rozhodování mezi INI, XML a PHP...
27. 10. 2007 18:06:14
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25564
Používám INI, které si natáhnu do pole.
1. 11. 2007 21:11:59
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25563
Ivan L.
verified
rating uzivatele
1. 11. 2007 21:25:48
Napsal llook;17859
INI
+ PHP má funkci parse_ini_file, která je extrémně rychlá.
+ V těch souborech se snadno vyzná úplně každý.
- Lze tím vytvářet nanejvýš dvourozměrná pole.
- V hodnotách nelze používat dvojité uvozovky, odřádkování a asi i některé další znaky.
Používám parse_ini_file a nemám teda problém s dvojitými uvozovkami. Odřádkování nebo další speciální znaky se tam vkládají stejně jako do běžných proměných (n r t ...)
1. 11. 2007 21:25:48
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25562
Fuck You
verified
rating uzivatele
(1 hodnocení)
2. 11. 2007 07:22:32
S těma uvozovkama a znakama jsem to myslel takhle. Mám soubor pokus.ini:
Napíšu var_export(parse_ini_file("pokus.ini")) a dostanu tohle:
array (
'key' => 'blah \blah\ \n blah',
)
Jestli teda je nějak možné do hodnot v INI vložit uvozovky, tak jak?
2. 11. 2007 07:22:32
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25561
Ivan L.
verified
rating uzivatele
2. 11. 2007 08:04:23
2. 11. 2007 08:04:23
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25560
Fuck You
verified
rating uzivatele
(1 hodnocení)
2. 11. 2007 19:42:37
Napsal Ivan L.;18525
array (
'key' => 'blahblah\n blah',
)
Nemůžu si pomoct, prostě to nejede.
2. 11. 2007 19:42:37
https://webtrh.cz/diskuse/moznosti-konfigurace-aplikaci-v-php/#reply25559
Pro odpověď se přihlašte.
Přihlásit