Baru saja saya menemui ada error di projek Codeigniter (CI) saya. Kebetulan saya baru saja melakukan upgrade versi PHP dari 7.0 ke PHP 7.3. Tidak tahunya hal ini berpengaruh pada projek yang sudah saya buat. Pesan errornya seperti ini :
Message: strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behaviorSetelah googling sana sini akhirnya ketemu artikel menarik yang mempunyai masalah yang sama seperti punya saya. Dan ketika saya coba pada projek saya alhamdulillah error tersebut berhasil saya atasi.
Berikut caranya jika kamu juga punya masalah yang sama dengan punya saya:
1. Edit file application/third_party/MX/Router.php
2. Cari public function set_class
public function set_class before |
3. Didalam function tersebut terdapat logika untuk mengecek ada tidaknya $suffix, pada versi PHP sebelumnya tidak apa-apa mungkin pada versi terbaru ini (7.3) lebih sensitif kali ya
4. Untuk mengatasinya tambahkan pada logika ifnya menjadi seperti ini:
before:
if( strpos($class, $suffix) === FALSE)
after:5. Full codenya menjadi seperti ini:
if( $suffix && strpos($class, $suffix) === FALSE)
public function set_class($class) {
$suffix = $this->config->item('controller_suffix');
if ($suffix && strpos($class, $suffix) === FALSE) {
$class .= $suffix;
}
parent::set_class($class);
}
public function set_class after |
Selesai. Saya belum tahu apa efek berantainya setelah perubahan tersebut tapi ditempat saya aman, semoga ditempat kamu juga sama ya.
Salam.
oke di coba dan berhasil
BalasHapusThanks, thats works for me
BalasHapusmakasih banyak bangg, solusinya manjur sekali
BalasHapus