Pro jeden, malý, jednoduchý web bych prostě vložil konfiguraci do souboru PHP. Nechte to jednoduché. PHP pravděpodobně neanalyzuje nic rychleji než PHP. Pokud používáte APC, kompilovaný bajtový kód je dokonce uložen do mezipaměti - ačkoli bajtový kód je poté znovu spuštěn pro každý požadavek. U malého konfiguračního souboru by toto spuštění bajtkódu mělo trvat velmi málo času; u velmi velkého souboru to může trvat trochu déle.
Pro weby s vysokou návštěvností a velkými konfiguracemi je dobrý nápad uložit konfigurační data do mezipaměti v APC (např. jako jedno pole) – přinejmenším ušetříte režii skutečného spouštění příkazy ve vašem souboru config.php. Zejména facebook to dělá. Když obsluhujete mnoho požadavků za sekundu, nepřipadá v úvahu při každém požadavku zasáhnout disk a přečíst konfigurační soubor (pomocí parse_ini_file, analyzátoru XML atd.).
Pro můj aktuální projekt hostujeme mnoho webů, z nichž každý má svou vlastní konfiguraci. Každý web měl jak databázi, tak konfigurační soubor; avšak ujistit se, že vždy používáte správný konfigurační soubor se správnou databází, může být bolestí hlavy. Kromě toho by změny vyžadovaly změnu věcí na dvou místech - db a config. Zapomenutí jednoho nebo druhého vždy způsobovalo problémy a stávalo se to příliš často.
Přesunuli jsme konfiguraci do databáze, takže nelze oddělit db od správné konfigurace a jakékoli změny kódu vyžadují pouze aktualizaci databáze. Data z konfigurační tabulky jsou také agresivně ukládána do mezipaměti v APC, takže je dotazujeme jen zřídka.
Takže pro rekapitulaci:
- Malý web :stačí použít soubor config.php
- Velmi velký web :mezipaměť v APC
- Více webů :uložení konfigurace do databáze pro snížení administrativní režie; cache v APC, aby se snížil počet přístupů do databáze