FRAMEWORK PHP UNTUK PEMROGRAMAN WEB
Pada
umunya, ada banyak sekali framework berdasarkan bahasa pemrograman.
Untuk PHP sendiri, ada framework: Yii, CodeIgniter, CakePHP, Zend,
Symphony, PHP Dev Shell, Prado, Akelos, dan mungkin masih banyak lagi
tapi admin belum nemu jenis lainnya hehehe. Untuk pemrograman Java, ada
framework: Jquery, MooTools, DoJo Toolkits, Prototype, ExtJS, dan masih
banyak lagi yg admin belum nemu juga. Nah, khusus pemrograman Ruby On
Rails (ROR), ada framework: Merb, Camping, Ramaze, Vintage, Halcyon,
Nitro/Og, Wuby, Sinatra, Ruby WAF, Webby, dll mungkin ada yg bisa bantu
admin? Hehehe
Banyak
sekali developer-developer muda tumbuh di tanah air. Beberapa
diantaranya fokus pada pemrograman web. Dan banyak juga kampus-kampus
yang beralih ke pemrograman berbasis web sebagi salah satu fokus mata
kuliah.
Tapi
sayang, terjun di dunia pemrograman web(khususnya php) hanya berbekal
pemrograman dasar. Dan hanya fokus pada pembuatan hello word(*ups).
Jarang sekali mereka dibekali atau bahkan belajar tentang framework.
Saat ditanya "Pake framework apa waktu buat applikasinya?". Dan sering
jawabannya adalah"Apa itu framework?". Dari jawaban itu, dipastikan
belum tahu manfaat framework dalam pembuatan applikasi berbasis web.
Kenapa harus pake framework? Mungkin ini salah satu pertanyaan yang bagus untuk mengetahui manfaat framework lebih jauh.
Pertama,
dengan adanya framework akan lebih mempermudah memahami mekanisme kerja
dari sebuah applikasi. Ini tentunya akan sangat membantu proses
pengembangan system yang dilakukan secara team. Semua anggota di
wajibkan untuk memahami dari pola kerja framework tersebut selebihnya
anggota team hanya mempelajari proses bisnis yang di kehendaki oleh
sistem untuk kemudian di tuangkan kedalam framework tersebut. Dalam
artian setiap orang harus mempunyai metode yang sama dalam menyelesaikan
applikasi tersebut.
Framework
memiliki manfaat mempercepat dan mempermudah pembangunan sebuah
aplikasi web, tanpa harus membuat fungsi atau class dari awal. Oleh
karenanya, dengan memakai framework akan menghemat waktu pengerjaan
suatu applikasi, karena setiap anggota sudah memiliki sebuah acuan dalam
menyelesaikan modul. Dalam hal ini misalnya semakin banyak library yang
ada semakin mempercepat anggota untuk menemukan solusi karena tidak
setiap anggota harus membuat Class atau fungsi untuk kasus yang relatif
sama. Berikutnya Team tidak akan di susahkan dengan adanya perputaran
anggota dalam artian jika ada anggota yang tidak bisa melanjutkan lagi
pekerjaannya anggota yang lain bisa meng-cover kekosongan tersebut.
Bayangkan jika setiap modul yang dikembangkan mempunyai logika yang
berbeda tentunya akan memakan waktu yang banyak untuk proses pemahan
akan system tersebut.
Kesekian-kalinya
dengan adanya framework akan menjaga integritas dari modul-modul yang
dikembangkan. Tentunya hal ini juga tergantung dari metode yang
dikembangkan sendiri. framework hanya membantu dan
memungkinkan/mempermudah proses integrasi, tidak berarti dengan adanya
framework system otomatis akan ter-integrasi. Dan masih ada
kelebihan-kelebihan lain yang dimiliki oleh framework.
Web
Appliaction framework adalah sebuah kerangka kerja perangkat lunak yang
dirancang untuk mendukung pengembangan situs Web dinamis. Didalam
framework ini sendiri sudah terkandung beberapa fitur yang sangat
membantu dalam membuat web applikasi. Diantaranya:
1. Security
Beberapa
framework sudah memiliki feature otentikasi (Authentication) dan
otorisasi (Authorization), yang memungkinkan web server untuk
mengidentifikasi pengguna aplikasi, dan membatasi akses ke fungsi
berdasarkan beberapa kriteria yang ditetapkan.
o Authentication
Otentikasi
adalah tindakan membentuk atau menyatakan sesuatu (seseorang) sebagai
otentik, yaitu bahwa klaim yang dibuat oleh sesuatu (seseorang) atau
tentang subjek adalah benar.
o Authorization
Otorisasi
adalah fungsi menentukan hak akses terhadap sumber daya, yang
berhubungan dengan keamanan informasi dan keamanan komputer pada umumnya
dan kontrol akses pada khususnya.
2. Database access and mapping
Banyak
aplikasi web kerangka menciptakan API bersatu ke backend database,
memungkinkan aplikasi web untuk bekerja dengan berbagai database tanpa
perubahan kode, dan memungkinkan programmer untuk bekerja dengan konsep
tingkat yang lebih tinggi. Contoh : lib adodb
3. URL mapping
Sebuah
pemetaan sistem URL yang menggunakan pencocokan pola atau penulisan
ulang URL yang memungkinkan lebih "ramah" digunakan, meningkatkan
kesederhanaan situs dan memungkinkan untuk mengindeks lebih baik oleh
search engine.URL dengan akhiran
"/page.cgi?cat=science&topic=physics" dapat di ganti menjadi lebih
simple seperti "/page/science/physics"
4. Web template system
Sebuah
sistem template Web menggambarkan perangkat lunak dan metodologi yang
digunakan untuk menghasilkan halaman web dan untuk ditempatkan di situs
Web dan pengiriman melalui Internet. Seperti proses sistem web template,
menggunakan mesin template.
Contoh Template engine untuk php antara lain:
o Smarty
o patTemplate
o Mytemplate
o TinyButStrong
o VlibTemplate
5. Caching
Web
cache adalah cache dari dokumen web (misalnya, halaman HTML, gambar)
untuk mengurangi penggunaan bandwidth, server load, dan lag dirasakan.
6. Ajax
Ajax,
singkatan dari "Asynchronous JavaScript dan XML", adalah teknik
pengembangan web untuk menciptakan aplikasi web interaktif.
7. Web services
A
web service (webservice) didefinisikan oleh W3C sebagai sebuah sistem
software yang dirancang untuk mendukung interaksi interoperable
(kemampuan menghubungkan operasi) mesin-ke-mesin melalui jaringan
8. SOAP
SOAP
(Simple Object Access Protocol) adalah standar untuk bertukar
pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan
untuk program yang berjalan pada suatu sistem operasi (OS) untuk
berkomunikasi dengan program pada OS yang sama maupun berbeda dengan
menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data.
9. WSDL
WSDL (Web Services Description Language) adalah fromat XML yang diterbitkan untuk menerangkan web service.
Dari sekian banyak feature, tidak semua framework memilikinya. Paling tidak beberapa feature tersebut terdapat didalamnya.
Macam-macam Framework PHP:
1. Yii
Yii
adalah kerangka kerja(framework) PHP berbasis-komponen dengan performa
tinggi untuk pengembangan aplikasi Web berskala-besar. Yii menyediakan
penggunaan ulang (reusability) maksimum dalam pemrograman Web dan mampu
mempercepat proses pengembangan secara signifikan. Nama Yii (dieja
sebagai /i:/) singkatan dari easy, efficient dan extensible
(mudah,efisien, dan bisa diperluas). Untuk menjalankan aplikasi Web yang
diperkuat Yii, Anda memerlukan server Web yang mendukung PHP 5.1.0 atau
lebih tinggi. Bagi para pengembang yang ingin menggunakan Yii, mengerti
Object Oriented Programming (OOP) akan sangat membantu, karena Yii
merupakan kerangka kerja OOP murni. Yii adalah kerangka kerja
pemrograman umum Web yang bisa dipakai untuk mengembangkan semua jenis
aplikasi Web. Dikarenakan sangat ringan dan dilengkapi dengan solusi
caching yang canggih, Yii sangat cocok untuk pengembangan aplikasi
dengan lalu lintas-tinggi, seperti portal, forum, sistem manajemen
konten (CMS), sistem e-commerce, dan lain-lain. Seperti kebanyakan PHP
framework, Yii adalah MVC framework. Yii melampaui framework PHP lain
dalam hal efisiensi, kekayaan fitur, dan kejelasan dokumentasi. Yii
didesain dengan hati-hati dari awal agar sesuai untuk pengembangan
aplikasi Web secara serius. Yii bukan berasal dari produk pada beberapa
proyek maupun konglomerasi pekerjaan pihak-ketiga. Yii adalah hasil dari
pengalaman kaya para pembuat pada pengembangan aplikasi Web dan
investigasi serta refleksi kerangka kerja pemrograman Web dan aplikasi
yang paling populer.
2. Codeigniter
Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain,
Performa
sangat cepat : salah satu alasan tidak menggunakan framework adalah
karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi
Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter
merupakan framework yang paling cepat dibanding framework yang lain.
Konfigurasi
yang sangat minim (nearly zero configuration) : tentu saja untuk
menyesuaikan dengan database dan keleluasaan routing tetap diizinkan
melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti
database.php atau autoload.php, namun untuk menggunakan codeigniter
dengan setting standard, anda hanya perlu merubah sedikit saja file pada
folder config.
Banyak
komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk
berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru.
Dokumentasi
yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai
user guide yang sangat bagus dan lengkap untuk dijadikan permulaan,
bahasanya pun mudah dipahami. Beberapa website yang menggunakan
CodeIgniter ini antara lain: TvOne.co.id, Kompas.com dan banyak lagi
yang lainnya. Anda bisa membaca secara lengkap tentang CI ini dibeberapa
alamat di bawah:
3. CakePHP
CakePHP
merupakan sebuah rapid development framework yang gratis dan sumber
terbuka untuk PHP. CakePHP merupakan struktur pondasi bagi programer
untuk membuat aplikasi web. Tujuan utamanya adalah mempermudah programer
bekerja secara terstruktur dan cepat tanpa kehilangan fleksibilitas.
CakePHP membuang proses monoton dalam pengembangan aplikasi web. CakePHP
menyediakan semua alat bantu yang diperlukan untuk memulai tugas coding
yang perlu diselesaikan: yaitu logika aplikasi. Daripada membuat
sesuatu yang baru setiap memulai proyek baru, Anda bisa meninjau unduhan
CakePHP dan mulai fokus kepada logik aplikasi yang hendak dibangun.
CakePHP memiliki tim pengembang (developer) dan komunitas yang aktif
(membawa nilai tambah ke proyek). Selain menjaga Anda dari melakukan hal
yang membuang waktu, penggunaan CakePHP juga berarti inti (core)
aplikasi Anda yang sudah teruji dengan baik dan secara periodik terdapat
peningkatan/perbaikan.
Berikut ini adalah daftar fitur yang dapat dinikmati apabila menggunakan CakePHP:
* Komunitas yang aktif dan bersahabat
* Lisensi yang fleksibel
* Kompatibel dengan PHP versi 4 dan 5
* Operasi CRUD yang terintegrasi untuk interaksi dengan database
* Scaffolding aplikasi
* Otomatisasi pembuatan code (code generation)
* Arsitektur MVC
* Request dispatcher dengan URL yang kustom, rapih dan adanya route
* Validasi data yang terintegrasi
* Sistem templating yang cepat dan fleksibel (sintaks PHP, tersedia helpers)
* View Helpers untuk AJAX, JavaScript, HTML Forms dan banyak lagi
* Email, Cookie, Keamanan, Session, dan komponen Request Handling
* ACL yang fleksibel
* Sanitasi Data
* Caching yang fleksibel
* Lokalisasi
* Dapat bekerja dari direktori web dimana saja, dengan sedikit atau bahkan tanpa perlu melibatkan konfigurasi Apache
4. Zend
Zend
adalah salah satu framework bahasa pemrograman PHP yang berbasis OOP
(Oject Oriented Programming), sederhana, dan open source. Zend Framework
difokuskan untuk membangun aplikasi Web 2.0 dan Web Service yang lebih
aman, reliabel dan modern. Framework ini juga telah mendukung API untuk
beberapa vendor seperti Google, Amazon,Yahoo!, Flickr
beberapa
fiur terbaru Zend Framework antaralain : AJAX support through JSON,
Search – Lucene, Syndication, Web Services, High-quality,
object-oriented PHP 5, dll..
5. Symfony
Symfony
adalah sebuah framework lengkap yang didesain untuk mengoptimalkan
pengembangan aplikasi berbasis web dengan menyuguhkan beberapa
fitur-fitur andalan. Untuk pemula, symfony mengelompokkan aturan-aturan
bisnis aplikasi (business rules), lokiga server, dan tampilan
presentasi. Symfony menyediakan bermacam-macam alat dan kelas-kelas yang
ditujukan untuk memperpendek waktu pengembangan sebuah aplikasi web
yang komplek. Sebagai tambahan, symfony mengotomatisasi tugas-tugas umum
sehingga pengembang dapat memfokuskan diri pada spesifikasi aplikasi
secara keseluruhan. Sebagai hasil akhir, dengan kelebihan-kelebihan ini
berarti bahwa tidak perlu lagi menemukan (reinvent the wheel) ketika
sebuah aplikasi web baru akan dibangun!
Symfony
secara keseluruhan ditulis menggunakan PHP 5. Symfony telah diuji
secara sepenuhnya dalam bermacam-macam proyek dalam dunia nyata, dan
sesungguhnya symfony telah digunakan pada website e-business dengan
kunjungan yang padat. Symfony kompatibel dengan kebanyakan database
engine, seperti MySQL, PostgreSQL, Oracle, dan Microsoft SQL
Server.Symfony berjalan di atas platform *nix dan Windows. Berikut
fitur-fitur detail symfony.
Fitur Symfony
Symfony dibangun untuk memenuhi kebutuhan-kebutuhan berikut:
Mudah
untuk di-install dan dikonfigurasi pada kebanyakan platform (dan
dijamin dapat bekerja pada platform standar *nix dan Windows).
Tidak tergantung pada Database engine tertentu (Database engine-independent).
Dalam banyak pemakaian mudah digunakan, tetapi tetap cukup fleksibel jika digunakan pada pemakaian yang komplek.
Didasarkan pada konvensi pemikiran atas konfigurasi--pengembang perlu mengkonfigurasi hanya pada yang diluar aturan.
Mengacu pada kebanyakan standar web dan pola-pola desain yang ada.
Enterprise-ready--dapat
disesuaikan dengan kebijakan dan arsitektur teknologi informasi (TI)
yang sudah ada, dan cukup stabil bila digunakan pada proyek jangka
panjang.
Kode yang mudah dibaca, dengan komentar phpDocumentor, untuk kemudahan perawatan.
Mudah untuk dikembangkan, dengan disediakannya integrasi dari vendor library yang lain.
6. PHP Dev Shell
PHPDevShell
merupakan kepanjangan dari PHP Development Shell. Fungsinya adalah
bekerja sebagai shell pada script PHP. aplikasi ini dtujukan untuk orang
yang sudah terbiasa bekerja dengan PHP, dan ingin secara cepat membuat
aplikasi standalone tanpa harus disusahkan dengan membuat
menu,tampilan,gaya bahasa dan lain sebagainya.
PHPDevShell
sudah memiliki kemanan yang memadai. Segala urusan yang menyangkut
admin dapat ditulis dan dibuat dengan tampilan berbasis web.sehingga
sangat memudahkan kita dalam urusan interface. Mungkin untuk lebih
mengetahui nya anda harus mencobanya sendiri, saya yakin anda akan cukup
berani untuk mencobanya. Untuk keterangan lebih mendalam silahkan lihat
situs resminya www.phpdevshell.org .Dengan lisensi GPL, dan harus di
ingat software ini bukan buat windows tapi buat system operasi linux
7. Prado
Prado
adalah framework yang bersifat component-based dan event-driven di
PHP5. PRADO sendiri merupakan singkatan dari PHP Rapid Application
Development Object-oriented. PRADO bukanlah MVC-model framework.
Inspirasi
pembuatan PRADO berasal dari Apache Tapestry (framework JSP). Selama
desain dan implementasi, PRADO banyak mengambil ide-ide dari Delphi dan
ASP.NET. Versi pertama dari PRADO akhirnya keluar pada Juni 2004 dan
menggunakan PHP4. Tergiur untuk ikut Zend PHP5coding contest, PRADO
ditulis ulang ke PHP5, yang akhirnya membawa PRADO memenangkan grand
prize di kontes itu.
Kelebihan PRADO?
Reuseability - Semua yang ada di PRADO adalah komponen yang reuseable.
Event-driven
programming – aktivitas End-user, seperti menekan tombol submit
diterjemahkan menjadi event server sehingga developer dapat lebih fokus
ke interaksiuser.
Team integration – Presentation dan logic terpisah.
Powerful
Web controls – ‘Dipersenjatai’ dengan komponen yang dapat membantu kita
untuk membuat aplikasi web yang sangat interaktif.
AJAX support – mulai v3.1
XHTML compliance – Wep page yang digenerate oleh PRADO merupakan XHTML-compliant
8. 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
Menurut
beberapa survei, CodeIgniter adalah framework yang paling mudah
dipelajari,karena keserhanaan strukturnya dan kelengkapan dokumentasinya
yang baik. Selain itu, kerapiankode (clean and healthy code) dan
ukurannya yang ramping membuatnya lebih cepat diaksesdibandingkan dengan
framework lainya.Perlu diketahui nyaris (bahkan mungkin semua)
framework menggunakan konsep yangsama dalam membangun suatu aplikasi,
yaitu konsep MVC (Model View Controller).Kesimpulannya, kalau kita
memahami MVC, maka secara garis besar kita sudah menguasaiframework,
apapun jenis frameworknya. Dan satu lagi kuncinya, pemahaman terhadap
OOP (Object Oriented Programming)akan sangat membantu dalam menguasai
framework.
Nah... apa framework yang cocok buat kamu?
Bisa di-share ke admin yaaa.