Tutorial-Doctrine (Part-2-Schema)
Skema/Schema, merupakan definisi database yang akan digunakan dalam sistem yang kita kembangkan. Skema ini harus disimpan di dalam folder ./root/schema.
Untuk mempermudah dalam melakukan pemeliharaan sistem, maka skema database yang akan dibuat disimpan dan didefinisikan dalam format YAML. Adapun aturan/syntax penulisannya adalah sebagai berikut:
Catatan :
- Gunakan spasi untuk mengganti karakter TAB.
- Tambahkan spasi setelah tanda titik dua (“:”).
- Penamaan identifier hanya boleh mengandung huruf dan under score (_)
Type data yang bisa digunakan:
|
Type Data |
Keterangan |
| integer(n) | Bilangan bulat, n = nilai maksimal |
| string(n) | Teks/Karakter, n=panjang karakter |
| boolean | Hanya bernilai TRUE/FALSE |
| timestamp | Tanggal dan Waktu dengan format : “YYYY-MM-DD H:M:S” |
| date | Tanggan dengan format : “YYYY-MM-DD” |
| time | Waktu dengan format: “H:M:S” |
| float | Bilangan Real |
| decimal(n) | Bilangan Desimal dengan n buah di belakang koma |
| enum | Type data yang nilainya sudah didefinisikan |
Dalam tutorial ini, kita akan mencoba membuat schema untuk aplikasi penjualan sangat sangat sederhana sekali. Silahkan buat schema berikut, kemudian simpan di folder ./root/schema dengan nama toko_skema.yml.
<skema_toko.yml>
Di dalam file skema di atas, kita mendefinisikan enam table dan enam model. Nama table dan nama model boleh berbeda, tapi disarankan sama. Untuk penulisan nama table disarankan menggunakan huruf capital di awal setiap kata yang mendefinisikan nama model tersebut.
Dalam definisi file YAML di atas, berikut penjelasannya :
detect_relations: true
Mendefinisikan, bahwa CLI (Command Line Interface) harus melakukan deteksi dan membuat Relasi antar model secara secara otomatis.
actAs: [Timestampable]
Mendefinisikan agar di setiap class model yang dibuat dapat melakukan pencatatan tanggal pembuatan dan tanggal update untuk setiap data yang tersimpan di dalamnya.
package: Master
Mendefinisikan package yang digunakan, yaitu Master
options: type: MyISAM
Mendefinisikan tipe table yang akan digunakan di dalam database.
Pembuatan Model
Model dalam konsep MVC, secara sederhana diartikan sebagai representasi dari table-tabel dan relasinya yang tersimpan di dalam database.
Pembuatan model ini sendiri, dapat dilakukan secara manual, maupun secara otomatis dengan bantuan tool yang telah disediakan oleh doctrine. Untuk mempermudah proses pengembangan dan pemeliharaan, disarankan untuk menggunakan tool, karena dengan bantuan tool ini, maka model, dan database (termasuk table dan relasinya) akan secara otomatis dibuatkan/digenerate dari file skema yang tersimpan di dalam folder ./root/schema.
Untuk membuat model secara otomatis, langkah-langkahnya sebagai berikut:
- Buka Comand Line (cmd)
- Kemudian pindahkan direktori kerja ke interpreter php yang dimiliki webserver.
>Cd c:\xampp\php
- Eksekusi file : .\toko\doctrine dengan parameter build-all-reload
>php c:\xampp\htdocs\toko\doctrine build-all-reload
- Masukan “y”, jika muncul pertanyaan konfirmasi.
- Finish…
Asumsi:
- XAMPP diinstall di C:\
- Root Direktori Aplikasi adalah “toko”
Sampai tahap ini, kita telah berhasil membuat model sesuai yang didefinisikan di dalam ./root/schema/toko_skema.yml. Model yang telah dibuat bisa dilihat di ./root/models.




