- Aplikace
- Databáze
- Šablony
- Formuláře
- Knihovny
- Návody
Config
Snad jednou z prvních věcí, kterou je třeba udělat při tvorbě nové aplikace, je její konfigurace. Díky třídě Config se nejedná o žádnou záludnou činnost a při přechodu na produkční server vás již nečekají žádné změny.
Každá konfigurační hodnota je označena klíčem. Pomocí tohoto klíče se pak k ní dostanete kdykoliv. Klíč se může skládat z několika uzlů, kdy jednotlivé uzly jsou odděleny tečkou. Můžete tak konfiguraci zapisovat/číst po jednotlivých uzlech.
Config::write('session', array(
'lifeTime' => 60*60,
'name' => 'app-session-id'
));
// je shodné s
Config::write('session.lifeTime', 60*60);
Config::write('session.name', 'app-session-id');
A stejně tak čtení
$config = Config::read('session');
$config['lifeTime'] = Config::read('session.lifeTime');
Názvy klíčů nejsou citlivé na velikost písmen. Můžete tak používat způsob, jaký vám více vyhovuje.
Metoda Config::read() obsahuje ještě druhý volitelný
parametr – výchozí hodnotu. Může se stát, že konfigurační klíč
není definován. Pak metoda read() vrátí druhý volitelný
parametr.
$appVersion = Config::read('app.version', 'undefined');
Multi-serverová konfigurace
Snad u každé aplikace nastává situace, kdy je aplikace vyvíjena jinde, než kde bude ve finále „běžet“. Proto je také nutné nakonfigurovat aplikaci pro každý server zvlášť. Háefko pak použije „aktuální“ konfiguraci, ostatní ignoruje.
Jednolité konfigurace se zapisují vztažmo k doméně, na které aplikace
bude běžet. Tedy nadefinuji si například konfigurace pro
localhost a pak pro server example.com. Celé pole
konfigurace pak musí být obsaženo v klíči servers, které
nemůže být spojen se svými podklíči!
Config::write('servers', array(
'localhost' => array('config.debug' => 2),
'example.com' => array('config.debug' => 0)
));
Vícenásobný zápis
Pokud konfiguraci máte uloženou v polí, pak ji jednoduše můžete nechat
zapsat pomocí metody Config::multiWrite().
$config = array(
'core.debug' => 2
'session.name' => 'app'
);
Config::multiWrite($config);
Konfigurace pomocí externího souboru
Háefko nabízí také možnost konfigurace pomocí externího souboru. Tento soubor má syntaxi velmi podobnou YAMLu.
Session.name: my-app
Core.debug: 2
Db.connection:
driver: mysqli
database: test
S multi-serverovou konfigurací:
mykey: 'value with space on the end '
session.name: my-app
servers:
localhost:
core.debug: 2
db.connection:
driver: mysqli
database: test
username: root
password: heslo
example.com:
db.connection:
database: example_com
username: useX2
