Nanank Haris S
Individu yang pendiam dan introspektif yang menemukan penghiburan di kedalaman sintaxdan mencoba menemukan kedamaian di tengah kekacauan. Meskipun bergulat dengan ADHD, cintanya kepada keluarganya tetap tak tergoyahkan, yang menopangnya di tengah badai kehidupan. Dalam pelukan pikirannya yang tenang, ia merajut algoritma yang rumit, mengubah perjuangannya menjadi kemenangan dan kesendiriannya menjadi tempat perlindungan.

Class ‘CI_Controller’ not found

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.

  1. Buka file application/third_party/MX/Router.php
  2. Cari method set_class (ditempat saya line 243)
  3. 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);
    }

     

  4. Refresh halaman
  5. Kagak perlu restart PC

 

 

Share

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *