Archiv pro 9. October 2007

Používání proměnných v Zend_Config

V našich PHP projektech s úspěchem používáme Zend Framework a také jeho část Zend_Config.

Zend_Config je třída umožňující přístup k konfiguračním souborům. Do něj je vhodné ukládat si například nastavení databáze apod. V současnosti existují dvě implementaci (adaptéry):

Zend_Config_ini
Slouží pro práci s konfiguračními daty, která jsou uložena a php ini souboru.
Zend_Config_Xml
Slouží pro práci s konfiguračními daty, která jsou uložena XML souboru.

Současná implementace Zend_Config neumožňuje používat proměnné v konfiguračních souborech. Na příkladu vysvětlím o čem je řeč:

[default]
foo = bar
foo2 = #foo#
var = World
foo3 = "Hello #var#"

Výše uvedený kód je ukázkou ini souboru, ktery lze načíst pomocí Zend_Config_Ini třídy. Použítí jenásledující

$config = new Zend_Config_Ini('config.ini', 'default');
$el = new Venturia_Config_ElEvaluator($config);

echo $config->foo; // vypíše bar
echo $config->foo2; // vypíše #foo#
echo $el->evaluate($config->foo2); // vypíše bar
echo $config->foo3; // vypíše Hello #var#
echo $el->evaluate($config->foo3); // vypíše Hello World

Třídy Venturia_Config_E­lEvaluator tedy funguje tak, že projde daný string a zamění výskyty znaku #nazev_promenne# za její skutečnou hodnotu (dělá to rekurzivně).

K napsání této třídy mě vedla skutečnost, že se hodnoty různých proměnných opakovaly. Typicky to byla hodnota e-mailové adresy.

Závěr

Doufám, že tato triviální třída může někomu pomoci s lepším uspořádám jeho konfiguračních souborů. Dříve než jsem se do jejího psaní pustil pátral jsem po webu, ale nic podobného jsem nenašel…no možná mě vyvedete z omylu.

Zde je odkaz na stažení třídy a testů – Venturia_Config_E­lEvaluator + testy.

Celý článek 1 komentář 9. October 2007


Kalendář

October 2007
M T W T F S S
« Sep   Nov »
1234567
891011121314
15161718192021
22232425262728
293031  

Články podle měsíců

Kategorie

Locations of visitors to this page