Error Creation of dynamic property di codeigniter 3

Error:

"Creation of dynamic property CI_URI::$config is deprecated"

Artinya:
Mulai dari PHP 8.2, membuat properti dinamis (menambahkan properti baru ke objek tanpa deklarasi eksplisit) sudah deprecated (tidak disarankan dan akan dihapus di masa depan).

⚠️ Masalah Umum:

CodeIgniter 3 (CI3) dan banyak library lama sering menggunakan cara ini:

$this->uri->config = $some_config;

Atau:

$this->config->some_setting = 'value';

Dan ini tidak lagi kompatibel dengan PHP 8.2+.

✅ Solusi 1: Jangan Tambahkan Properti Dinamis

Jika Anda melihat baris seperti ini:

$this->uri->config = $config;

Anda harus menyimpannya di tempat lain. Contoh:

???? Gantilah:

$this->uri->config = $config;

✅ Menjadi:

$this->my_uri_config = $config;

Atau simpan di $this->config->set_item() jika itu pengaturan global.

✅ Solusi 2: Tambahkan Properti secara eksplisit di Class

Jika Anda mengontrol kode class (misal: Anda membuat sendiri MY_URI), tambahkan properti secara eksplisit:

???? Gantilah:

class MY_URI extends CI_URI {
    // Tidak ada properti $config
}

✅ Menjadi:

class MY_URI extends CI_URI {
    public $config; // Tambahkan ini untuk menghindari warning
}

✅ Solusi 3: Gunakan Versi PHP < 8>

Jika Anda tidak bisa mengubah kode CI3 saat ini dan hanya ingin "jalan dulu", Anda bisa:

  • Gunakan PHP 8.0 atau 8.1

  • Laragon bisa ganti versi PHP dengan mudah: Menu >PHP > Pilih Versi

Ini bukan solusi jangka panjang, hanya sementara agar proyek berjalan tanpa warning.

Solusi Tambahan (opsional): Gunakan AllowDynamicProperties (untuk sementara)

Jika Anda hanya ingin mematikan warning secara eksplisit di class, bisa pakai atribut PHP:

#[AllowDynamicProperties]
class MY_URI extends CI_URI {
    // sekarang properti dinamis diizinkan lagi
}

Tapi ini hanya solusi sementara & tidak direkomendasikan jangka panjang.

Rekomendasi

Untuk proyek CodeIgniter 3 jangka panjang di PHP 8.2+:

  • Periksa dan hindari akses properti dinamis.

  • Upgrade ke CodeIgniter 4 (jika memungkinkan).

  • Jika tetap di CI3, Anda bisa buat custom loader/helper untuk simpan config tambahan.

 

Selamat hari raya idul fitri

0 Comments