[SOLVED] Error strpos() pada HMVC Codeigniter di PHP 7.3

[SOLVED] Error strpos() pada HMVC Codeigniter di PHP 7.3



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 behavior 
Setelah 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
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:
if( $suffix && strpos($class, $suffix) === FALSE)
5. Full codenya menjadi seperti ini:
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_classs after
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.
Bikin Aplikasi Android iOS Makin Asyik Dengan Anoa Cli

Bikin Aplikasi Android iOS Makin Asyik Dengan Anoa Cli


Yuk mari kenalan sama Anoa-cli. Apa itu Anoa-cli? Merujuk pada laman githubnya, anoa-cli adalah React Native Typescript Boilerplate & Code Generator CLI. Istilah gampangnya mungkin aplikasi/tools yang membantu memudahkan programmer untuk membuat aplikasi Android atau iOS, jadi kegiatan ngoding makin mudah dan cepat.

Nah, kemarin saya menghadiri acara Facebook Developer Circles di Semarang yang kebetulan di sana dibahas juga tentang Anoa-cli oleh sang creator, Budi Adiono. Pada kesempatan tersebut didemokan bagaimana cepatnya membuat 2 halaman beserta menu navigasinya, yang bisa diselesaikan hanya dalam waktu kurang dari 3 menit. Cepat bukan? bandingkan dengan membuatnya manual dari bikin screen satu persatu, lalu membuat navigasinya, kemudian menghubungkannya menjadi satu kesatuan navigasi, hmm, di sini saya merasa Anoa-cli terlihat sangat membantu, apalagi bagi saya yang masih minim pengetahuan tentang React Native.

Syarat untuk menggunakan Anoa-cli

Sebelum Anoa-cli bisa berjalan dengan semestinya, yang perlu dipersiapkan antara lain:
- sudah terinstall nodejs, direkomendasikan versi 8 yang LTS
- sudah terinstall expo-cli
- sudah terinstall git

Contoh screenshot penggunaan Anoa-cli:
[SOLVED] MySQL : ERROR 23 (HY000): Out of resources when opening file '...' (Errcode: 24)

[SOLVED] MySQL : ERROR 23 (HY000): Out of resources when opening file '...' (Errcode: 24)


Beberapa hari ini web server yang selalu digunakan untuk deployment beberapa website mengalami gangguan sehingga tidak bisa dipakai. Usut punya usut ternyata terdapat problem pada mysql servernya, diakses bisa tetapi begitu mau query malah menampilkan error :

ERROR 23 (HY000): Out of resources when opening file '/tmp/#sql_643b_0.MYI' (Errcode: 24).

Hmm, mau tidak mau saya harus cari solusinya.

Cari sana cari sini, browsing sana browsing sini akhirnya ketemu juga solusinya. Solusinya adalah menambahkan config open_files_limit = 5000 pada file my.cnf. File my.cnf adalah file konfig dari mysql server.

Oke, itu tadi singkatnya, untuk cara bertahapnya seperti ini:

*catatan: mysql server berjalan di OS turunan Debian jadi jika sesuaikan saja lokasinya jika kamu menggunakan OS yang berbeda

1. Buka file my.cnf dengan akses root
$ sudo nano /etc/mysql/my.cnf

atau kalau kamu sudah sebagai root

# nano /etc/mysql/my.cnf

2. Cari [mysqld], lalu tambahkan di bawahnya : open_files_limit = 5000 semakin besar nilainya semakin jauh limitnya

3. Restart MySQL server
# /etc/init.d/mysql restart




4. Lalu check dan repair database dan table mysqlnya

$ mysqlcheck -Av --auto-repair -u root -p

5. Selesai