Ternyata semua itu karena perbedaan versi…

PHP_SelectorSudah hampir seharian saya utak-atik program yang diupload ke server. Dimulai tadi pagi bencana itu datang…

Tiap tahun Kakek saya mengadakan acara Halal Bi Halal, tepatnya beberapa hari setelah lebaran. Yang diundang juga banyak sekali, mungkin semua keturunan dari bapaknya kakeknya kakek saya. Pusing kan? 😀 Sebenernya sudah ada buku silsilah yang dibuat oleh Bapak saya pada tahun 2000. Pada tahun itu masih jamannya disket. Dan bukunya pun ada 4, dan lumayan tebal. Jadi ada buku A untuk keturuan dari si fulan dan fulanah, buku B untuk keturunan si fulan dan fulanah, dan seterusnya. Saking banyaknya makanya dipisah jadi 4 buku.

Itu tahun 2000, kebayang dong sekarang tahun 2015 sudah berapa anggota baru yang bertambah? Banyak banget pastinya. Oleh karena itu saya didelegasikan ditugaskan untuk membuat sebuah aplikasi yang akan menyimpan data keluarga dari generasi atas sampai generasi bawah sekarang ini. Aplikasi kecil cuma ribet. Jadinya susah sekali untuk melakukan query. Karena ada beberapa orang yang bisa termasuk dari dua atau tiga keturunan. Misalnya si X itu termasuk keturunan A, tapi juga masuk keturunan B karena adanya pernikahan saudara jauh dulunya. Nah kemudian si X menikah dengan si Y yang dari keturuan C. Pabeulit.

Untuk prototypenya sudah selesai sebenarnya. Masih sederhana banget, hanya untuk input saja. Untuk menampilkan hirarki keluarga secara keseluruhan masih belum bisa. Untuk pembuatan saya memilih untuk mengkoding sendiri dari awal karena akan lebih leluasa nantinya. Untuk frontend saya menggunakan AngularJS (yang lagi nge-trand sekarang ini), kemudian untuk urusan data saya bikin RESTful API menggunakan Slim PHP Framework, tampilannya menggunakan template html based on bootstrap.

Karena acaranya tadi pagi hari ini, maka semalaman suntuk saya ngebut untuk mengerjakan aplikasi. Tapi sayang sekali sampai ayam berkokok aplikasi pun masih jauh dari kata selesai. Akhirnya saya putuskan untuk upload ke server/hosting cpanel dulu menggunakan FTP. Dan kemudian saya tinggal tidur.

Nah ketika bangun, masalah dimulai. ketika saya cek sudah bisa diakses online. Tapi masalahnya tidak bisa login. Saya kira masalah koneksi ke database segala macam, ternyata bukan. Terus saya cari tahu apa masalahnya karena ketika mengakses API, yang terjadi adalah kode HTTP 500 (Internal Server Error). Asumsi pertama saya adalah masalah konfigurasi file .htaccess nya. Sampai acara Halal Bi Halal dimulai dan sudah setengah jalan, masalah belum terpecahkan. Akhirnya launching aplikasi dibatalkan dan saya mengikuti acara Halal Bi Halal diiringi dengan obrolan bersama teman/kawan/saudara yang sudah lama tak jumpa.

Sampai acaranya selesai saya masih penasaran. Saya sempatkan untuk belajar .htaccess beserta sintaksnya dari website Apache. Ketika saya coba praktikan ternyata bukanlah .htaccess penyebabnya. Saya mulai inspeksi Slim Framework dan mencari tahu penyebabnya. Secara teliti dan SABAR saya pasang sintaks php var_dump() dan die() untuk mencari tahu lokasi error. Yang aneh, tidak ada pesan error dimunculkan, yang ada hanya kode HTTP 500. Saya mulai curiga mungkin konfigurasi cpanel-nya tidak menampilkan error. Ternyata benar! Setelah saya tulis sintaks PHP error_reporting(E_ALL) dan ini_set(‘display_errors’, ‘On’), keluarlah mahluk bernama error tersebut.

Disitu dituliskan ada sintak error pada file anu baris kesekian. Langsung saya cek via FTP. Saya baca, saya teliti, namun saya tidak menemukan ada yang salah. Setelah googling, ternyata masalahnya adalah sintaks array pada PHP. Pada PHP versi 5.3 penulisan array dengan Array() sedangkan pada versi 5.4 penulisan array bisa dengan Array() maupun [ ]. Saya cek versi PHP di server/hosting cpanel ternyata versi 5.3.x. Saya cek versi di laptop ternyata versi 5.4.x. Pantas saja aplikasinya di laptop lancar, pas diupload ke server/hosting cpanel bermasalah. Ternyata perbedaan versi PHP lah akar masalahnya. Alhamdulillah masalahnya sudah selesai sekarang dan banyak pelajaran berharga yang dapat diambil 🙂

Selamat dini hari, Ayam.

2 thoughts on “Ternyata semua itu karena perbedaan versi…

    1. Kalau aku sih pake AngularJs sebagai garda depan, alias yg berhubungan dg user langsung. PHP tetep digunain, tapi cuma sebagai penyedia data, alias API atau webservice. PHP nya aku pake Slim framework karena menurutku pas buat API dan routingnya jg lengkap. Pake CI bisa aja, tapi menurutku sih kurang pas. CI lebih pas sebagai stand alone app, alias dia sendiri di garda depan yg berhubungan dg user langsung.

Tinggalkan Balasan

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogger menyukai ini: