Seperti apa CodeIgniter 4?

ci-lv

Sangat lama sudah (rasanya) saya tidak membuat postingan tentang CodeIgniter (CI). Dan saat saya iseng-iseng membuka post di facebook isinya tentang CI 4. Waktu itu tahun 2011 dimana saya mulai membuat web dengan CI 4. Beragam module (untuk saya pribadi, maaf) sudah saya buat, berbagai metode dan berbagai web sudah saya buat menggunakan CI. Tapi kali ini sepertinya versi CI yang paling kontroversial. Betapa tidak, pengurus CI yang tidak lain adalah BCIT (https://github.com/bcit-ci/) mengininkan upgrade yang bisa dibilang extreme dan kemungkinan tidak akan bisa backward compatibility dengan versi sebelumnya.

Selain itu sebagian besar pecinta CI tidak mau CI jadi seperti Laravel (L5) dengan alasan Laravel ribet, berat or whatever…

Mungkin lebih baik saya bahas di bawah ini ramalan saya tentang CI 4 berdasarkan salah satu thread dari forum resmi CI http://forum.codeigniter.com/thread-61641.html

Disclaimer: post saya ini hanya sebagai opini, sangat tidak dianjurkan digunakan sebagai referensi.

  1. Using more PHP “standards”: ini artinya CI bakal make namespace, traits dan segala fitur baru dari PHP 5.6. Lalu standar yang dipakai dari mana? Jelas, PSR! Apa gunanya memakai namespace dll? Agar code lebih terstruktur. Namun menggunakan namespace dan traits tidak akan optimal tanpa Design Pattern, maka CI akan menggunakan desain pattern seperti Laravel.
  2. Composer: CI 4 kemungkinan bakal diinstall lewat composer. Yes, seperti Laravel dan modern framework lain.
  3. “Borrowing code” from other frameworks: ini yang paling kontroversial. Seperti Slim Framework 3 (Slim3) yang banyak memakai package dari 3rd party, kemungkinan CI4 juga seperti ini nantinya, dan tentu saja install via composer.
  4. Micro framework: No. Saya agak geli mendengar kata-kata ini. Jika CI bukan microframework kenapa library untuk authentikasi saja tidak ada sejak jaman bahula?
  5. Magic routing toggle: we agree – conventional “CI magic” or fully declared routing. Ini artinya kita harus mendeklarasikan setiap URL untuk routing. Semakin dekat dengan Laravel.
  6. Dependency injection (DI): Sebelum melajutkan, saya sarankan Anda membaca Dependency Injection Container pada Slim Framework 3. Disana ada penjelasan tentang DI. Modern framework tidak menggunakan singleton pattern seperti CI super class instance ( &get_instance() ), mereka menggunakan DI.
  7. Backwards compatibility: Belum move-on. Tidak seperti modern framework lain yang menganjurkan (cenderung memaksa) praktisi untuk menggunakan versi FW terbaru, praktisi CI justru menginginkan backward compatibility agar tidak menulis code baru. Lihat kembali ke point 1! Pada point 1 CI4 akan menggunakan namespace, traits, dll yang jelas tidak compatible dengan versi lama, seandainya pun compatibel saya yakin itu akan sangat dipaksakan. Beda dengan modern FW yang lain, yang menganjurkan untuk segera mengupgrade versi FW yang digunakan agar PHP juga terupgrade, sehingga otomatis meningkatkan performa dan security.
  8. Driver support: we are in favor of “drivers” as a mechanism to handle developer preferences, eg for “standard” third party stuff. “standard third party stuff” berarti Anda harus mempelajari code yang digunakan oleh “third party stuff”. Kebanyakan third party stuff sudah menggunakan PSR.

Ya, kurang lebih seperti itu gambaran saya tentang CodeIgniter 4 yang banyak menuai kontroversi (hati). Sebagian besar memang tidak suka dengan adanya rencana BCIT di atas, namun seperti itulah, jika kita tidak menginginkan perubahan maka issue security (dari PHP) yang akan kita hadapi. Saran saya jika Anda ingin mengembangkan CI sesuai versi Anda silakan form repo CI di github, dan kembangkan dengan komunitas Anda.

Saya ingin teman-teman yang membaca blog saya ini berbagi pendapat soal CI4. Saya tunggu komentarnya, terima kasih.

Leave a Reply