3.04.2008

Menikmati Alternasi - PHP Symfony

Salah satu alternatif penggunaan framework untuk rapid development PHP adalah symfony.
Symfony menggunakan ORM Propel, memungkinkan pembangkitan source code dari skema database yang ada (reverse engineering).

jika database fisik belum ada, bangun skeleton schema.yml terlebih dahulu. kemudian menggunakan perintah symfony build-model dan symfony build-sql akan membangkitkan model dan statement SQL untuk database tersebut.

jika database fisik telah ada, Propel dapat membangkitkan dengan perintah symfony propel-build-schema.

dengan demikian pendefinisian schema.yml menjadi penting di sini dan sangat menghemat waktu jika pendefinisian database telah benar.

penggunaan propel-build-model membangkitkan kelas dalam package lib.modules dengan kata kunci nama kelas [model]*.php dan lib.modules.om dengan kata kunci nama kelas Base[model].php.

Framework adalah perangkat pendukung, bukan perangkat utama, oleh karenanya itu business model harus sebisa mungkin lepas dari spesifikasi framework yang dipakai. Dari pembangkitan kelas dengan propel-build-model tampak bahwa model disimpan dalam kelas Base[model]. Hal ini mencerminkan desain yang kurang baik jika kita berpindah dengan framework yang lain. Solusi multiple inheritance tidak dapat digunakan karena PHP tidak mendukungnya. Oleh karena itu solusi alternatif adalah membangun interface untuk model kita.

Interfaces ditempatkan di packages lib.interfaces. Dengan load propel-build-model, konfigurasi class autoload akan menyertakan definisi interfaces yang dibuat tanpa menghapus definisi model lain yang telah dibangkitkan dan dimodifikasi sebelumnya. Gambar dapat dilihat berikut ini:


Walaupun informasi attribute akan hilang, setidaknya definisi method masih dapat disimpan, dan detail implementasi tetap diuraikan pada kelas turunan yang coupling dengan framework symfony agar dapat memanfaatkan tools development dari symfony yang sudah ada, seperti propel-init-admin, propel-crude-generate.

No comments:

Post a Comment