PHP adalah bahasa pemrograman web yang paling populer di web. Bahasa ini dipakai diwebsite besar di dunia seperti facebook, twitter dan wikipedia. Dengan banyaknya pemakai dan makin kompleknya permasalahan pemrograman web yang dihadapi saat ini maka munculah puluhan framework di luar sana. Framework adalah sekumpulan class dan library yang terpadu sehingga memudahkan menyelesaikan permasalahan pemrograman secara menyeluruh yang berefek pada waktu pembuatan website menjadi lebih singkat. Beberapa contoh framework di PHP adalah CakePHP, Zend Framework, CodeIgniter dan Yii Framework.
Permasalahannya, ketika programmer baru ingin mencoba framework, dia bingung dalam memilih mana yang paling cocok bagi dia. Agar tidak bingung memilih, kita harus paham dulu fitur yang ditawarkan oleh Framework apakah cocok bagi kita.
Berikut ini adalah fitur yangharus kita pahami.
MVC
Model View controller adalah konsep mengembangkan aplikasi yang memisah antar user interface (view) dengan Aksi (controller) dan operasi database (model). Dengan pemisahan ini, maka code akan lebih rapih dan memudahkan kerja team. Semua Framework menggunakan Model ini. Jangan lupa, sebelum belajar MVC, anda harus paham konsep Pemrograman berorientasi object.
Push dan Pull
Konsep pengiriman data dibagi menjadi dua, yaitu push dan pull. Push artinya user melakukan aksi, baru server mengirim data, contohnya saat anda mengklik sebuah link. Kebalikan dari Push adalah Pull, server mengirim data ke user tanpa melalui proses ‘action’ user, namun lewat triger . Contohnya adalah notifikasi facebook atau timeline twitter. Kalau penjelasan saya salah, tolong dikoreksi:).
ORM (Object Relational Mapping )
Object Relational Mapping adalah teknik menghubungkan database relasional dengan bahasa pemrograman Berorientasi object. Tujuannya adalah memudahkan dalam operasi data. Konsep ini banyak dipinjam dari Java dan Ruby on rail.
Scaffolding (CRUD)
Scaffolding fitur yang berhubungan dengan operasi CRUD (Create, retrive,udpate,delete) database. Jika suatu framework sudah mendukung Scaffolding, maka proses proses yang berhubungan dengan database sangat cepat dibuat, bahkan bererapa framework akan membuatkan secara otomatis untuk anda. Fitur Scaffolding ada hampir disetiap framework PHP, namun Framework yang mempunyai kemampuan membuatkan code untuk pengolahan database untuk anda adalah Yii Framework.
i18n & L10n (internasionalisasi dan lokalisasi)
Internasionalisasi adalah fitur untuk memudahkan programmer membuat satu website multibahasa. Sedangkan lokasisasi membuat website mendukung banyak format lokal. Sebagai contoh, format mata Uang, Format waktu dan format Angka. Yii dan Zend adalah framework yang mendukung fitur ini.
Ajax
Ajax adalah teknologi yang memungkinkan transfer data antara browser dengan server terjadi dibelakang layar. Dengan ajax, website anda lebih interaktif dan responsif. Framewwork yang sudah mendukung ajax adalah Zend, Yii, cakePHP dan Code Igniter, namun implementasi ajax untuk masing masing framework berbeda beda, ada yang menggunakan Library Javascript pihak ketiga seperti jQuery ada juga yang builtin terintegrasi framework.
Form Validation
Validasi form adalah teknik pengecekan input data user . contohnya apakah textfield tidak boleh kosong, input harus angka, input harus email dan sebagainya. Sebagian besar framework sudah mengimplementasikan fitur ini. Manfaatnya bagi programmer akan sangat terasa karena tidak perlu lagi membuat code validasi.
Caching
Caching adalah teknik menyimpan halaman atau data yang diambil dari database ke memory atau ke folder temporary di server. Tujuannya, jika ada user lain yang meminta data yang sama, controller tidak perlu mengambil ke database, tapi langsung di ambilkan dari cache. Efeknya,user merasa akses lebih cepat dan beban server juga berkurang. Caching sangat terasa manfaatnya jika visitor website mencapai ribuan atau jutaan view dalam sehari.
Security
Security disini sangat luas, namun intinya adalah mengamankan server, code, data dan aplikasi dari input yang itdak valid atau akses dari pihak yang tidak bertanggung jawab. Teknik pengamanan masing-masing framework berbeda . Ada yang hanya mendukung akses control list (autorisasi), ada yang menekankan pada SQL injection dan ada yang mengamankan dari berbagai sisi lainnya. Intinya makin banyak fitur kemanannya makin bagus frameworknya, namun makin komplek sistem dan librarynya.
Template
Template digunakan untuk membuat tampilan konsisten, cantik dan standar. Beberapa framework membuat templatenya sendiri, namun ada juga framework yang memanfaatkan template dari project lain seperti Smarty atau QFrom. Beberapa framework membuat fitur ini makin canggih, misalkan dukungan terhadap thema(mirip dengan fitur WordPress atau Joomla).
kesepuluh hal itulah yang perlu anda pertimbangkan saat memilihnya. Informasi lengkap tentang framework dan perbandinganya bisa anda akses di
- PHP Framework, website yang berisi informasi framework PHP dan popularitasnya, http://www.phpframeworks.com/
- Wikipedia, Comparison of Web Application ( section PHP) http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#PHP_2
Daripada pakai PHP framework mendingan pakai Node.js.
Ada frameworknya juga.. tapi lebih fleksibel
http://rakifsul-sysmon-id.bitballoon.com/
Di situ contohnya bikin aplikasi seperti Windows Task Manager…