Agar dapat berfokus, mari kita bedah CMS menjadi tiga bagian. Yaitu Framework Feature, CMS Core dan CMS Feature. Peletakan ketiganya juga tidak harus kaku, asal jangan digabung semua. Developer CMS berbasis PHP seringkali rancu menggabungkan ketiganya.
Framework Feature
CMS Core: Must-Have-Feature
CMS: Nice Feature
Selasa, 03 Februari 2009
Framework versus CMS
Perbedaan Role antara CMS dan Framework
"CMS untuk admin. Framework untuk developer."
Belum ada gabungan Framework-CMS yang berjalan di atas PHP. Dari hasil coba-coba berbagai CMS di atas ternyata kedua-role ini belum ketemu. Pemisahan membuat fokus. Namun yang lebih penting adalah integrasinya.
Hasil survey lalu menuntun ke survey berikutnya yaitu Framework CMS yang menarik berdasarkan platform tertentu untuk proyek kecil, misalnya intranet. Jadi berikutnya penulis mensurvey beberapa framework. Dulu pernah membangun proyek dengan CodeIgniter. Namun sekarang cukup melihat hubungannya dengan CMS.
Targetnya berbeda
Bagi developer yang penting bukanlah kemudahan dalam administrasi, namun kecepatan me-release software. Dalam hal ini yang dibicarakan adalah framework. Mencoba framework baru memang menantang, namun tanpa CMS, framework bukanlah solusi siap pakai.
Trend framework sekarang adalah mendukung MVC (Model-View-Controller). Ada banyak PHP Framework yaitu CodeIgniter, Kohana, Zend, CakePHP, Prado, SeaGull, Dojo dan Symfoni. Tidak semua sudah dicoba. CMS berbasis Zend atau Cake kurang berkembang. Bahkan bisa dibilang tidak ada live-CMS yang terbukti berkembang di bawah Framework berbasis PHP.
Note: Bukan Role CMS
Role untuk developing CMS dan Role untuk penggunaan CMS adalah bidang yang berbeda. Kita tidak membicarakan Role CMS. Berikut adalah role CMS agar jelas.
Masalah
Belum ada gabungan Framework-CMS yang berjalan di atas PHP.
Ya! ternyata belum ada satupun Framework PHP4/PHP5 yang berhasil dibuat untuk mendevelop CMS. Yang terjadi adalah CMS yang mempunyai built-in Framework. Hanya dua CMS yang mempunya built-in framework yang ketat dalam hal MVC yaitu Joomla (1.6) dan SilverStripe.
Jangan salah tangkap, penulis sangat kagum kepada para pembikin CMS ini. Dengan segala hormat, bukan salah mereka kalau ada produk yang lebih cocok bagi pengembang kecil-kecilan.
Permasalahan dari built-in framework adalah tidak modular. Suatu module diciptakan untuk tugas tertentu CMS secara spesifik. Pada saat kebutuhan berkembang, susah untuk membuatnya menjadi general. Akibatnya framework terpaku pada produk tertentu, atau konsep tertentu yang menjadi obsolete di kemudian hari.
Library yang tidak standar dapat menjadi sumber masalah di CMS yang kaku (tidak netral). Contohnya adalah Joomla, kita tidak dapat memasang javascript-mootolos-1.2 tanpa mengubah core system karena Joomla-1.5 telah terpaku pada javascript-mootools-1.1. Mengubah core system berarti menyusahkan diri sendiri saat meng-update Joomla. Pendekatan lain harus dilakukan.
CMS berbasis PHP yang bagus
Terimakasih kepada PacktPub CMS award. Sekarang penulis memiliki bahan untuk meriset berbagai CMS berbasis PHP agar tidak lagi seperti katak dalam tempurung. Pendekatannya pragmatis untuk pekerjaan sehari-hari, bukan akademis yang bermain konsep.
Tujuan awal sebetulnya hanya mencari CMS berbasis PHP yang lebih baik Joomla untuk proyek kecil, terutama dari sisi kecepatan developing. Butuh waktu tiga bulan untuk mencoba-coba.Research CMS
Yang sudah dicoba:
Bila kelengkapan di atas cukup membuat ngeri, mungkin anda dapat mengerti alasan penulis, mengapa tidak memberi penjelasan mendetail (secara panjang lebar lebih lanjut yang tentunya sangat membosankan).
Hasilnya:
Secara umum ada gerakan untuk goPHP5 di roadmap mereka kecuali community WordPress yang menentang advokasi goPHP5. Trend di forum maupun official roadmap mudah ditebak. Dengan OOP di PHP5, developer PHP-based-CMS berencana membuat framework.
Tidak ada perubahan radikal di CMS yang telah disebutkan di atas, kecuali sapphire yang untuk pertama kalinya memisahkan framework dari nol, lalu mengintegrasikan dengan CMS SilverStripe. Lalu membuat built-in ORM yang tidak lazim. Sungguh langkah yang sangat berani.
Catatan: Project yang di-exclude:
Sebagai pengembang, penulis tidak puas dengan CMS berbasis PHP karena tidak memiliki framework yang dapat menjadi dasar pengembangan.