Databáze – vytvoření spojení

Statický wrapper

Jednotlivá spojení s databázi prezentuje instance třídy DbConnection. Aby byla práce co nejsnazší, existuje nad těmito instancemi statický wrapper – statická třída Db. Tato třída pracuje vždy s poledním aktivním spojením. Pomocí ní můžete jednotlivá spojení vytvářet a také mezi nimi přepínat. Třída Db obsahuje pro práci s databází stejné metody jako třída DbConnection.

$connection = new DbConnection($config);
$connection->...

# or

Db::connect($config);
Db::...

Databázová vrstva podporuje tyto PHP extenze: mysql, mysqli, pgsql.

Konfigurace spojení

Konfigurační nastavené pro připojení se předává jako pole. Toto asociativní pole může obsahovat následující klíče:

  • driver – příslušný ovladač databáze (mysql, mysqli, pgsql),
  • server – název serveru (tradičně localhost) nebo jeho IP adresa,
  • username – uživatelské jméno,
  • password – heslo,
  • database – jméno databáze, se kterou budete pracovat,
  • encoding – kódování relace spojení,
  • lazy – boolean parametr, určuje, zda se má framework připojit k databázi hned (ffalse), nebo až když bude třeba (true).

Ukázka konfigurace připojení. V této ukázce jsou mj. uvedeny výchozí hodnoty, které se použijí, pokud daný klíč nenadefinujete.

Db::connect(array(
    'driver' => 'mysqli',
    'server' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'test',
    'encoding' => 'utf8',
    'lazy' => true
));

Automatické konfigurace

Pokud nepoužíváte pouze databázovou vrstvu, ale i konfigurační třídu Config, pak nemusíte volat ani metodu connect, Háefko framework se připojí až bude třeba a konfigurační data vyčte z direktivy db.connection. Díky třídě Config dostanete do ruky také mocný multi serverový konfigurační nástroj – data pro připojení se budou předávat závisle na aktuálním serveru.

Více spojení

Pokud potřebujete více spojení, je pak nutné si je pojmenovat, aby bylo později možné určit, se kterým chcete později pracovat. Pojmenování provedete pomocí druhého volitelného parametru metody connect. Pak stačí pouze přepínat spojení pomocí metody active.

db::connect(..., 'default');
db::connect(..., 'cms');

# now is active cms connection

db::active('default');