CodeIgniter 4 Shieldv1.2.x
Kompatibilitas CodeIgniter 4
Halaman ini menjelaskan posisi versi CodeIgniter 4 (CI4) terhadap CodeIgniter 4 Shield. Tujuannya sederhana: Anda tahu versi mana yang menjadi baseline, apa yang berubah di tiap minor, dan kapan harus upgrade sebelum memasang Shield.
Ringkasan
Section titled “Ringkasan”| Hal | Nilai |
|---|---|
| Baseline dokumentasi | CodeIgniter 4.7.5 |
| Constraint Composer paket | codeigniter4/framework: ^4.3 |
| PHP minimum | 8.2 |
| Status 4.7.5 | Baseline yang diuji dan didokumentasikan |
| Status 4.3–4.7.4 | Legacy; kompatibel secara kode, bukan baseline pengujian |
| Status <= 4.2 | Tidak didukung |
Matrix versi
Section titled “Matrix versi”| CodeIgniter 4 | PHP | Status | Catatan untuk Shield |
|---|---|---|---|
| 4.7.5 | 8.2+ | Baseline | Versi yang dirujuk seluruh contoh di dokumentasi ini. |
| 4.7.0–4.7.4 | 8.2+ | Legacy | Masih dalam seri 4.7, tetapi lewati patch keamanan 4.7.5. Upgrade disarankan. |
| 4.6.x | 8.2+ | Legacy | Struktur filter berubah; registrasi default tetap memakai filter global, dan pola required['before'] + ShieldGateFilter juga didukung. |
| 4.5.x | 8.2+ | Legacy | Urutan filter berubah dan required filter diperkenalkan; pola gate memanfaatkannya, sedangkan registrasi default tetap global. |
| 4.4.x | 8.2+ | Legacy | proxyIPs wajib array asosiatif; konfigurasi routing pindah ke Config/Routing.php. |
| 4.3.x | 8.2+ | Legacy minimum | Batas bawah constraint Composer. Paket tetap membutuhkan PHP 8.2. |
| <= 4.2 | — | Tidak didukung | Banyak perbedaan API dan konfigurasi; jangan pasang Shield di versi ini. |
Perbedaan per minor
Section titled “Perbedaan per minor”4.3–4.4
Section titled “4.3–4.4”Config\App::$proxyIPssudah berupa array asosiatif (CIDR => header). Aplikasi yang berasal dari <= 4.2 harus mengubah format lama menjadi array.- CI4 4.4 memindahkan pengaturan routing dari
Config/Routes.phpkeConfig/Routing.php. Shield tidak meminta Anda menyalin route apa pun. - Filter firewall didaftarkan oleh provider ke
globals['before']secara default. Untuk perlindungan sebelum router, tambahkan polarequired['before']ShieldGateFilterseperti di Registrasi & Urutan Filter.
4.5–4.6
Section titled “4.5–4.6”- CI4 4.5 memperkenalkan required filters dan mengubah urutan eksekusi
filter. Registrasi bawaan paket tetap filter global biasa; panduan instalasi
memakai pola
required['before']+ gate secara default. - Method HTTP ditulis kapital (
GET,POST). Route challenge bawaan paket sudah memakai bentuk ini. - CI4 4.6 mengubah struktur internal class
Filters. Shield tidak meng-extend class tersebut, jadi tidak ada kode aplikasi yang perlu diubah.
- PHP minimum 8.2 dan
Config\Migrations::$locktersedia. Jalankan migrasi seperti biasa denganphp spark migrate --all. proxyIPstetap array asosiatif. Jangan memakai'*'.- Route challenge dan admin berasal dari
Config/Routes.phppaket; jangan menduplikasinya diapp/Config/Routes.php. - Jika memakai worker mode, uji ulang perilaku cache dan service di staging sebelum produksi.
Integrasi yang sama di semua versi
Section titled “Integrasi yang sama di semua versi”- Provider didaftarkan sekali di
app/Config/Events.phppada eventpre_systemuntuk service bersama, alias filter, dan penempatan default diglobals['before']. Panduan instalasi memakai pola required gate secara default; tanpa gate, filter berjalan global setelah router. - Perintah Spark ditemukan otomatis lewat pemindaian namespace PSR-4 package. Tidak perlu mendaftarkan command secara manual.
- Migrasi ditemukan dari namespace paket. Cukup jalankan
php spark migrate --all. - Route challenge dimuat dari package routes. Method yang dipakai adalah
GETuntuk halaman challenge danPOSTuntuk verifikasi. - Konfigurasi dibaca lewat
config('Shield'); jika aplikasi tidak punyaapp/Config/Shield.php, paket memakai config bawaannya.
Checklist upgrade
Section titled “Checklist upgrade”- Backup database dan
.env. - Upgrade PHP ke 8.2 atau lebih baru.
- Upgrade CodeIgniter ke 4.7.5, lalu jalankan
composer update. - Pastikan
Config\App::$proxyIPsberupa array asosiatif. - Hapus route challenge manual dari
app/Config/Routes.phpjika pernah ditambahkan; route paket sudah otomatis. - Jalankan
php spark migrate --all. - Jalankan
php spark shield:healthdanphp spark shield:rules:list. - Uji challenge, blokir, dan release ban di staging sebelum produksi.
Hal yang tidak dijamin
Section titled “Hal yang tidak dijamin”- Kombinasi patch 4.3–4.7.4 tidak diuji satu per satu dalam dokumentasi ini.
- Worker mode CI4 4.7 belum menjadi jalur pengujian utama Shield.
- Perbedaan perilaku patch keamanan di 4.7.5 tidak dirinci di sini; baca changelog CodeIgniter untuk detailnya.
Jika aplikasi Anda masih di bawah 4.7.5, gunakan halaman ini sebagai panduan upgrade, bukan sebagai jaminan bahwa semua perilaku runtime identik.
Powered by PT Ganadev Multi Solusi