Cara apa yang terbaik bagi para developer untuk membangun aplikasinya--dalam kasus ini, menggunakan PHP?
Apakah sebaiknya dia menggunakan framework tertentu? Atau apakah dia harus membanguan semuanya dari nol--from the scratch?
Pertanyaan kemudian berkembang, framework yang mana yang cocok dan sesuai dengan keperluan aplikasi tersebut.
Sebelum mengambil pilihan, iseng-iseng kita googling, ternyata ada puluhan dan mungkin ratusan framework untuk keperluan web programming, dari mulai yang php murni sampai yang berbasis ajax.
Lantas bagaimana sebaiknya? Hampir semua komunitas yang menggunakan framework tersebut berargumen bahwa framework yang digunakannyalah yang terbaik. Framework War, itulah yang terjadi.
Sekadar saran, bagi para programmer pemula, dianjurkan untuk jangan dulu menggunakan framework. Biasakanlah membangun sebuah aplikasi dengan hanya menggunakan class dan fungsi bawaan php. Karena bagaimanapun, kegunaan framework baru terasa manfaatnya dan kecepatannya, seandainya kita sudah menguasai sebagian besar kegunaan fungsi dan class yang ada di php.
Framework, secara definisi adalah kerangka acuan, yakni sekumpulan library berupa class dan fungsi yang siap pakai. Tujuan penggunaan framework terutama lebih berorientasi kecepatan pemrograman. Di php sendiri ada beberapa main framework seperti CakePhp, Symfony, Prado, drupal, CodeIgniter dll.
Bagi Anda yang ingin membangun aplikasi web, dan lebih mendekati fungsi-fungsi CMS, gunakanlah Drupal. Sedangkan untuk aplikasi yang menggunakan form-form, saya menganjurkan menggunakan Prado.
Sedangkan Cakephp, adalah framework dasar yang berbasis MVC (Model, View dan Controller) artinya ketiga unsur web : Model (database), View (Tampilan) dan Controller (jembatan antara Tampilan dan Database), dicoba dipisahkan. Untuk Drupal dan Smarty, tampilan dipisahkan sedangan View dan Controller masih tetap menyatu.
Dan jangan lupa, bacalah dan rujuklah dokumentasi dari setiap framework yang Anda gunakan. Karena tanpa itu, Anda seperti membangun rumah dengan sebuah alat, tapi Anda sendiri tidak memegang dan menggunakan petunjuk manualnya.

