Rabu, 20 Juni 2007

mulailah projek oracle vs php ?

akhirnya hari ini aku mulai mengerjakan projek oracle-php.

dengan dimulai sdikit kikuk dengan bangsa oracle; sekarang
harus mulai membiasakan diri ajah,,,,.... yah

step - stepnya dimulai dengan bismillah(penting loh)
uda gitu....coba instal TOAD(software buat view db-oci nya)

terus..............instal client oracle deh,karena kapasitas komputer ini gak mumpuni kalo harus pake sqlserver-oracle dll, maklum masih lemot(wew...)

o iyah, gak ketinggalan...pas instalasinya ternyata aku gak sempet ngelengkapin (completed) oracle client nya.

jadi weh, aku minta bantuan ma om danies n om irul tapi entah kenapa mas danis nya malah ada di ruang server gitu...(biasanya sih lagi belajar buat UAS, hehehehe...)

tapi.... the end sekarang uda beres dan uda nisa nge-restore db-ocinya pake TOAD kok?

sekarang begin..............

siap.............

1 2 3.............(gubrag)---- bangun lagi

yoo wisss.....

buat koneksi php-oracle lagi ?!!

untuk mengingatkan diriku, berikut alamat nya ->

http://step2k.blogsome.com/2006/10/05/oracle-10g-xe-php/

chayooooooooooo

Koneksi PHP dengan database oracle ( Mengingatkan )

ZEND CORE for ORACLE
Komunikasi ke database Oracle dari PHP dapat dilakukan dengan beberapa cara seperti dengan Oracle Install Client
atau dengan Zend Core for Oracle. Saat ini saya hanya akan menjelaskan pengalaman saya mengenai koneksi ke Database Oracle melalui Zend Core yang akan dijelaskan dibawah.

Zend Core for Oracle adalah Engine PHP yang dibuat untuk koneksi antara PHP dan Oracle seperti versi Oracle 8i, 9i dan 10g. Sewaktu tulisan ini dibuat versinya sudah mencapai 1.5. Zend Core for Oracle dibundle dengan Apache 2 dan PHP 5 yang didesain untuk mencapai kinerja yang maksimal, dioptimisasi untuk Oracle 10g XE, aman, cepat, dan berita gembiranya adalah aplikasi ini free / gratis !

Setelah instalasi dilakukan, karena Zend Core sebelumnya telah terpasang ternyata Apache Zend Core 2.01 bentrok dengan Zend Core for Oracle 1.5 sehingga Apache-nya tidak dapat dijalankan ! versi Apachenya pun berbeda, pada Zend Core 2.01 adalah versi 2.2.2 sedangkan Apache di Zend Core for Oracle adalah versi 2.0.59.

Setelah menguninstall Zend Core 2.01 dan menginstall Zend Core for Oracle dari awal, baru Apachenya dapat berjalan dengan normal.
Pada instalasi Zend Core for Oracle, secara standar ekstension koneksi untuk oracle (oci8-Oracle) sudah aktif tetapi ekstension MySQL dan mbstring tidak aktif, jika anda ingin menggunakan koneksi database ke MySQL juga dan biasa menggunakan PhpMyAdmin sebagai aplikasi untuk mengatur database mysql, anda harus mengaktifkannya terlebih dahulu dengan masuk ke Web UI Zend Core dengan alamat http://localhost/ZendCore/ lalu masukkan password yang telah anda masukkan sebelumnya sewaktu instalasi. Lalu masuk ke bagian CONFIGURATION > EXTENSIONS dan click pada tombol switch disebelah icon Lampu mysql - MySQL dan mbstring - Multibyte Character Processing dan simpanlah konfigurasi tersebut. Langkah berikutnya merestart ulang Apache dengan masuk ke Services di CONTROL PANEL > ADMINISTRATIVE TOOLS > SERVICES.

SETTING DI ORACLE 10g XE
Jika anda belum menginstall Oracle 10g XE, anda bisa menginstallnya dengan mengikuti langkah2nya di blog Install Cepat Oracle Database Express 10g pada Linux Fedora Core 5
Sebelum memulai, ada beberapa setting yang harus dipersiapkan didatabase XE agar testing koneksi ke Oracle ini dapat dilakukan. User yang akan digunakan adalah user yang sudah ada pada database XE, kita tinggal mengaktifkannya saja melalui Administrasi Database dengan login ke http://192.168.1.xxx:8080/apex (port dan server disesuaikan dengan setting anda) sebagai DBA lalu masuk ke bagian ADMINISTRATION > DATABASE USERS > MANAGE USERS.
Pilih user HR yang akan membawa anda kedalam mode rubah user. Isi passwordnya sesuai dengan yang anda inginkan, rubah status ACCOUNT STATUS dari Locked menjadi Unlocked dan tekan tombol ALTER USER untuk menyimpan hasil perubahannya. Setelah itu anda tinggal membuat script PHP yang akan berkomunikasi dengan Oracle.



SCRIPT PHP
Koneksi dari php ke Oracle menggunakan fungsi oci_connect dengan format :
oci_connect(”namauser”,”passworduser”, “//ip_database_oracle/XE”);
tulisan XE pada akhir tulisan menunjukan bahwa kita akan menghubungkan php dengan Oracle XE.

Contoh scriptnya dapat dilihat dibawah ini :

?>?>?>?>?>?>?>?>?>?>’;
while ($row = oci_fetch_array($sth, OCI_RETURN_NULLS)) {

echo ‘’;
foreach ($row as $item) {

echo ‘’.($item?htmlentities($item):’ ‘).’’;

}
echo ‘’;

}
echo ‘’;

// menutup koneksi database
//////////////////////////////////////////
oci_close($conn);
?>

Berikut ini tampilan yang merupakan hasil output dari script diatas (datanya sudah ada dalam tabel Oracle 10g XE)



Koneksi antara PHP dan Oracle melalui Zend Core merupakan langkah yang besar bagi komunitas PHP. Apalagi jembatan tersebut didukung penuh oleh Zend Technologies sebagai pengembang bahasa PHP. Tidak dapat disangkal lagi bahwa pada tahun-tahun mendatang, aplikasi enterprise berbasis web terutama pada sisi front-end akan didominasi juga oleh PHP sebagai bahasa pemrograman web yang populer !

Proses instalasi dan cerita diatas menggunakan software - software seperti :
Windows XP ServicePack 2
PHP Version 5.1.6
Oracle 10g XE
ZendCoreforOracle-v.1.5-Windows-x86

Referensi mengenai PHP dan Oracle di situs internet:
Oracle PHP Developer Guide
Zend Core for Oracle
DeployPHP Series, Part 5: Zend Core for Oracle Quick Start
ORACLE 10g XE + PHP
Instalasi Oracle Instant Client di Linux

Penggunaan smarty (penting)

Smarty merupakan template engine yang ada di php, penggunaan template salah satunya adalah memisahkan antara view dan control. kasarnya seh memisahkan kode php dan html, sehingga dalam pemrograman php lebih mudah dan readalbe. Tapi dalam penggunaannya dalam sehari-hari hindarilah 4 hal berikut ini:

1. Tetap mengisikan kode html dalam file php, tujuan awal dari pemakaian smarty adalah memisahkah kode html dan php, sehingga kalau tetap mengisikan html dalam php maka akan mengurangi readable php kita.

2. menggunakan assign untuk variable yang berisikan data yang besar, gunakanlah assign_by_ref dengan menggunakan assign_by_ref maka kita menghindari in-memory copy.

3. meng-aktifkan $compile_check (set menjadi true) pada production state, ketika system sudah memasuki production state maka template sudah tidak ada perbuhan-perubahan lagi sehingga tidak perlu adanya pengecekan perubahan file template, jadi meng-aktifkan $compile_check itu melakukan pemborosan

4. menggunakan koment html, gunakan coment untuk smarty {* dan *} sehingga koment tidak di-outputkan ke user, disamping untuk mengurangi biaya bandwidth, juga untuk menghindari koment-koment kita terbaca sama orang lain.