Class ‘CI_Controller’ not found – Yak, pesan error yang pertama kali saya temukan ketika ubah versi php ke 7.4. Sebelumnya saya memakai versi 7.2 cuma karena suatu hal saya harus “dipaksa” untuk pindah ke versi 7.4.
Dugaan saya sih karena instance CI get_instance() tidak bisa memanggil controller, tapi ternyata bukan itu. Masalah yang sebenernya sepele sih sebenernya.. Kalo aplikasi njenengan sedang menderita seperti itu. Coba aktifkan log_threshold nya. Kemudian buka log-nya. Akan dijumpai error
ERROR - 2022-03-01 09:23:04 --> Severity: 8192 --> strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior application\third_party\MX\Router.php 247 ERROR - 2022-03-01 09:23:04 --> Severity: error --> Exception: Class 'CI_Controller' not found system\core\CodeIgniter.php 369
Feeling saya sih besk function strpos akan return output berupa setring apaun inputnya.
Eh error ini saya temukan ketika saya pake HMVC-nya Ci ya. Gak tau kalo pure CI bakal nemu kaya gitu nggak.
Solusi yang ternyata worked buat saya.
- Buka file application/third_party/MX/Router.php
- Cari method set_class (ditempat saya line 243)
- Tambahkan validasi variable $suffix
Before :public function set_class($class) { $suffix = $this->config->item('controller_suffix'); if (strpos($class, $suffix) === FALSE) { $class .= $suffix; } parent::set_class($class); }
After :
public function set_class($class) { $suffix = $this->config->item('controller_suffix'); if ( !empty($suffix) && strpos($class, $suffix) === FALSE) { $class .= $suffix; } parent::set_class($class); }
- Refresh halaman
- Kagak perlu restart PC