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
+
0
-

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
+
0
-

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
+
0
-

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

David Grudl
Nette Core | 8218
+
0
-

Stáhni si prosím úplně poslední verzi dibi.

ViliamKopecky
Nette hipster | 230
+
0
-

už to jde, díky :)