Jak se připojit k databázi uvedené v config.ini
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- ViliamKopecky
- Nette hipster | 230
Když mám v config.ini definovan pristup k databázi
database.params.host = localhost
database.params.username = root
database.params.password = pwd
database.params.dbname = test
Jak se k ní můžu připojit? Respektive jak získám data která nejsou
jen var.foo = hello?
Editoval enoice (19. 4. 2008 13:32)

- David Grudl
- Nette Core | 8285
Třeba takto:
config.ini
; Production site configuration data
[production]
database.driver = sqlite
database.file = "%modelsDir%/demo.db"
database.lazy = TRUE
; Staging site configuration data inherits from production and
; overrides values as necessary
[development < production]
bootstrap.php
<?php
require_once dirname(__FILE__) . '/../Nette/loader.php';
// načte konfiguraci (nezadám-le jméno souboru, výchozí je '%appDir%/config.ini')
Environment::loadConfig();
// configurace je dostupná přes Environment::getConfig()
// např. $driver = Environment::getConfig()->database->driver;
// ekvivalent: $driver = Environment::getConfig('database')->driver;
require_once 'dibi.compact.php';
dibi::connect(Environment::getConfig('database'));
Důležité poznámky:
- při náčítání konfigurace se provádí automatická expanze parametrů. Proto je možné cestu zapsat jako „%modelsDir%/demo.db“
- proměnnou %modelsDir% je možné předtím definovat:
Environment::setVariable('modelsDir', ...)- nebo tím, že definuju konstantu
MODELS_DIR - její výchozí hodnota je
%appDir%/models, pokud vyhovuje, není třeba měnit
- název prostředí (production, development) a potažmo název sekce v INI
souboru lze nastavit přes
Environment::setName(...)- nebo tím, že definuju konstantu
ENVIRONMENT - její výchozí hodnota se určí autodetekcí (console, production, development)

- ViliamKopecky
- Nette hipster | 230
Object of class Config could not be converted to string
getConfig vrací objekt, a dibi si chce vzít array… nebo to dělám špatně?