Pengaturan

Gambar

Lainnya

Tentang KASKUS

Pusat Bantuan

Hubungi Kami

KASKUS Plus

© 2024 KASKUS, PT Darta Media Indonesia. All rights reserved

miyavizmAvatar border
TS
miyavizm
Diskusi PHP Frameworks
Untuk semua PHP programmer, salah dilema yang cepat atau lambat akan ditemui adalah apakah akan menggunakan framework atau tetap berkutat pada native programming. Ga bisa dipungkiri, frameworks dibuat untuk memudahkan para developer untuk mendevelop aplikasi yang dikembangkan. Bagi mereka yang pada akhirnya menggunakan framework, dilema yang akan ditemui lagi juga framework apa yang akan digunakan sebagai dasar aplikasi

Setiap framework dibuat dengan masing-masing kelebihan dan kekurangan. Maka dengan tegas saya sebagai TS mengatakan TIDAK ADA FRAMEWORK YANG PALING BAGUS. Kalau ada yang bilang suatu framework sebagai the best framework, sorry to say then I'll say that's bullshit. Mereka yang berpikiran demikian dipersilakan untuk meninggalkan trit ini, daripada flaming dan membuat emosi para pengguna framework lainnya. Trit ini saya buat dengan tujuan diskusi dan sharing antar sesama pengguna PHP frameworks dengan tujuan saling berbagi informasi, sehingga dapat menambah pengetahuan kita akan kelebihan dan kekurangan masing-masing framework. Jika ada sanggahan atau pendapat yang lain mengenai suatu pernyataan kaskuser, jangan langsung emosi ataupun ditertawakan. Jelaskanlah dengan baik kenapa menurut Anda pernyataan kaskuser tersebut (mungkin) salah. Dengan demikian kaskuser yang membuat pernyataan, ataupun kaskuser lain, dapat memberikan sanggahan ataupun masukan, yang pada akhirnya menambah pengetahuan kita bersama. Trit ini diharapkan juga dapat membantu para PHP programmer lain, khususnya pemula, untuk menentukan framework apa yang akan mereka gunakan, sesuai dengan gaya dan selera mereka masing-masing.

Kalau begitu, ijinkan saya mulai dari pengalaman saya pribadi. Latar belakang saya bukan Teknik Informatika, melainkan Teknik Elektro. Saya 9 tahun berkutat di bidang programming, khususnya PHP. Jadi saya tipe orang yang langsung straight to the point, ngga suka bertele-tele. Menurut saya, apa gunanya bertele-tele menggunakan metode MVC, OOP, or any other fancy things kalau cuma untuk ambil 1 query dari database, ataupun hanya untuk echo "Hello world". Beberapa tahun lalu, setelah sekian lama bergerilya secara native ataupun menciptakan "small framework" saya sendiri, akhirnya saya memutuskan untuk berpindah untuk menggunakan framework yang lebih praktis dan commonly known. Alasan saya simple, karena semakin lama load saya semakin banyak dan rumit, dan kita tidak bisa terus berasumsi "the same person will always stick with us". Team akan selalu berotasi dan mengalami banyak turn over, dan kita tidak mungkin terus menerus mengajari dari awal orang yang baru masuk dan bergabung dalam team kita. Oleh sebab itu, sangatlah penting (bagi saya) untuk menggunakan common framework sebagai dasar platform aplikasi-aplikasi yang saya kembangkan.

Ketika melakukan research, baik melihat source code dari framework terkait ataupun menelusuri berbagai forum, ada beberapa option yang saya temukan cukup menarik. Sebut saja Zend, Symfony, Code Igniter, CakePHP, Kohana, dan lain sebagainya. Ada banyak pro dan kontra yang saya temukan ketika melakukan research untuk memutuskan framework apa yang akan saya gunakan (setidaknya pro dan kontra itu saya nilai dari sudut pandang saya). Saya akan share beberapa penilaian saya terhadap beberapa framework menurut sudut pandang saya, dimana mungkin hal ini tidak valid karena tolak ukurnya adalah pendapat saya, kebutuhan saya, ataupun perkembangan framework terkait yang terus berkembang dari waktu ke waktu.

Zend Framework
Corporate or enterprise programmer akan menyukai framework yang satu ini. Library yang lengkap, ditambah full support oleh pihak Zend sendiri sudah pasti menjadi nilai plus tersendiri untuk framework ini. Sayangnya hingga saat ini, Zend terlalu complicated untuk saya. Menurut saya Zend terlalu overbloated, tidak sesuai untuk saya yang simple dan straight to the point. Namun untuk mereka yang mengembangkan aplikasi untuk skala enterprise, saya cukup optimis kalau Zend lah yang mereka cari.

Symfony
Sama seperti Zend, level untuk framework ini adalah untuk enterprise level. Symfony bahkan memiliki program sendiri untuk para penggunanya untuk mendapatkan sertifikat. Sayangnya Symfony juga terlalu besar untuk saya, dan ketika saya melihat source code dan installasinya, saya cukup pusing karena agak terlalu rumit. Jadi mungkin saya baru akan menggunakan kedua framework ini (Zend dan Symfony) di kesempatan yang akan datang, apabila saya harus mengembangkan aplikasi berskala enterprise. Tapi untuk saat ini, saya terpaksa harus skip kedua framework ini karena terlalu besar untuk kebutuhan saya.

CakePHP
CakePHP menurut saya cukup bagus, terutama semenjak dirilisnya CakePHP 2. Konvensinya semakin bagus dan strict, dan proses eksekusinya pun semakin cepat dibandingkan CakePHP 1. Satu yang saya suka dari CakepPHP adalah ORM-nya. Menurut saya, ORM CakePHP sangat baik dan didevelop dengan serius. Hingga saat ini kantor saya menggunakan CakePHP untuk mengembangkan aplikasi-aplikasi. Sayangnya, menurut saya CakePHP "agak berat". Saya pernah mencoba melakukan query ke multiple tables, dimana query tersebut saya lakukan dengan berbagai cara. Cara-cara tersebut adalah langsung melakukan query dengan memaksimalkan recursive options, mengurangi recursive dan melakukan query manual, hingga melakukan custom query dengan syntax "query". Result yang saya dapatkan tetap saja kurang memuaskan, dimana sepertinya tidak cukup cepat. Hal ini mungkin tidak terlalu bermasalah apabila data yang diambil tidak terlalu banyak. Tapi apabila data sudah mencapai ribuan, maka efeknya akan mulai terlihat. Kekurangan lainnya menurut saya, dokumentasi CakePHP yang kurang. Menurut saya, CakePHP cocok digunakan untuk mereka yang benar-benar memahami konsep OOP dan punya waktu mempelajari cara main framework ini. Sekedar tips apabila Anda memutuskan untuk menggunakan CakePHP, jangan lupa indexing field dari table yang akan dijoin dengan table lainnya. It will save a lot of execution time.

Code Igniter (CI)
Nice one. Jujur, sampai saat ini saya pribadi masih sangat senang menggunakan framework ini. Menurut saya, CI cocok dengan saya yang to the point dan tidak suka bertele-tele. Kelebihan lainnya, CI memiliki banyak library/add-on yang dapat dengan mudah dapat langsung digunakan oleh penggunanya. Apabila Anda pemula dalam programming atau PHP framework, saya sarankan Anda mencoba CI terlebih dahulu, karena pada umumnya pemula dapat dengan mudah menggunakan CI. Selain itu, komunitas CI pun sudah sangat banyak, sehingga tidak sulit untuk menemukan tutorial ataupun dokumentasinya di internet.

Kelemahan CI? Dari segi teknis, saya berani bilang BANYAK. Untuk Anda maniak programming yang baik dan benar, umumnya pasti akan kecewa dengan CI. CI tidak "segitu MVC" nya (kalau Anda mengerti maksud saya). Konvensi yang digunakan CI pun tidak strict, sehingga diperlukan disiplin tinggi oleh para penggunanya sehingga dapat mengoptimasikan CI dengan maksimal, termasuk di dalamnya untuk menentukan standar ketika bekerja dalam tim. Hal ini berbeda dengan CakePHP ataupun framework lain yang strict dalam konvensi, sehingga apabila salah penulisan sedikit saja akan menyebabkan aplikasi error. Sebagai contoh untuk perbandingan, CI tidak strict terhadap nama class ataupun nama table dalam database, berbeda dengan CakePHP yang mewajibkan nama table harus plural, nama controller harus plural, dan lain sebagainya. Hal ini akan menyebabkan masalah dalam penentuan standar apabila Anda bekerja dalam sebuah tim. Selain itu, yang sangat disesalkan, CI sudah berhenti dikembangkan tahun ini. Agustus kemarin Ellis Lab merilis versi terakhir dari CI, kemudian mereka akan berfokus pada komersial product mereka, Expression Engine (EE). Selain itu, meskipun sudah mencapai versi terakhir, bisa dikatakan CI masih primitif. Dasar pengembangan mereka secara struktural masih terpaku pada PHP 4, meskipun beberapa upgrade terakhir sudah mensupport PHP 5. Jadi kembali kepada Anda, apakah Anda masih mau menggunakan CI sebagai framework dasar plateform Anda.

Tanpa bermaksud subjektif, dimana tulisan saya mengenai lebih banyak daripada yang lainnya. Hal ini dikarenakan saya menggunakan CI selama 2 tahun (bahkan hingga saat ini), dan sangat puas dengan flow CI yang sangat cocok dengan gaya saya dalam melakukan coding. Soal konvensi tidak menjadi masalah untuk saya, karena pengalaman saya mengajarkan saya untuk disiplin, sehingga saya membiasakan disiplin ketika melakukan coding menggunakan CI. Sebaliknya, 2 hal yang menjadi poin utama pemikiran saya adalah berhentinya development CI, dimana hal ini mengarah ke poin selanjutnya, yaitu berarti kecil harapan CI bisa naik tingkat untuk menggunakan pure PHP 5 sebagai dasarnya. Hal ini membuat saya dengan terpaksa harus mulai meninggalkan CI sebagai dasar platform saya, dan memilih framework lainnya. Sementara ini, CakePHP menjadi pilihan saya, karena selain terbiasa dengan penggunaannya dalam pekerjaan saya sehari-hari, CakePHP juga tampak menjanjikan dalam proses developmentnya di masa depan.

Kohana
Sempat terpikir oleh saya untuk beralih Kohana, ketika saya mendengar kabar bahwa CI sudah berhenti dikembangkan. Kohana terbaru, versi 3, tampaknya cukup menjanjikan dimana Kohana mengusung konsep HMVC dan embeded ORM. Namun sayangnya, karena Kohana adalah community based, maka dokumentasinya masih sangat sedikit. Mungkin saya akan beralih ke Kohana apabila dokumentasinya sudah lebih lengkap, atau masa depannya sudah semakin stabil.

Laravel
Sekarang ini banyak programmer yang beralih ke Laravel. Namun karena tergolong baru, saya pribadi cenderung mengambil sikap wait and see untuk framework yang satu ini.

Yii
Saya belum sempat melakukan research lebih jauh lagi. Research terakhir yang saya lakukan tentang Yii adalah 2 tahun lalu, ketika memutuskan untuk beralih dari native programming ke framework yang lebih umum. Sayangnya menurut saya komunitas Yii masih sedikit (terutama di Indonesia), sehingga tampaknya sulit untuk mencari bantuan apabila kita menemukan problem ketika development menggunakan Yii.

Benchmark Test
Saya sempat mencari beberapa referensi mengenai benchmarking PHP frameworks. Sayangnya, menurut pendapat saya pribadi, semuanya tidak terlalu valid. Selain banyaknya referensi yang out of date, banyak diantara artikel-artikel tersebut yang lebih berkesan subjektif, ataupun tidak cukup sesuai dengan standar kebutuhan secara global.

Spoiler for Kesimpulan:


Demikian secara singkat sedikit pandangan saya mengenai berbagai PHP framework yang ada saat ini. Para kaskuser yang hendak sharing pengalaman masing-masing mengenai PHP framework, dipersilakan untuk berpartisipasi. Harap berdiskusi dengan sopan dan intelek, tentunya didasari dengan alasan masing-masing.

Thanks, and may the knowledge be with us emoticon-Angkat Beer
Polling
0 suara
PHP Framework pilihan Anda saat ini
Diubah oleh miyavizm 07-11-2013 16:13
0
9.7K
131
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Mari bergabung, dapatkan informasi dan teman baru!
Programmer Forum
Programmer ForumKASKUS Official
20.2KThread4.3KAnggota
Terlama
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Ikuti KASKUS di
© 2023 KASKUS, PT Darta Media Indonesia. All rights reserved.