Penantian panjang itu akhirnya berakhir juga. Hari ini, Senin, 7 September 2020, PHPMaker versi 2021 resmi dirilis. Barusan saya langsung purchase upgrade License-nya. Sambil menunggu License Key diproses, langsung download dan install, termasuk file project demonya.
O iya, hati-hati saat menjalankan script demo2021.sql dari demo project, yang berisi perintah untuk membentuk table dan data di database. Mengapa saya ingatkan demikian, karena di versi-versi sebelumnya, script .sql ini hanya untuk membangkitkan table dan data. Sedangkan di versi 2021 ini, script .sql tadi juga berisi perintah untuk membuat database baru bernama demo2021.
Selain itu, di dalam script demo2021.sql ini, ada 2 lokasi yang menggunakan COLLATE = utf8mb4_0900_ai_ci. Hal ini menimbulka error jika di database MySQL kita belum mendukung COLLATE tersebut. Oleh karena itu, jika saat Anda menjalankan script .sql tersebut mengalami error, tinggal ganti saja utf8mb4_0900_ai_ci menjadi utf8mb4_general_ci.
Oke itu dulu untuk script .sql, yang tadi sempat menimbulkan hambatan kecil ketika akan membentuk table dan data di database demo2021 yang biasanya selalu saya create terlebih dulu. Sekarang mari kita bedah satu per satu, apa saja yang baru di versi 2021 ini.
Seperti biasanya Saudara-saudara… ada perubahan besar di versi major yang baru ini. Tidak seperti di versi-versi major sebelumnya, di versi 2021 ini, PHPMaker resmi sudah menggunakan PHP Framework. Bukan Laravel, bukan Yii, bukan CodeIgniter, bukan CakePHP, tetapi yang dipilih adalah Slim Framework.
Tentu saja ada pertimbangan mengapa PHPMaker memilih untuk menggunakan Slim Framework. Sekilas dari dokumentasi yang saya baca melalui link di atas, Slim Framework meyakinkan kita bahwa framework mereka memang tidaklah sama dengan PHP Framework lainnya, seperti Symfony atau Laravel.
Berikut ini cuplikan dari dokumentasi di website-nya, dan sepertinya PHPMaker sengaja menggunakan Slim Framework karena kelebihan yang dimiliki oleh framework ini berbeda jauh dengan PHP Framework lainnya yang sudah banyak beredar di Internet:
Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs. At its core, Slim is a dispatcher that receives an HTTP request, invokes an appropriate callback routine, and returns an HTTP response. That’s it.
Slim is an ideal tool to create APIs that consume, repurpose, or publish data. Slim is also a great tool for rapid prototyping. Heck, you can even build full-featured web applications with user interfaces. More importantly, Slim is super fast and has very little code. In fact, you can read and understand its source code in only an afternoon!
You don’t always need a kitchen-sink solution like Symfony or Laravel. These are great tools, for sure. But they are often overkill. Instead, Slim provides only a minimal set of tools that do what you need and nothing else.
Slim adalah framework kecil PHP untuk membantu Anda dengan cepat menulis aplikasi web dan API yang sederhana tapi memiliki kemampuan yang luar biasa. Pada bagian intinya, Slim adalah sebuah operator yang menerima sebuah permintaan HTTP, memanggil balikan fungsi yang sesuai, dan mengembalikan dalam bentuk respon HTTP. Itu saja.
Perhatikan di alinea terakhir pada cuplikan tersebut. Diakui bahwa Symfony atau Laravel memang bagus, tapi sering kali PHP Framework seperti itu dianggap terlalu berlebihan dan tidak selalu cocok digunakan, khususnya untuk PHPMaker. Slim Framework, seperti namanya, berbeda jauh. Dia ramping, hanya menyediakan sekumpulan perangkat yang minimal yang hanya dibutuhkan oleh PHPMaker.
Jadi sekali lagi, Slim Framework fokus pada operator yang bertugas untuk menerima permintaan HTTP, memanggil rutinitas panggilan balik yang sesuai, dan mengembalikan sebuah respon HTTP. Ya, hanya itu saja. Begitulah core dari Slim Framework. Urusan lainnya, tentu saja sudah ditangani oleh PHPMaker itu sendiri.
Dengan menggunakan PHP Framework, itu artinya mulai PHPMaker 2021 sudah menggunakan 100% konsep MVC (Model-View-Controller). File-file script yang di-generate tidak lagi ditempatkan di bawah root dari folder aplikasi web. Tetapi sekarang ditempatkan masing-masing ke dalam tiga sub-folder models, views, dan controllers.
Seiring dengan perubahan ini, maka mulai versi 2021 ini, aplikasi web yang dihasilkan oleh PHPMaker sudah menggunakan URL yang SEO-Friendly. Itu artinya, kita wajib mengaktifkan rewrite_module di web server yang kita gunakan. Jadi, kalau misalnya dulu menggunakan URL seperti modelsview.php?ID=1, maka sekarang menggunakan modelsview/1. Bahkan, PHPMaker juga menangani jika Primary Key terdiri dari beberapa field! Wow, keren ya?
Fitur tersebut sekaligus menjawab beberapa permintaan di bagian Feature Requests yang menginginkan supaya URL yang dihasilkan oleh aplikasi web yang dibangkitkan oleh PHPMaker menjadi SEO-Friendly. Terjawab sudah. Satu lagi nilai plus yang diberikan oleh PHPMaker.
Fitur baru lainnya yang tak kalah canggih di versi 2021 ini adalah penggunaan component Select2 yang menggantikan control jadul Select atau Combobox yang biasa. Pertama kali waktu ingin mencoba fitur ini, saya sedikit mencari-cari settingan Select2 di Fields setup. Ternyata memang tidak ada opsi yang bernama Select2.
Sebagai solusinya, ternyata kita harus mengaktifkan pilihan Requires search yang terdapat pada panel Edit Tag di dalam Fields setup. Jika pilihan ini tidak kita aktifkan, maka PHPMaker akan men-generate control Select yang jadul atau yang biasa selama ini digunakan. Akhirnya, fitur yang dulu saya usulkan, dikabulkan juga di versi 2021. Senang rasanya.
Tapi,sayangnya, di versi 2021 ini, PHPMaker belum mengabulkan permintaan yang cukup banyak peminatnya, yaitu Form Layout. Cukup kecewa juga saya, karena fitur ini seharusnya sudah bisa mereka tambahkan di versi 2021 ini. Mungkin, karena perubahan besar yang mereka lakukan dengan menggunakan Slim Framework tersebut, membuat fitur Form Layout ini menjadi mereka tunda.
Kembali ke fitur baru lainnya. Mulai versi 2021 ini, PHPMaker juga sudah tidak lagi menggunakan ADODB (database library). Sebagai gantinya, dia menggunakan DBAL (database abstraction & access layer) and PDO.
Fitur baru lainnya, PHPMaker mulai menggunakan PSR-12, sebuah coding-standard yang menggunakan aturan penulisan nama method dengan camelCase. Oleh karena itu, server event seperti Row_Rendered (misalnya) yang sebenarnya adalah method dari class table, akan di-generate di file script menjadi rowRendered.
Sedangkan di dalam project PHPMaker itu sendiri, tetap menggunakan nama Row_Rendered. Jadi, jangan kaget jika Anda ingin mencari kode di server event Row_Rendered pada file script yang dibangkitkan oleh PHPMaker, kata tersebut tidak ada, tapi sudah diganti menjadi rowRendered. Di awal-awal memang kelihatan aneh dan lucu, tapi lama-kelamaan nanti kita pasti akan terbiasa, hehehe…
Fitur baru lainnya yang kelihatan sederhana tapi membawa dampak yang sangat besar khususnya jika kita membangun beberapa aplikasi web sekaligus, adalah fitur Locale File. Mulai versi 2021 ini, setting locale tidak lagi disimpan di file locale yang berekstensi .json, tapi disimpan di sisi project PHPMaker.
Itu artinya, jika kita upgrade file project ke versi major PHPMaker berikutnya, kita tidak perlu repot-repot men-setting ulang file .json tadi. Tapi, oleh PHPMaker akan otomatis membaca setting yang disimpan di sisi project. Wow, keren! Ini adalah salah satu request yang dulu pernah saya dukung.
Fitur baru yang canggih lainnya adalah, sekarang PHPMaker sudah mendukung pemakaian Git. Itu artinya, para Web Developer dapat men-share file project-nya di Github. Fitur atau menu Git ini akan aktif di project, setelah kita mengisi pengaturan yang terdapat di menu Tools -> Advanced Settings -> Git repor URL, Git username, Git password, Git auto fetch, Git auto fetch period (seconds).
Fitur baru lainnya yang mungkin bagi sebagai Web Developer dinantikan, yaitu pemakaian SweetAlert2 untuk menampilkan pesan dalam jendela kotak dialog atau pesan alert, menggantikan Modal dialog bawaan Bootstrap yang sangat standar itu. Saya sendiri sebenarnya masih tetap lebih suka dengan AlertifyJS.
Alasan mengapa saya lebih suka menggunakan AlertifyJS, karena di sini kita tidak saja bisa menggunakannya untuk menampilkan pesan, tapi juga bisa menampilkan jendela dialog yang bisa digeser/diseret ke posisi yang kita inginkan. Sedangkan SweetAlert2 tidak bisa, sehingga terkesan kurang dinamis. Namanya saja Sweet tapi kurang begitu manis terasa, hehehe, hiks! ![😛]()
Secara umum, kalau dari sisi tampilan masih belum terlalu ada perbedaan, karena aplikasi web yang dihasilkan oleh PHPMaker masih menggunakan theme gratisan yaitu AdminLTE. Hal ini sekaligus menjadi peluang untuk tetap menggunakan theme/template yang saya pakai di Masino Extensions for PHPMaker 2020, akan saya implementasikan saja buat PHPMaker 2021. Tunggu tanggal mainnya, ya! Sabar… sabar… hehehe…