Sejak versi 2019, PHPMaker menambahkan fitur Composer Packages. Apa itu?
Seperti namanya, Composer Packages berarti Paket yang digunakan oleh Composer. Istilah Paket mengacu kepada suatu PHP Library yang dikemas/dibungkus sedemikian rupa menjadi seperti Paket, yang digunakan di aplikasi web yang akan dihasilkan oleh PHPMaker.
Tentu ada begitu banyak paket-paket PHP Library yang terdapat di Internet. Setiap paket memiliki versi masing-masing dengan segala perkembangannya. Bayangkan jika paket-paket yang demikian banyak tadi tidak dikelola dengan baik di aplikasi web yang kita kembangkan, maka kita harus memutahirkannya satu per satu secara manual.
Sebelum versi 2019, PHPMaker tidak memiliki fitur Composer Packages, yang artinya Web Developer secara tidak langsung diarahkan untuk mengelola sendiri paket-paket PHP Libray yang akan digunakan di aplikasi webnya. Belum lagi jika paket-paket tadi tersebar di masing-masing folder dimana setiap Web Developer memiliki style-nya masing-masing. Betapa kompleks dan rumitnya, bukan?
Dengan ditambahkannya fitur Composer Packages yang terdapat di bawah menu Tools pada aplikasi PHPMaker, maka kita sebagai Web Developer tidak perlu lagi repot-repot mengelola paket-paket PHP Library tadi secara manual. PHPMaker akan membantu mengelola, menempatkan, dan memperbarui versi paket-paket PHP Library yang digunakan di aplikasi web yang dihasilkannya.
Jika suatu paket PHP Library diperbarui sehingga versi minornya berubah (misalnya), maka si Composer tadi akan otomatis memperbaruinya ke versi minor yang terakhir. Sangat cerdik dan semakin mempermudah pekerjaan kita sebagai Web Developer, tentunya.
Untuk mengetahui daftar paket-paket PHP Library mana saja yang digunakan oleh aplikasi web yang akan diihasilkan oleh PHPMaker, maka kita dapat melihatnya dari file composer.json yang terdapat di dalam template PHPMaker. Lokasinya berada di folder berikut:
C : \ Users \ {user} \ AppData \ Roaming \ phpmaker2023 \ node_modules \ @phpmaker \ php2023
Contoh, untuk PHPMaker 2023, kita bisa melihat daftar paket-paket berikut yang dibutuhkan:
...
"require": {
"php": ">=7.4.0",
"ext-intl" : "*",
"slim/slim": "^4.10.0",
"slim/csrf": "^1.2.1",
"slim/http": "^1.2.0",
"slim/http-cache": "^1.1.0",
"slim/flash": "^0.4.0",
"slim/php-view": "^3.2.0",
"nyholm/psr7": "^1.5.1",
"nyholm/psr7-server": "^1.0.2",
"php-di/php-di": "^6.4.0",
"doctrine/dbal": "^3.4.4",
"monolog/monolog": "^2.8.0",
"firebase/php-jwt": "^6.3.0",
"phpmailer/phpmailer": "^6.6.4",
"hkvstore/htmlpurifier": "^4.14.3",
"hkvstore/phpthumb": "^2.1.4",
"mobiledetect/mobiledetectlib": "^2.8.39",
"soundasleep/html2text": "^2.0.0",
"defuse/php-encryption": "~2.3.1",
"timetoogo/pinq": "dev-master",
"dflydev/dot-access-data": "^3.0.1",
"delight-im/cookie": "^3.4.0",
"selective/samesite-cookie": "~0.3.0",
"imangazaliev/didom": "^2.0",
"symfony/polyfill-php80": "^1.26.0",
"symfony/polyfill-php81": "^1.26.0",
"jawira/case-converter": "^3.5.1",
"filp/whoops": "^2.14.5"
},
...
Perhatikan bahwa setiap Paket memiliki versinya masing-masing.
Paket pertama atau yang paling atas adalah php, dengan versi minimal 7.4.
"php": ">=7.4.0",
Itu artinya, PHPMaker 2023 mempersyaratkan versi PHP minimal 7.4. Jadi, versi 7.3 tidak didukung lagi oleh PHPMaker 2023. Berarti, dalam hal ini PHPMaker 2023 juga mendukung PHP versi 8. Wow, keren kan?
Perhatikan juga paket yang kedua, yaitu ext-intl:
"ext-intl" : "*",
Di sana terdapat karakter * tanpa nomor versi tertentu. Itu artinya, si Composer akan otomatis mencari versi terakhir yang berlaku saat itu, dan men-download-kannya ke aplikasi web yang akan dihasilkan oleh PHPMaker.
Kemudian ada Paket yang menggunakan karakter ^ sebelum nomor versinya, contoh:
"slim/slim": "^4.10.0"
Artinya Composer akan otomatis menggunakan versi minor dan versi release terakhir berdasarkan nomor versi yang tercantum setelah karakter ^ tersebut. Jika misalnya saat PHPMaker v2023 men-generate file script versi minor terakhir Paket slim untuk versi major 4 tersebut adalah 4.10.5 (misalnya), maka Composer akan otomatis men-download versi 4.10.5 tadi.
Jika slim versi 5 dirilis, maka PHPMaker v2023 dalam hal ini tidak akan menggunakannya. Versi terakhir yang digunakan adalah 4.10.5. Ini hanya contoh saja, untuk memberi gambaran mengenai versi minor terakhir berdasarkan versi major-nya.
Sedangkan untuk karakter ~ (tilde), mari kita perhatikan pada Paket php-encryption berikut:
"defuse/php-encryption": "~2.3.1",
Nah, itu artinya, Paket php-encryption yang digunakan versi ~2.3.1 sama artinya dengan >=2.3.1 dan < 2.4.0. Jadi, mulai dari versi 2.3.1 ke atas, tetapi masih harus di bawah versi 2.4.0. Jika seandainya saat itu versi minor maksimal dari versi 2.3 adalah 2.3.9. Jika versi 2.4.0 keluar, maka versi ini tidak akan digunakan oleh si Composer. Dia akan bertahan pada versi minor maksimal dari 2.3, yang dalam contoh tadi adalah 2.3.9 (misalnya).
Sampai di sini sudah paham ya arti dari setiap karakter di bagian versi dari setiap Paket di atas? Untuk info dan penjelasan lebih lanjut mengenai semantic version, bisa klik di sini.
Pertanyaan: Bagaimana jika seandainya kita tidak ingin menggunakan versi PHP Library yang sudah ditetapkan oleh PHPMaker v2023 di atas? Apakah bisa? Pertanyaan yang bagus!
Jawabannya, tentu saja bisa! Bukan PHPMaker namanya jika hal ini tidak bisa tersolusikan. Kita cukup menambahkan versi yang kita inginkan dari menu Tools -> Composer Packages pada aplikasi PHPMaker. Selanjutnya akan muncul jendela dialog Composer Packages.
Di bagian Search, ketikkan nama Paketnya, lalu tekan tombol Add untuk menambahkan Paket dan versi di bagian bawahnya.
Supaya tidak bingung, mari kita ambil contoh yang sederhana. Kebetulan di artikel sebelumnya, kita sudah pernah membahas bagaimana mudahnya aplikasi web yang di-generate oleh PHPMaker 2023 dapat tetap menggunakan database Microsoft SQL Server 2008. Syaratnya, PHP Library yang bernama DBAL harus versi 2. Sementara PHPMaker v2023 menggunakan DBAL versi 3.
Tapi sayangnya, cara yang digunakan pada artikel tersebut sangatlah tidak disarankan. Mengapa? Karena kita mengubah versi DBAL secara langsung di file composer.json. Itu artinya semua aplikasi web dengan database lainnya pun akan ikut-ikutan menggunakan DBAL versi 2. Bisa saja kita kemudian mengubahnya lagi ke versi 3, tapi jadi repot.
Tentu kita tidak menginginkan kejadian seperti itu, bukan? Lalu bagaimana dong solusinya?
Nah, di sinilah lagi-lagi PHPMaker sangat cerdik mensolusikannya, yaitu dengan menggunakan menu Composer Packages tadi. Kita bisa menggunakan versi tertentu hanya untuk project PHPMaker tertentu saja. Itu artinya, kita tidak perlu mengubah versi pada file composer.json tadi.
Jadi, solusi untuk artikel sebelumnya, kita cukup mengetikkan dbal di bagian Search sampai muncul tulisan doctrine/dbal
. Setelah itu, tekan tombol Add, maka PHPMaker akan menambahkan Paket doctrine/dbal
di bawahnya. Pada kolom sebelah kanannya, cukup ketikkan:
^2.13.9
Setelah itu, pastikan untuk mengklik tombol OK untuk menyimpan setting versi DBAL tadi ke dalam project PHPMaker kita. Kebetulan saat artikel ini ditulis, versi minor terakhir dari DBAL versi 2 adalah 2.13.9.
Ketika kita selanjutnya men-generate ulang semua file script dengan PHPMaker v2023, maka DBAL yang digunakan adalah yang versi major 2. Sedangkan untuk versi minor dan release-nya dimulai dari 2.13.9, atau, bisa saja di atas versi tadi, tapi masih di bawah versi major 3. Itu artinya, kita bisa membatasi versi Paket PHP Library yang digunakan berbasiskan project.
Kesimpulannya, dengan menggunakan Composer Packages, maka Web Developer tidak perlu lagi repot-repot untuk memperbarui secara manual Paket-paket PHP Library yang digunakan oleh aplikasi web yang dihasilkan oleh PHPMaker. Semuanya sudah ditangani oleh PHPMaker. Biarkan PHPMaker yang menjadi asisten kita.
PHPMaker-lah yang akan otomatis men-download-kan file-file Paket PHP Library sesuai versi yang kita inginkan tadi ke dalam aplikasi web yang akan dihasilkannya. PHPMaker juga akan otomatis menempatkan semua PHP Library tadi ke dalam folder yang bernama vendor
, sehingga kita dapat dengan mudah dan cepat mencarinya jika sewaktu-waktu kita ingin memeriksa/mempelajari kode di dalamnya.
Betapa menyenangkan sekali bekerja dengan menggunakan PHPMaker, bukan?
Tinggalkan Balasan