Pripojujeme sa k databáze
V tomto článku si ukážeme pokročilú prácu s pripojením k databáze v CakePHP. Ukážeme si, ako sa pripojiť cez socket alebo ako si nakonfigurovať niekoľko databázových pripojení a následne ich používať.
Definujeme pripojenie k databáze
Databázové spojenie sa v CakePHP definuje v súbore app/config/database.php. Po rozbalení balíku s inštaláciou Cake treba najprv daný súbor premenovať a to z app/config/database.php.default na spomínaný názov app/config/database.php. Po otvorení daného súboru máme k dispozícii preddefinované 2 pripojenia a to default a testclass DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'port' => '',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'schema' => '',
'prefix' => '',
'encoding' => ''
);
var $test = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'port' => '',
'login' => 'user',
'password' => 'password',
'database' => 'test_database_name',
'schema' => '',
'prefix' => '',
'encoding' => ''
);
}
?>
Poďme si priblížiť základné konfiguračné možnosti.
driver → umožňuje zadať k akému typu databáze sa ideme
pripájať. Podporované sú typy mysql, mysqli, sqlite, postgres , mssql, db2,
oracle, adodb-[drivername], pear-[drivername].
host → adresa databázového servera.
port → určuju port, cez ktorý sa môžeme k databáze
pripojiť.
prefix → umožňuje určiť prefix v názvoch tabuliek v databáze.
Využitie nájdeme v prípade, že v jednej databáze máme niekoľko
projektov a jednotlivé tabuľky daných projektov by sme chceli od seba
jednoznačne odlíšiť daným prefixom.
encoding → umožňuje nastaviť kódovanie spojenia k vašej
databáze.
Ako môžeme vidieť, Cake podporuje pripojenie k najpoužívanejším databázovým systémom v súčasnosti. Ak by sa však v danom zozname typ nášho databázového systému nenachádzal, môžeme si vytvoriť vlastný driver alebo prepísať existujúci. Urobíme to jednoducho vytvorením súboru v app/models/datasources/dbo a pomenovaním daného súboru dbo_x.php, kde x je názov nášho databázového systému.
Používame databázové pripojenia
Ako môžeme vidieť, v našom súbore app/config/database.php máme definované 2 pripojenia a to default a test. Cake nám umožňuje jednoducho prepínať medzi týmito pripojeniami a tým určovať, aké pripojenie má naša aplikácia alebo konkrétny model používať. Táto vlastnosť CakePHP nám môže značne uľahčiť prácu a to najmä v prípade, ak testujeme našu web aplikáciu na localhoste a zároveň aj priamo na nejakom webhostingu. Taktiež nám môže byť veľmi nápomocná v prípade, ak by sme chceli určiť, že niektorý model bude získavať dáta z inej databáze ako zvyšné modely.
Poďme si to ukázať na príklade. Našej aplikácii chceme určiť, aby používala pripojenie nazvané test, ktoré sme definovali v súbore app/config/database.php. Do súboru app/app_model.php umiestníme nasledovné
class AppModel extends Model{
var $useDbConfig = 'test';
}
Týmto sme našej aplikácii určili, že všetky modely sa budú pripájať k databáze prostredníctvom pripojenia nazvaného test. Teraz si predstavme situáciu, že chceme zmeniť pripojenie iba pre konkrétny model. V tomto prípade nám stačí pripojenie definovať iba v našom konkrétnom modely
class MyModel extends Model{
var $useDbConfig = 'test2';
}
Týmto sme určili, že model s názvom MyModel sa bude pripájať k databáze prostredníctvom pripojenia nazvaného test2.
Ešte by som poznamenal, že ak máme definované pripojenie s názvom default a našej aplikácii explicitne neurčíme, že máme používať iné pripojenie, Cake automaticky pre pripojenie k databáze vyberie pripojenie nazvané default.
Pripájame sa cez socket
V súčasnosti množstvo webhostingov umožňuje pripojenie k vašej databáze prostredníctvom tzv. socketu. Riešenie v Cake je veľmi jednoduché. Predstavme si, že sa k našej databáze chceme pripojiť cez socket, ku ktorému vedie takáto cesta /tmp/mysql50.sock. Do súboru app/config/database.php následne umiestníme
var $default = array(
'driver' => 'mysql',
'connect' => 'mysql_connect',
'persistent' => false,
'host' => 'localhost',
'login' => 'login',
'password' => 'password',
'database' => 'db',
'port' => '/tmp/mysql50.sock',
'prefix' => '',
'encoding' => 'utf8'
);
Ako môžeme vidieť, cestu k nášmu socketu stačí zadať do kolonky port a všetko bude fungovať správne. Týmto je náš článok u konca. V článku som sa snažil čo najjednoduchšie zhrnúť možnosti CakePHP v súvislosti s pripojením k databázam.
Rád uvítam vaše námety a pripomienky v diskusii k článku.
Súvisiace články
-
Kategórie
- Tipy a triky (28)
- Články (8)
- Fantom CMS (4)
- Zábava (2)
- Začíname s CakePHP (6)
-
Najčítanejšie články
-
Novinky
-
Seriál o CakePHP na www.debug.sk
15. 10. 2008
Od 7. októbra vychádza nový seriál o CakePHP na serveri zameranom na programovanie s názvom Debug.sk Autorom seriálu je autor tohto webu a kto by mal záujem, môžete daný seriál podporiť jeho prečítaním.
-
-
Nálepky
-
Nedávne komentáre
-
Rss kanály

Komentáre k článku
Nový komentár