3.4.1 Konfigurasi Database

Di CakePHP detail konfigurasi database disimpan di dalam sebuah file, yaitu di app/config/database.php. Contoh dari file konfigurasi database dapat dilihat di app/config/database.php.default. Sebuah konfigurasi yang sudah benar seharusnya aan terlihat kurang lebih seperti ini :

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' => '');

Secara default, $default lah yang akan digunakan, kecuali disebutkan lain di dalam $useDbConfig di dalam sebuah model. Sebagai contoh, jika aplikasi saya memiliki database legacy sebagai tambahan yang di default, saya bisa menggunakannya di dalam model dengan membuat koneksi baru ke database $legacy yang array nya kurang lebih sama dengan array $default. Caranya adalah dengan menset var $useDbConfig = `legacy` pada model bersangkutan.

Isilah nilai / pasangan isi di dalam array konfigurasi sesuai kebutuhan anda.

Key Value
driver Nama dari driver database yang akan digunakan disini. Examples: mysql, postgres, sqlite, pear-drivername, adodb-drivername, mssql, oracle, or odbc.
persistent Perlu tidaknya menggunakan koneksi secara persistent ke dalam database.
host hostname dari server database (atau alamat IP address nya).
login Username yang digunakan untuk login ke dalam database.
password Password yang digunakan untuk login ke dalam database.
database Nama dari database yang akan digunakan.
prefix (optional) Sebuah String yang digunakan sebagai prefiks dari setiap tabel di dalam database. Jika anda tidak menggunakan prefiks pada nama tabel anda, kosongkan bagian ini.
port (optional) Port TCO atau Unix socket melakukan koneksi ke database server.
encoding Menentukan karakter apa yang digunakan untuk mengirimkan pernyataan SQL ke server.
schema Digunakan pada database PostgreSQL untuk menentukan schema mana yang akan digunakan.

Setting prefix adalah untuk tabel, bukan model. Sebagai contoh, jika anda membuat tabel join untuk Apple dan Flavor model anda, anda menamakannya prefix_apples_flavors (not prefix_apples_prefix_flavors), dan menset prefix setting menjadi 'prefix_'.

Sampai disini, anda mungkin ingin melihat CakePHP Conventions. Penamaan yang benar untuk table anda (dan penambahkan beberapa kolom) bisa membawa anda ke fungsionalitas yang membebaskan, sehingga anda tidak perlu melakukan konfigurasi. Sebagai contoh, jika anda menamakan tabel database anda big_boxes, model anda BigBox, controller anda BigBoxesController, semuanya akan bekerja secara bersama - sama secara otomatis (tanpa konfigurasi). Dengan aturan konvensi, gunakan garis bawah, huruf kecil, dan bentuk jamak kata untuk setiap nama tabel di dalam database. Contoh : bakers, pastry_stores, savory_cakes.