Migrasi website MalayOLGA dari Codeigniter ke Laravel

Portal hobi peribadi saya https://malayolga.name.my/ saya bina pada 1999 dan sejak bermula, is sudah alami beberapa sesi upgrade:

1999 – v1 – Geocities – static content HTML.
2002 – v2 – Hypermart.net. Perl & Cgi-bin. Semi dynamic content.
2005 – v3 – Plain Php MySQL (no framework).
2008 – v4 – Codeigniter v1.6 framework.

Oleh kerana server MalayOLGA v4 sudah berjalan selama 11 tahun, saya rasa perlu untuk upgrade sistem tersebut. Ini kerana versi PHP sudah amat jauh ketinggalan, dan mempunyai risiko keselamatan jika terus digunakan. Oleh kerana Codeigniter v1.6 juga sudah amat tua, ia tidak lagi compatible dengan PHP terkini. Saya perlu juga untuk upgrade laman MalayOLGA agar menggunakan Codeigniter versi baru, atau tukar terus ke PHP framework yang lain.

Saya berpengalaman dengan Yii Framework sejak tahun 2012 dan sehingga kini saya masih menggunakan Yii version 2 (dipanggil Yii2) di dalam hampir kesemua projek-projek saya. Ia framework kegemaran saya atas banyak sebab. Namun begitu, sejak beberapa tahun ini, framework Laravel menjadi amat popular dan saya rasa perlu untuk mencubanya. Jadi, saya rasa inilah masanya untuk membuat eksperimen, dengan membuat migrasi website MalayOLGA dari Codeigniter ke Laravel. Dapat belajar sambil upgrade projek sebenar.

Seluruh proses berjalan selama 2 hari sahaja! Amat melegakan kerana kebanyakan kod saya yang dibuat menggunakan Codeigniter adalah serasi dengan Laravel terutama kebanyakan syntax ActiveQuery Codeigniter adalah seakan-akan enjin ORM Laravel yang dinamakan Eloquent. Saya juga mengekalkan theme & view sedia ada, sekadar mengadaptasi beberapa fungsi daripada enjin templating Laravel yang dinamakan Blade. Penggunaan routing di dalam Laravel juga membantu memastikan format URL boleh dikekalkan tanpa perubahan ketara, yang pada saya amat penting kerana semua URL laman web tersebut telah di index oleh Google, dan saya perlu elakkan carian pengguna di google daripada terganggu.

Yang paling menyeronokkan ialah penggunaan Pagination di dalam Laravel adalah amat serasi dengan Codeigniter. Seolah-olah tidak perlu mengubah apa-apa. Code sedia ada terus boleh berfungsi dengan sedikit sahaja perubahan.

Dua (2) hari yang amat produktif. Saya ambil masa separuh hari untuk menonton video tutorial laravel dan selebihnya membuat migrasi code dan deploy ke server baru.

Dari segi pemerhatian awal, membandingkan dengan Yii2, pada saya Laravel dirasakan seakan-akan begitu hampir dengan CodeIgniter. Namun, ia kurang beberapa fungsi yang saya sukai di dalam Yii2 seperti Gii, CRUD, ActiveRecoredProvider dan Gridview/Detailview. Dari sudut prestasi, saya rasa Yii2 lebih pantas. Yii2 juga lebih bersifat convention-over-configuration, bermakna kita perlu jumpa rentak sebenar Yii2 sebelum dapat betul-betul menghargainya berbanding dengan Codeigniter dan Laravel yang memerlukan configurasi.

Setakat ini, misi migrasi MalayOLGA telah berjaya. Walaupun belum 100% fungsi telah saya kembalikan, ia sudah cukup untuk membuatkan laman tersebut online dengan framework yang baru. Saya akan mengkaji lagi Laravel ini. Untuk sementara ini, saya rasa ia belum cukup untuk mengenepikan Yii2 sebagai framework kegemaran saya. Untuk pasukan programmers muda saya di Shah Alam, mereka akan terus dilatih dengan Yii2, sehingga saya sendiri yakin perlunya mengubah dari Yii2 kepada Laravel. Belum lagi, baru 2 hari mencuba, mungkin suatu masa nanti.