Install PHP Extension untuk Zend Debugger

Hal lain yang tentunya gue kesengsem banget pengen cobain, ya... PHPUnit-nya jek. Mantep banget kan tuh, gak perlu repot-repot lagi Unit-Testing di browser. Bisa lebih semangat ber-Test Driven Development ria. Bikin test filenya atau jalanin testnya juga tidak sulit, tinggal ceklak-ceklik beres.
Tapi! Tidak disangka-sangka, baru klik Run > Debug as > PHP Script lah langsung error Call to undefined function mysql_connect(). Ternyata tidak semua PHP Extension merupakan bawaannya Zend Debugger. Beberapa kudu install sendiri. Setelah ubek-ubek google coba ini itu. Akhirnya nyala juga. Nah supaya yang lain gak punya masalah juga seperti gue, gue pengen bagi-bagi pengalaman gue install PHP-Extension buat Zend Debugger.
Referensi gue waktu cari-cari di google saat itu bisa dilihat disini, disini, disini dan disini. Dari 4 sumber itu, sebenarnya semuanya tidak membuahkan hasil, tapi setidaknya sudah menunjukkan jalan, musti utak-atik dimana. Yang terakhir adalah forum dari Zend sendiri. Dan gue sempet posting saking desperate-nya. Tapi sampai gue ketemu sendiri titik masalahnya dimana, tidak ada yang response pertanyaan gue.
Sebelum gue mulai, mungkin ada baiknya kalau kalian tahu bahwa ada 2 macam Zend Debugger. Yang satu untuk IDE, kita bilangnya Client Debugger, dan yang satu lagi untuk Web Server, atau kita bilangnya Server Debugger. Yang akan gue bahas kali ini sebenarnya tentang Client Debugger, tapi Server Debugger bakal gue singgung juga sedikit.
Contoh yang gue pakai buat Tutorial ini semuanya menggunakan Zend Studio, tapi gue yakin PDT juga sama saja. Jadi tunggu apalagi, download PDT All in one package disini. Distribusi ini sudah dilengkapi dengan Zend Debugger Client.
Untuk mencoba paket yang sudah ada Server Debuggernya, ada baiknya kalian install Zend Core. Tidak usah takut, meskipun trial, Zend Core tidak akan expired, karena untuk Zend Core, Zend menjual support, bukan softwarenya.
So gue langsung ajah, gue gak akan ngebahas installnya, karena ini bukan tutorial untuk install software tapi untuk install PHP Extension di Zend Client Debugger.
Bikin PHP Project baru, lalu buat satu php file, kita beri nama index.php. Dengan file ini kita coba untuk membuka koneksi ke mysql. Gue anggap kalian semua sudah install mysql server, dan punya test database. So kita tulis script untuk connect ke mysql di index.php yang kita buat tadi:
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Not connected : ' . mysql_error()); } // connect to database $db_selected = mysql_select_db('database', $link); if (!$db_selected) { die ('Can\'t use foo : ' . mysql_error()); } ?>So sekarang coba Run > Run As > PHP Script. Hasilnya pasti bakal kayak gini:
Fatal error: Call to undefined function mysql_connect() in K:\root\test\index.php on line 3

Ok untuk lebih yakin bahwa Zend Debugger tidak di install MySQL extension, mari kita coba bikin phpinfo(). Kita ganti script di index.php yang tadi dengan phpinfo(). Lalu coba lagi Run > Run as > PHP Script. Sekarang kalian bisa lihat halaman phpinfo, dan kalau kalian cari disitu, tidak akan ketemu informasi tentang mysql. Ada beberapa extension juga yang tidak ada disitu. Dan dalam kesempatan ini kita akan coba install extension tersebut.
Dari tutorial-tutorial referensi gue diatas, semuanya kasih tahu bahwa gue harus buka plugin Zend Debugger untuk eclipse. Tergantung installasi plugin tersebut dapat ditemukan di
[install_dir]\plugins\org.zend.php.debug.debugger.[operating_system]_5.2.12.v20071210\resources\
Di dalam situ ada 2 direktori, yang satu php4 yang satu php5. Buka yang php5 isinya kira-kira begini:

Kalau kalian buka php.ini nya pakai text editor, isinya cuma ini:
zend_extension_ts=.\ZendDebugger.dll
Mulai dari sini, menurut referensi gue, gue bisa ambil kesimpulan ada 2 kemungkinan:
- Menggunakan Zend Server Debugger extension
- Mengcopy extension file ke plugin directory
Menggunakan Zend Server Debugger extension
Karena server kita sudah disetting semuanya untuk koneksi ke mysql, extension yang diperlukan juga sudah di install, apalagi disana juga sudah diinstall ZendDebugger. Kenapa juga tidak dipakai juga untuk Client Debugging.
Untuk menggunakan Zend Server Debugger extension, caranya mudah saja. Di Eclipse, buka Window > Preferences... > PHP > PHP Executables. Disana klick Add. Terus isi kira-kira seperti ini. Ingat ini settingan gue. Address path kalian bisa lain.

Setelah klickt Finish, set default setting yang loe tadi bikin, kira-kira seperti ini:

Sekarang coba lagi Run as > PHP Script index.php-nya. Kali ini pasti berhasil. Beberapa dari kalian pasti ada yang mengalami keluarnya pop-up ini:

Ini disebabkan karena Plugin zend debugger Eclipse dibuat untuk php versi 5.2.5 dan Zend Core memiliki php versi 5.2.4. Apabila diantara kalian Web servernya menggunakan versi yang sama dengan Eclipse Zend Debugger, maka pop-up warning tersebut tidak akan muncul.
Cara ini sebenarnya sangat tidak disarankan, karena bisa menimbulkan "hal-hal yang tidak diinginkan" lebih jelasnya apa gue sendiri saat ini tidak tahu, tapi yang pasti Zend tidak akan extra membuat 2 Debugger apabila toh semuanya sama saja.
Maka dari itu sangat disarankan cara yang kedua.
Mengcopy extension file ke plugin directory
Copy directory ext dari directory php - untuk zend core ada di [install_dir]/lib/phpext - ke Zend Debugger Plugin. copy juga libmysql.dll dan lib .dll yang lainnya yang dibutuhkan. Kira-kira akhirnya seperti ini:

INGAT: Perhatikan versi data yang ada di directory ext, bandingkan dengan angka yang tertera di php5ts.dll (PHP Interpreter). Pada contoh gambar diatas php5ts.dll memiliki versi 5.2.5.5. Apabila extension library yang ada di directory ext tidak memiliki versi yang sama, maka dijamin tidak akan berhasil. Informasi ini tidak dihimbau di referensi yang gue baca. Dan sempat bikin gue bingung waktu itu, kenapa kok tidak nyala-nyala extension-nya. Selanjutnya tinggal menyesuaikan php.ini yang ada di plugin. Gue kasih contoh bagaimana konfigurasi php.ini gue.
zend_extension_ts=.\ZendDebugger.dll extension_dir=".\ext" extension=php_soap.dll extension=php_sockets.dll extension=php_mysql.dll extension=php_pdo.dll extension=php_pdo_mysql.dll extension=php_pdo_pgsql.dll extension=php_zip.dll extension=php_xsl.dll extension=php_xmlrpc.dll extension=php_mhash.dll extension=php_mcrypt.dll extension=php_mbstring.dll extension=php_calendar.dll extension=php_bz2.dll extension=php_bcmath.dll extension=php_curl.dll extension=php_exif.dll extension=php_ftp.dll extension=php_gd.dll extension=php_fdf.dll extension=php_gd2.dll extension=php_gettext.dll extension=php_imap.dll extension=php_ldap.dll extension=php_mime_magic.dll extension=php_ming.dll extension=php_mysqli.dll extension=php_openssl.dll extension=php_pdo_odbc.dll extension=php_pdo_sqlite.dll extension=php_pgsql.dll extension=php_sqlite.dll extension=php_tidy.dll
Beberapa orang mungkin lebih sedikit, beberapa lebih banyak, tapi yang penting cuma 3 yang diatas:
- Address Path dari zend_extension_ts
- Address Path dari extension_dir
- extension apa yang mau di install
Comments
Saya ubek-ubek gak ketemu :(