Tampilkan postingan dengan label CMS. Tampilkan semua postingan
Tampilkan postingan dengan label CMS. Tampilkan semua postingan

Selasa, 03 Februari 2009

Framework versus CMS

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

  • Ease of Development (MVC)
  • ORM (Object Relational Mapping)
  • Multi Database Interface
  • Configuration Reader (XML, JSON, atau YAML)
  • Error Handling
CMS Core: Must-Have-Feature
  • Admin Interface,
  • Basic Content: Page-Based, Node-Based atau Component-Based
  • Extension Management
  • Authentication
  • Template Engine (dengan Layout)
CMS: Nice Feature
  • Menu Management
  • User Role (ACL)
  • Theme
  • Editor (biasanya WYSIWYG)
  • Multi Language dan locales
  • Versioning

Read More......

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

  • Kebanyakan pemakai Framework adalah tukang lembur yang terkadang mencintai nightly-builds.
  • Sedangkan antarmuka CMS lebih cenderung diperuntukkan kepada admin yang biasanya bekerja di bawah mentari.
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.
  • Dari sisi penggunaan, kalau Framework dan CMS sudah terintegrasi, role dapat dibagi lagi menjadi admin/installer, designer, publisher/editor, core developer dan extension developer. Nantinya CMS harus lebih modular, saat ini Role untuk publisher dan admin masih dalam satu interface. Antarmuka untuk publisher ini boleh digabung dengan berbagai data-entry. Sementara di bagian paling depan untuk end user baik registered maupun anonymous.
  • Dari sisi developing, Framework harus bebas terhadap berbagai kemungkinan implementasi role dan ACL (Access Control List).
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.
  • Framework Joomla yang setengah hati tidak memuaskan. Hal ini disebabkan karena Joomla harus memelihara kompatibilitas ke belakang. Joomla belum memiliki ORM.
  • ORM dari SilverStripe/Sapphire sangat tergantung pada database. Semua konfigurasi ditaruh di dalam database (biasanya di file XML, YAML atau mungkin JSON).. Ini bendcana, betapapun cantiknya tampilan web 2.0 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.

Read More......

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:
  1. Hasil CMS award dari PacktPub.com yaitu: MODx-0.9.6.1, Joomla-1.5, Drupal-6.8, MiaCMS-4.8, ImpressCMS-1.1.1, SilverStripe-2.2.3/Sapphire, dan CMSMadeSimple-1.4.1.
  2. Yang tidak tercantum di PacktPub.com: ezPublish, DragonFly, TypoLight.
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:
  1. Keluarga Mambo, paling mudah dalam administrasi. Fungsi-fungsi sebagai CMS lengkap.
    • Joomla memiliki roadmap yang jelas. Joomla masih berusaha keras memperbaiki arsitektur.
    • MIA sebagai Mambo rebranded belum banyak kemajuan.
    • Aliro framework belum ketahuan mau ke mana.

  2. Keluarga XOOPs. Ditulis oleh kutu-buku untuk kutu-buku.
    • ImpressCMS ini memiliki Trust Path, menarik untuk security. Selain itu tidak ada gebrakan baru dari Roadmap/ BluePrint mereka.
    • Untuk PHP5 fork ke XOOPsCube.

  3. Drupal memiliki arsitektur yang baik, moudlar, hirarkis, namun susah untuk admin. Drupal adalah pemenang PacktPub CMS award. Drupal memiliki arsitektur modular. Sayangnya taksonomi bukanlah kebutuhan utama CMS. Secara native Drupal tidak mensupport MVC.

  4. SilverStripe (yang dipakai Obama) lebih menjanjikan, karena memiliki built-in framework bernama sapphire berdasar PHP5, namun masih jauh dari Ruby.

  5. CMSMadeSimple terlalu simple dan susah dikembangkan.

  6. MODx adalah binatang yang sama sekali berbeda dengan Joomla dan Drupal. Pola berpikir-nya dapat memberi wawasan baru. Sayangnya sangat tergantung database. Noobie jangan mendekat. Jangan bilang penulis tidak memperingatkan.

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:
  1. Di luar lingkup CMS: Kategori ERP/CRM seperti SugarCRM dan WebERP. Kategori Forum: PHPBB. Image Galleries: ZenPhoto, Gallery, dan Coppermine. Project Management: RedMine. Berbagai database Admin tools.
  2. Di luar lingkup PHP: DNN, MojoPortal, Lenya, Daisy, Hippo, Magnolia, DotCMS, Radiant, Plone, Silva.
  3. Dilewatkan (tidak dapat award di PacktPub.com) : Moodle, e107, elgg, nucleus, b2evolution, Jojo, Typo3
  4. Fork dari Project sejenis dengan perubahan tidak signifikan. XOOPs, XOOPsCube, Mambo.
  5. Sistem lain yang dapat dipaksakan menjadi CMS yaitu WordPress dan Typo.

Sebagai pengembang, penulis tidak puas dengan CMS berbasis PHP karena tidak memiliki framework yang dapat menjadi dasar pengembangan.

Read More......