Yuk Kita Mengenal Lebih Dekat Framework PHP dan Jenisnya

Membuat web memang tidak mudah. Ada banyak source yang terkait didalamnya, PHP mungkin menjadi salah satunya.

Yuk Kita Mengenal Lebih Dekat Framework PHP dan Jenisnya

BRITO.ID, JAMBI - Halo kawan-kawan, untuk membuat web memang tidak mudah. Ada banyak source yang terkait didalamnya,  PHP mungkin menjadi salah satunya. Nah..di minggu lalu, saya telah membahas perbedaan CMS dan FRAMEWORK, untuk minggu ini, saya akan membedah khusus kepada Framework itu sendiri.

Ada banyak Framework yang dapat di gunakan oleh para web developer untuk membangun sebuah website ataupun aplikasi berbasis website, tapi sebelum saya membedah satu persatu secara mendalam per framework nya, saya akan memperkenalkan terlebih dahulu, apa itu Framework ?.

Sekilas tentang PHP, PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995 dan terus dikembangkan hingga saat ini. Ada banyak sekali web termasuk CMS yang dibuat menggunakan bahasa PHP seperti WordPress dll.

Bisa dilihat dari namanya. Framework dapat diartikan sebagai sebuah kerangka kerja. Kerangka kerja dimana dapat memudahkan pekerjaan kita. Jika dikaitkan dengan PHP maka dapat diartikan sebagai suatu kerangka kerja yang telah terpola dan memudahkan pengembang web dalam pembuatan web yang menggunakan script PHP. Mempermudah yang dimaksud misalnya.

Dalam membuat sebuah aplikasi web kita sering menulis script PHP secara keseluruhan (konvensional) dan itu pun kita ulang pada halaman yang lain. Bukankah itu begitu tidak efesien disamping berat ketika diload ? Dengan PHP Frameworksemua bisa teratasi. Semuanya sudah diatur menjadi pola-pola tertentu yang disebut dengan class. Pola/class inilah yang meringankan kita dalam penulisan script dan load halaman web.

PHP Framework berbeda jika dibandingkan dengan CMS (Content Management System), meski sama-sama meringankan dalam pembuatan web. Jika menggunakan CMS, kita tidak perlu pusing menulis script. Semuanya telah dibuat menjadi Fix dan kita hanya perlu mengatur bagian content dan interfacenya saja. Tidak demikian dengan Framework. Membangun sebuah aplikasi web dengan menggunakan framework, kita tetap harus menuliskan kode perintah PHP sesuai dengan ruang lingkungan yang disediakan oleh framework.

PHP Framework menggunakan metode pengembangan berbasis MVC. Namun apa itu MVC ? MVC merupakan suatu metode untuk memisahkan bagian-bagian dari suatu web aplikasi. MVC adalah kependekan dari Model View Controller. MVC terdiri dari tiga bagian yaitu :

  1. Model : Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu kita dalam pengelolaan database seperti memasukkan data ke database, update data dan lain-lain.
  2. View : View adalah bagian yang mengatur tampilan ke user. Bisa di katakan berupa halaman web.
  3. Controller : Controller merupakan bagian yang menjembatani model dan view. Controller berisi script-script php yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.

Disinilah letak perbedaan utama antara framework dengan CMS atau PHP konvensional. Dengan metode MVC, bagian tampilan, logika serta query database diletakkan secara terpisah namun tetap sinkron sehingga pembuatan aplikasi menjadi lebih terstruktur dan sederhana. Model digunakan dalam menuliskan script database, Controller untuk mengembangkan logika pemrogramannya, sedangkan View berfungsi dalam menampilkan layout dari aplikasi yang kita buat. Kelebihan framework antara lain sebagai berikut :

  1. Ringan dan cepat. Framework hanya melakukan pemanggilan pustaka/kelas yang dibutuhkan sehingga meminimalkan resource yang diperlukan sehingga ketika kita me-load sebuah halaman akan menjadi ringan dan cepat.
  2. Menggunakan metode MVC. Seperti yang telah dijelaskan sebelumnya, dengan metode MVC akan mempermudah kita dalam memahami alur pemrograman karena untuk bagian tampilan, logika dan query database telah dipecah sedemikian rupa.
  3. Mayortitas mendukung berbagai jenis database.

Berikut beberapa contoh PHP Framework beserta kelebihan yang dibawanya :

CodeIgniter

Kelebihan

  • Mudah digunakan dan tidak memerlukan konfigurasi yang rumit
  • Fungsi-fungsi pendukung yang cukup lengkap
  • Mendkung PHP4 dan PHP5
  • Mungkin merupakan Framework MVC paling populer dan paling banyak digunakan
  • Dokumentasi yang sangat bagus, friendly dan didukung oleh forum, wiki, dan komunitas yang besar

Kekurangan

  • Tidak mendukung AJAX, dan ORM
  • Meyediakan dan memisahan file-file dalam MVC pattern, tapi masih memberikan kebebasan user untuk melanggar aturan MVC

CakePHP

Kelebihan

  • Dukungan terhadap AJAX, ORM
  • Automagic function seperti validasi input, dll, yang mempercepat coding
  • Support PHP4 dan PHP5
  • Lebih mencerminkan MVC yang sesungguhnya dibandingkan CI
  • Komunitas pengguna yang besar dan forum cukup baik

Kekurangan

  • Manual yang ada tidak selengkap CI.
  • Butuh waktu belajar yang lebih lama untuk menguasai framework ini dibanding CI. Tapi jika sudah benar-benar mengerti, banyak kelebihan dibanding CI. Beberapa situs menyarankan anda untuk belajar dan terbiasa dulu
    dengan CodeIgniter baru kemudian mempelajari CakePHP.

Symfony

Kelebihan

  • Dukungan terhadap AJAX, ORM.
  • Kompatibel dengan berbagai macam database.
  • Banyak library dan fungsi symfony yang sudah tersedia. Bahkan hampir mendekati CMS. Sehingga ada yang mengatakan ”Symphony is a CMS with a heart of a framework.” ini menjadi kelebihan sekaligus kekurangan.

Kekurangan

  • Tidak mendukung PHP4.
  • Relatif butuh waktu lama untuk mengerti framework ini.
  • Instalasi dan konfigurasinya cukup rumit.

Zend

Kelebihan

  • Dukungan terhadap AJAX, ORM.
  • Berdasarkan informasi dari situs resminya, disebutkan bahwa fokus dari Zend Framework ini adalah untuk membangun aplikasi berbasis Web dan untuk memudahkan dalam mengakses API dari berbagai vendor seperti Google, Amazon, Yahoo!, dan Flickr.

Kekurangan

  • Tidak mendukung PHP4.
  • Manual yang ada kurang mengakomodasi kebutuhan.
  • Performanya relatif lambat (mungkin karena banyaknya library).
  • Konon katanya Framework ini hanya cocok untuk orang dengan skill PHP yang sudah sangat tinggi.

Akelos

Merupakan Framework yang relatif baru dengan kemampuan yang handal dan lengkap

Kelebihan

  • Dukungan terhadap PHP4, PHP5, AJAX, ORM (cukup lengkap dan cukup mengakomodasi semua kebutuhan yang umum dari aplikasi php)

Kekurangan

  • Kurang adanya dukungan komunitas. Mungkin karena masih relatif baru
  • Beberapa forum mengatakan bahwa framewok ini cukup banyak memakan memory

LARAVEL

Laravel adalah sebuah framework PHP yang dirilis dibawah lisensi MIT, dibangun dengan konsep MVC (model view controller).

MVC adalah sebuah pendekatan perangkat lunak yang memisahkan aplikasi logika dari presentasi. MVC memisahkan aplikasi berdasarkan komponen- komponen aplikasi, seperti : manipulasi data, controller, dan user interface.

  1. Model, Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.
  2. View, View adalah bagian yang mengatur tampilan ke pengguna. Bisa dikatakan berupa halaman web.
  3. Controller, Controller merupakan bagian yang menjembatani model dan view.

Beberapa fitur yang terdapat di Laravel :

  • Bundles, yaitu sebuah fitur dengan sistem pengemasan modular dan tersedia beragam di aplikasi.
  • Eloquent ORM, merupakan penerapan PHP lanjutan menyediakan metode internal dari pola “active record” yang menagatasi masalah pada hubungan objek database.
  • Application Logic, merupakan bagian dari aplikasi, menggunakan controller atau bagian Route.
  • Reverse Routing, mendefinisikan relasi atau hubungan antara Link dan Route.
  • Restful controllers, memisahkan logika dalam melayani HTTP GET and POST.
  • Class Auto Loading, menyediakan loading otomatis untuk class PHP.
  • View Composer, adalah kode unit logikal yang dapat dieksekusi ketika view sedang loading.
  • IoC Container, memungkin obyek baru dihasilkan dengan pembalikan controller.
  • Migration, menyediakan sistem kontrol untuk skema database.
  • Unit Testing, banyak tes untuk mendeteksi dan mencegah regresi.
  • Automatic Pagination, menyederhanakan tugas dari penerapan halaman.

Bagaimana ? sudah bisa menentukan framework mana yang bakalan dipakai pada saat anda ingin membangun sebuah website ?