3.4.1 Database Configuratie

CakePHP verwacht dat de database configuratie in het bestand app/config/database.php. Een voorbeeld van deze configuratie kan gevonden worden in app/config/database.php.default. De uiteindelijke configuratie kan er als volgt uitzien.

var $default = array('driver'      => 'mysql',
                     'persistent'  => false,
                     'host'        => 'localhost',
                     'login'       => 'cakephpuser',
                     'password'    => 'c4k3roxx!',
                     'database'    => 'my_cakephp_project',
                     'prefix'      => '');
  1. var $default = array('driver' => 'mysql',
  2. 'persistent' => false,
  3. 'host' => 'localhost',
  4. 'login' => 'cakephpuser',
  5. 'password' => 'c4k3roxx!',
  6. 'database' => 'my_cakephp_project',
  7. 'prefix' => '');

De array met de naam $default wordt standaard gebruikt, tenzij een andere verbinding is gespecificeerd door middel van $useDbConfig in een model. Als er bijvoorbeeld gebruik gemaakt wordt van een nieuwe($default) en een oude($oud) database, kan door middel van $useDbConfig = 'oud'; contact gemaakt worden met de oude database.

De volgende opties zijn beschikbaar voor een database connectie.

Optie Betekenis
driver De naam van de database driver, voorbeelden zijn: mysql, postgres, sqlite, pear-drivername, adodb-drivername, mssql, oracle, or odbc.
persistent Of er gebruik gemaakt moet worden van een persistente connectie of niet.
host De database server hostname (of IP adres).
login Gebruikersnaam voor de database.
password Wachtwoord voor de database.
database Naam van de database die gebruikt wordt bij deze connectie.
prefix (optioneel) Een voorvoegsel voor de tabelnamen. Als prefix leeg is, wordt er geen voorvoegsel gebruikt.
port (optioneel) TCP poort of Unix socket waar CakePHP naar moet verbinden.
encoding Geeft aan welke karakterset gebruikt moet worden voor de verbinding.
schema Wordt gebruikt in PostgreSQL database opstellingen om te specificeren welk schema gebruikt moet worden.

De prefix optie is alleen voor tabelnamen en niet voor models. Bijvoorbeeld: als er een koppeltabel is tussen appel en smaak, dan heet de koppeltabel prefix_appels_smaken.(en niet prefix_appels_prefix_smaken)

Het kan handig zijn om een blik te werpen op de CakePHP Conventies. Als de tabellen (en sommige kolomnamen) de correcte naamgeving hebben, zal CakePHP veel taken automatisch overnemen en zorgt voor minder configuratie in de applicatie. Als bijvoorbeeld de tabel naam grote_appels is, moet de model GroteAppels heten en de controller GroteAppelsController. Op deze manier kan CakePHP zelf de relatie tussen de models, controllers en tabellen uitvinden.

Het is aan te raden om engelse naamgeving te gebruiken voor tabelnamen. CakePHP probeert namelijk zelf het enkelvoud en meervoud te bepalen van modellen en dit gaat het beste met engelse woorden.