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 | 8218
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ě?