Category Archives

3 Articles
WordPress 4.9.1 dengan PHP 7.2

WordPress 4.9.1 dengan PHP 7.2

Saya biasanya kalau mau memperbaharui WordPress selalu menunggu versi minor .1 atau lebih. Soalnya, suka ada perilaku tak terduga kalau versi mayor baru terbit. Kali ini, WordPress 4.9.1 sudah terbit.

Menurut situsnya, WordPress merekomendasikan penggunaan PHP 7.2. Saya sendiri baru tahu kalau sudah ada PHP 7.2. Pantas saja WordPress berhenti di versi 4.8.4 pada beberapa peladen.

Saatnya memasang PHP 7.2!

Pemasangan PHP 7.2

Saya pernah membahas tentang PHP 7.1+ di artikel terdahulu. Jadi, ini sekedar mengulang saja.

Aktifkan modul APT untuk mengakses repo berbasis HTTPS dan beberapa paket lainnya.

sudo apt-get install apt-transport-https lsb-release ca-certificates

Aktifkan repo Suri.

wget -O- https://packages.sury.org/php/apt.gpg | sudo apt-key add -
echo "deb https://packages.sury.org/php/ jessie main" | sudo tee -a /etc/apt/sources.list.d/php-sury.list
sudo apt update

Lalu, pasang PHP 7.2 untuk menggantikan PHP 5.

sudo apt install php7.2-fpm php7.2-curl php7.2-gd php7.2-imagick php7.2-json php7.2-mysql php7.2-readline php-redis php7.2-xml php7.2-mbstring php7.2-zip php7.2-mysql

Kalau hanya sekedar php-fpm, yang terpasang bakal versi 7.1. Harus secara eksplisit disebutkan versi 7.2.

Selanjutnya, menyalin konfigurasi fpm dari /etc/php5/fpm/pool.d ke /etc/php/7.2/fpm/pool.d untuk setiap pool.

Saya sejauh ini tidak ada masalah.

Fungsi Yang Mulai Ditinggalkan

Nampaknya PHP7 dan terbaru hendak dibuat menjadi domain yang ketat (strict typecast). Mungkin pengembang PHP ingin menjadikan PHP sebagai bahasa yang lebih aman. Kalau saya melihat log, biasanya akan diprotes bentuk akses senarai (array). Saya mendapati fungsi count() terutama yang paling sering dicatat.

count(): Parameter must be an array or an object that implements Countable in ...

Ada orang-orang yang memutuskan untuk kembali ke PHP 7.1. Tapi saya tidak! Agar sesuai dengan PHP7.2 dan terbaru, misalnya ada variabel:

count($elements[‘#value’])

count ( $elements )

Diubah dengan menambahkan uji tipe senarai :

is_array ( $elements ) && count ( $elements )

Atau, saat diubah menjadi tipe senarai:

$elements = ( array ) $source->getElements();

Penyebab ini semua kalau saya lihat di kode sumber WordPress adalah biasanya karena penggunaan variabel global.

Untung saja, untuk yang lain pun WordPress dan plugin-nya sudah cukup bersahabat.

Bacaan Lebih Lanjut

Repositori Suri untuk PHP 7.1+

Repositori Suri untuk PHP 7.1+

Plessis mengumumkan bahwa dia sudah tidak mau lagi mengelola pemaketan PHP terbaru di Dotdeb. Dia kemudian menyarankan untuk menggunakan repositori dari Sury, seorang pengelola resmi pemaketan PHP dari Debian.

Karena Sury menggunakan HTTPS, jangan lupa pasang dulu transportasi HTTPS untuk APT:

sudo apt install apt-transport-https

Cara menambahkan:

wget -O- https://packages.sury.org/php/apt.gpg | sudo apt-key add -
echo "deb https://packages.sury.org/php/ jessie main" | sudo tee -a /etc/apt/sources.list.d/php-sury.list
sudo apt update

Selesai. Secara baku, paket PHP yang dipilih adalah 7.1. Namun, Sury menyediakan juga untuk paket PHP 7.0.

Memasang Laravel dengan SQLite3

Memasang Laravel dengan SQLite3

Saya lupa untuk memasang contoh kalau sudah benar di artikel sebelum ini. Ya, sudah, kalau begitu kita coba saja Laravel dengan SQLite3 sebagai basisdatanya.

Buat Situs Baru

Jalankan perintah berikut:

laravel new situs-sqlite && cd situs-sqlite

Tergantung kecepatan koneksi Anda, Anda bisa mandi dulu. Sudah mandi, ‘kan?

Modifikasi Konfigurasi untuk SQLite3

Ubah berkas .env membuat semua variabel dengan awalan DB_ dan tambahkan variabel untuk SQLite.

sed -i "/DB/d"  .env
echo "DB_CONNECTION=sqlite" >> .env
echo "DB_DATABASE='storage/testdb.sqlite'" >> .env

Buat sebuah basis data baru.

touch storage/testdb.sqlite

Jalankan migrasi.

php artisan migrate

Jalankan peladen Laravel. Untuk kesenangan semata, saya menjalankan pada port yang berbeda.

php artisan serve --host 10.0.2.15 --port 8001

Ya, IP yang aneh itu adalah IP lokal VirtualBox. Saya menggunakan itu agar port-nya dapat diteruskan ke inang. Sehingga, saya bisa mengakses dari peramban saya sendiri.

Kalau benar tampilannya akan seperti berikut:

Laravel first-app.