Home > CodeIgniter, Info, PHP > Mencocokan script anda dengan PHP 6

Mencocokan script anda dengan PHP 6

September 24th, 2008 1,225 views Leave a comment Go to comments

Terhitung 2 hari ini saya dibuat pusing dengan keluhan client yang selalu menemukan error di aplikasi yang saya buat ketika mereka meng-upload script saya ke server mereka. Kebetulan saya mengembangkan aplikasi mereka dengan menggunakan CodeIgniter. Error-error yang mereka kirim lebih membingungkan saya karena saya baru kali ini melihat error seperti ini:

Deprecated: Assigning the return value of new by reference is deprecated in J:\Webmaster_File\Project\product_database\system\codeigniter\Common.php on line 123
 
Deprecated: Assigning the return value of new by reference is deprecated in J:\Webmaster_File\Project\product_database\system\codeigniter\Common.php on line 129
 
Fatal error: Call to undefined function set_magic_quotes_runtime() in J:\Webmaster_File\Project\product_database\system\codeigniter\CodeIgniter.php on line 53

Ternyata server mereka menggunakan AppServ2.6 untuk menjalankan beberapa aplikasi intranet mereka. Dan di appserv2.6, versi PHP yang digunakan adalah PHP6. Saya cukup terkejut karena di PHP6 ada beberapa scripting PHP5 yang tidak cocok / compatible lagi, jadi dengan terpaksa saya harus menyesuaikan script PHP5 pada CodeIgniter agar bisa berjalan dengan baik di PHP6.

Setelah selesai bergulat dengan PHP6, akhirnya saya menemukan beberapa kesimpulan yang mungkin bisa membantu anda para developer sekalian. Berikut adalah hal-hal yang harus anda lakukan apabila ingin bermain dengan PHP6.

1. Jangan Gunakan Register Global
Bagi anda developer yang masih mengandalkan setting register_globals pada aplikasi anda, maka lupakanlah karena di PHP6 setting ini dihilangkan dan para developer harus terbiasa menggunakan setting register_globals = off

2. Selamat tinggal Magic Quotes
Hampir semua aplikasi sering menggunakan setting magic quotes (magic_quotes, magic_quotes_sybase atau magic_quotes_gpc) untuk memberikan keamanan pada setiap inputan dari sisi client. Saya cukup direpotkan dengan error “undefined function get_magic_quotes_gpc()” pada beberapa halaman, oleh karena itu lakukan langkah persuasif dengan cara mendeklarasikan fungsi get_magic_quotes_gpc() anda sendiri yang hanya mengembalikan nilai false seperti in:

if (version_compare(phpversion(), '6', '>=')) {
	function get_magic_quotes_gpc(){
		return false;
	}
}

3. Call Time Pass by Reference sudah tiada
Saya jarang menggunakan gaya ini dalam scripting saya oleh karena itu hilangnya Call Time Pass by Reference tidak berpengaruh bagi saya tapi bagi anda yang menemukan error “Assigning the return value of new by reference is deprecated“, maka hilangkan tanda “&” pada deklarasi object seperti ini:

$obj =& new MyClass(); // pada PHP5 ini bekerja dengan baik
$obj = new MyClass(); // hilangkan tanda "&", sampai saat ini tidak berpengaruh apa-apa terhadap sistem

4. Semua fungsi Case Sensitive
Mulai dari PHP6, semua fungsi built in dari PHP diharap ditulis secara lowercase.

5. Pindah dari ereg ke preg
Bagi anda yang suka bermain regular expression. Gunakanlah fungsi preg daripada ereg karena preg dapat dieksekusi lebih cepat dan isunya fungsi ereg akan dihilangkan dari fungsi inti PHP.

6. Mengambil 1 karakter pada string jangan gunakan {} lagi.
Pada awalnya PHP menyarankan tanda {} untuk mengakses salah satu karakter dalam string. Mulai dari PHP6, pengambilan 1 karakter pada string gunakanlah tanda [], seperti layaknya mengoperasikan array.

 $str = "Cape deh";
 echo $str{0}; // menampikan karakter "C". di PHP5 masih bisa
 echo $str[0]; // menampikan karakter "C". di PHP6

7. Jangan gunakan @ pada fungsi ini_set
Untuk kompatibilitas aplikasi anda, seringkali anda menggunakan ini_set agar setting PHP.ini pada setiap server sama dengan kebutuhan website anda, namun penggunaan ini_set seringkali menimbulkan error sehingga orang biasa mendeklarasikan ini_set dengan tanda @, agar error yang terjadi tidak ditampilkan di browser. Namun karena masalah kecepatan pada PHP6 jangan gunakan tanda @ pada fungsi ini_set….huff cape deh.

8. Tag pembuka dan penutup PHP (issue)
Ini isu yang beredar dan cukup meresahkan para developer PHP, tag ASP yang bisa support di PHP yaitu “<% //script php %>” akan dihilangkan bersamaan dengan “<??>”!!. Oleh karena itu demi keberlangsungan hidup aplikasi anda, gunakan saja “<?php ?>” pada awal pendeklarasian script anda. (kerja rodi deh)

Demikian info tentang kompatibilitas PHP6 yang dapat saya sharing disini. Mungkin rekan-rekan pembaca ada yang mengalami masalah yang berbeda tolong share disini. Apabila anda ingin melihat referensi lengkap tentang perubahan pada PHP6, klik link ini, yang berupa hasil rapat para developer PHP yang membicarakan masa depan PHP di tangan PHP6.
Terima kasih semoga bisa membantu… ^_^

Categories: CodeIgniter, Info, PHP Tags:
(7 votes, average: 3.29 out of 5) KurangBiasaLumayanBagusLuar Biasa
Loading ... Loading ...
  1. November 18th, 2008 at 23:15 | #1

    makasi atas info dan share nya bang chandra :)
    saya blm coba di php6 nih…
    sip deh kl dah ada acuan2 seperti ini… terutama buat aplikasi2 yg pake CI.. hehehe :D

    tq..

  2. December 19th, 2008 at 23:27 | #2

    Terima kasih atas infonya mas… bermanfat sekali..

  3. crazynoil
    March 26th, 2009 at 19:17 | #3

    oalah, PHP yang saya pake kemaren ternyata PHP 6.
    Pantas saja ga berfungsi minta ditulis lengkap
    Baru sadar saya setelah baca tulisan ini.
    Terima kasih infonya ya!

  4. ali
    April 11th, 2009 at 01:54 | #4

    bang, bahas tentang OOP PHP berbasis aplikasi database dunk!!! Makasih :D sukses selalu

  5. April 21st, 2009 at 20:26 | #5

    bos…., bikin artikel pengenalan framework CodeIgniter dunk…
    soalna selama ini gw blm pake framework, gw da nerapin oop tapi bikin sendiri class dan template enggine na patTemplate.

    ok…ditunggu ya bos….!!!

  6. June 11th, 2009 at 00:54 | #6

    hmmm…. guwe juga pernah nmu kasus yg sama mas admin.
    waktu itu, pas berurusan dengan session handler ama header. ternyata PHP 5 > semakin secure.

    tapi cukup membingungkan kita developper kalo pas awalnya, karena bakalan dibikin kaget juga.. hehehe..

    thanks ..

  7. October 12th, 2009 at 16:31 | #7

    emank sudah keluar PHP 6???

    saya buka http://www.php.net/downloads.php

    saya cari-cari PHP 6 belom di released tuh

  8. October 12th, 2009 at 16:44 | #8

    di http://www.appservnetwork.com/ coba lihat versi appserv 2.6.0, di dalam instalasinya ada PHP6

  9. March 5th, 2010 at 11:50 | #9

    nice info..
    saya sebenarnya belum mencoba PHP 6.
    tapi tutorial ini sudah membantu saya dalam mendapatkan gambaran mengenai setting-an PHP 6 serta perbedaannya dengan PHP versi sebelumnya.

  10. Sanjaya
    April 26th, 2010 at 12:32 | #10

    Terimakasih atas artikel nya

    :D
    :D

  11. Yohan
    June 22nd, 2010 at 11:47 | #11

    Thanks atas infonya.
    saya mau tanya, saya juga menggunakan PHP 6 dan sama direpotkan juga dgn fatal error undefined function get_magic_quotes_gpc()..nah tadi kan katanya kt harus mendeklarasikan fungsi tersebut sendiri, kt mendeklarasikannya di folder/file mana y?

    Thx

  12. June 22nd, 2010 at 11:56 | #12

    iya memang fungsi get_magic_quotes_gpc() sudah tidak ada lagi di PHP 6, oleh karena itu deklarasikan fungsi itu di file global yang digunakan / diinclude oleh semua module atau module-module yang menggunakan fungsi get_magic_quotes_gpc(). Contoh: “index.php” atau file “fungsi.php

  1. No trackbacks yet.