CakePHP Indonesia : Berita, Artikel, Forum, Tutorial Framework CakePHP Berbahasa Indonesia untuk Pemula dan Tingkat Lanjut


posting terbaru


Barangkali Anda pernah membuat sebuah aplikasi yang memerlukan koneksi ke dua atau lebih database dengan CakePHP. Beberapa waktu yang lalu, saya bahkan dihubungi oleh beberapa teman yang menanyakan hal serupa. Penasaran, saya mencoba membuka kembali manual CakePHP. Apakah CakePHP bisa terkoneksi ke dua atau lebih database dalam satu waktu bersamaan ? Jawabannya adalah bisa ! Bagaimana caranya :

1. Silahkan buka file app/config/database.php. Anda akan menjumpai variabel $default dan $test. Ubah variabel $test dan beri nama sesuai dengan keinginan Anda. Misalnya : $db2. Kemudian masukkan konfigurasi koneksi database db2 Anda. Jadilah konfigurasi database Anda seperti ini :

2. Setelah itu, gunakan variabel $useDbConfig pada Model Anda :

3. Selesai ! Tinggal masukkan query pada Controller yang sesuai dengan Model Anda ….dan hulla ….Anda sudah melakukan koneksi ke database kedua Anda. Lakukan hal yang sama, dengan menambahkan variabel koneksi di class DATABASE_CONFIGĀ  jika Anda ingin terhubung ke database ketiga, keempat, dst.

Salam CakePHP !



Kustomasi ini berfungsi agar tabel informasi SQL DEBUG kelihatan lebih menarik dan informatif.
Hasil dari kustomasi ini adalah sebagai berikut :

  1. Terdapat Fungsi Mouse Over pada setiap barisnya, jadi informasi yang kita ingin baca lebih tampak berbeda dari yagn lain
  2. Text-align Center pada Kolom ERROR, AFFECTED, NUM. ROWS dan TOOK (MS)

Hasilnya adalah sebagai berikut:
Hasil Kustomasi Tabel SQL Debug Information

Cara kerjanya adalah dengan menggunakan JavaScript DOM untuk mengakses setiap node serta mengkustomasinya yang terdapat dalam tabel dengan nama kelas cakeSqlLog.

Untuk menggunakannya, download file cakeSqlLog.css dan cakeSqlLog.js di :
http://seandy.com/optimized_cakesqllog

Langkah-langkahnya sebagai berikut:

  • Edit file /app/config/core.php (ubah DEBUG menjadi 2 yaitu dengan SQL Output)

Level DEBUG ada empat (4) :

  • 0: Production mode. No error output, no debug messages shown.
  • 1: Development mode. Warnings and errors shown, along with debug messages.
  • 2: Same as in 1, but with SQL output.
  • 3: Same as in 2, but with full dump of current object (usually the Controller).
  • Copy file css yaitu cakeSqlLog.css ke dalam folder /app/webroot/css
  • Copy file javascript yaitu cakeSqlLog.js ke dalam folder /app/webroot/js
  • Kemudian di dalam Controller, kita perlu deklarasikan Helpers Html dan Javascript, berikut kodenya :
  • Setelah itu, maka fitur ini siap digunakan, dengan meng-embeded tag-tag link stylesheet dan javascript ke dalam tag <HEAD> halaman View dengan menggunakan Helpers yang kita telah inisialisasikan di dalam Controller, berikut kodenya :

Mudah bukan.. yup emang mudah.
Pertanyaan/Saran/Komentar/Pendapat/Kritik silahkan posting di sini atau untuk berdiskusi bisa ke Groups id-cakephp.



Kadang kita suka menulis ulang code program berulang kali saat membuat sebuah proyek web. Biasanya web programmer paling malas dengan berurusan dengan pemprosesan banyak file upload (lebih dari 1), karena lumayan ribet, kalau mungkin yang sudah terbiasa dengan membuat class php yah mungkin mudah tinggal bikin instance dari object dan eksekusi fungsi-fungsinya, tapi bagi yang sering menulis ulang code dan baru memulai untuk mempelajar CakePHP framework, Component ini sangat berguna. Component ini berfungsi untuk memproses banyak file upload hanya dengan memanggil fungsi-fungsi yang dimilikinya. Fitur-fiturnya sebagai berikut :

  • Dapat men-set sendiri mime file apa saja yang bisa/akan di-upload
  • Dapat men-set prefix dari nama file yang baru
  • Dapat men-set apakah akan me-replace file yang lama atau tidak
  • Dapat menyimpan data file yang berhasil di-upload langsung ke dalam database

Akhir dari penggunaan Component ini adalah dengan pemanggilan fungsi :
$this->MultipleUpload-> getValidFiles();
yang mengembalikan data berupa array yaitu sebagai berikut:

Array
(
[0] => Array
(
[filename] => kartu.gif
[newfilename] => menujudotcom_12082007_5b4de.gif
)

[1] => Array
(
[filename] => longhornbliss.jpg
[newfilename] => menujudotcom_12082007_fa587.jpg
)

[2] => Array
(
[filename] => msnbliss.jpg
[newfilename] => menujudotcom_12082007_587ae.jpg
)
)

Sneak preview penggunaan Component ini sebagai berikut:

Ini merupakan halaman untuk Upload file-file :

Halaman /uploads/index




Ini merupakan halaman setelah file-file berhasil di-upload :

Halaman /uploads/upload




Perintah-perintah untuk upload dalam Controller

<?

...

$this->MultipleUpload->setField("namafile");
$this->MultipleUpload->setModel("Upload");
$this->MultipleUpload->setFieldDb("namafile");
$mimesyangboleh=array(
'image/jpeg',
'image/pjpeg',
'image/png',
'image/gif',
'image/tiff',
'image/x-tiff'
);
$this->MultipleUpload->setValidMimes($mimesyangboleh);
$this->MultipleUpload->setPrefix("menujudotcom_");
$this->MultipleUpload->setReplace(false);
$this->MultipleUpload->uploadTo($dir);
$data_berhasil=$this->MultipleUpload->getValidFiles();

...

?>

Untuk penjelasan lengkapnya dari fungsi-fungsi tersebut, bisa di-lihat di source code nya.
Jika ada bugs/saran/pendapat boleh kita diskusi bareng-bareng di sini atau di groups id-cakephp.

Mari belajar CakePHP!





CakePHP Indonesia is powered by WordPress 2.0 | Using furCake v.2.0 theme developed by Sunu Wibirama