Membuat Blog Post FuelPHP dengan ODM MongoDB Part I

Membuat Blog Post FuelPHP dengan ODM MongoDB Part I

Artikel ini merupakan sebuah tutorial pemrograman FuelPHP untuk pembuatan halaman blog post website. Pada praktek ini, database yang digunakan adalah MongoDB, database NoSQL yang…

Artikel ini merupakan sebuah tutorial pemrograman FuelPHP untuk pembuatan halaman blog post website. Pada praktek ini, database yang digunakan adalah MongoDB, database NoSQL yang berbasis document-oriented. Dijelaskan juga tentang sebuah teknik abstraksi database yang dikenal dengan Object Document Mapping (ODM)

Object Document Mapping (ODM)

mapping

Pernahkah Anda mendapati istilah ORM atau Object Relational Mapping? Saya yakin Anda pernah mendengarnya karena hampir disemua framework pemrograman yang saya kenal selalu menyertakannya untuk abstraksi model database. Sedikit ulasan bahwa ini adalah sebuah teknik pemrograman yang mana data dalam database akan diubah ke object-oriented oleh program yang kita buat. ORM akan melakukan dua hal, yang pertama akan me-mapping data tiap row pada sebuah tabel database ke dalam sebuah objek dan yang kedua membangun hubungan relational antar objek-objek representasi dari tabel database.

Konsep Object Document Mapping(ODM) sama persis seperti penjelasan ORM diatas, bedanya hanya terletak pada jenis database yang digunakan. ODM ini digunakan pada jenis database NoSQL yang berbasis document-oriented yaitu mongoDB.

Package FuelPHP tentang ODM MongoDB

package

Didalam dokumentasinya FuelPHP telah menyediakan sebuah class yang dapat berinteraksi dengan database MongoDB. Beberapa operasi dasar dapat kita lakukan dengan class ini, seperti menambahkan sebuah document, mengambil isi collection, menghapus document dan juga mengedit document. Tetapi tidak seperti ORM yang sudah secara default sudah tersedia dalam paket download FuelPHP, ODM tidak tersedia dalam paketan itu. Sepertinya para pengembang fuelphp belum ada rencana untuk menambahkan konsep ODM ini ke fuelphp, saya lihat roadmap version 2.0 tidak ada rencana pengembangan untuk teknik ini.

Walaupun development fuelphp belum sampai pada pengembangan teknik abstraksi database NoSQL, Phil Sturgeon yaitu salah satu developer FuelPHP memperkenalkan sebuah package yang dia porting dari sebuah package kohana buatan Colin MollenHour. Package Phil Sturgeon hasil porting ke FuelPHP dapat ditemukan pada link https://github.com/philsturgeon/fuel-mongo-odm, sedangkan package asli buatan Colin dapat ditemukan pada link https://github.com/colinmollenhour/mongodb-php-odm.

Pada artikel ini akan saya tunjukkan bagaimana membuat sebuah contact form dengan memakai package ODM di FuelPHP. Pada dasarnya ini sama saja dengan kita bekerja pada ORM FuelPHP, yang harus disiapkan hanya model yang merepresentasi data pada database, tapi sebelum masuk ke kode-kode pemrograman, ada beberapa kebutuhan sistem yang harus dipersiapkan dulu. Berikut adalah requirement sistem yang harus kita persiapkan:

1. Instalasi MongoDB + Running service MongoDB
Sebelumnya saya pernah menulis artikel tentang MongoDB yang dibagi menjadi tiga bagian, bagian pertama saya bahas tentang Document-oriented yang dimiliki oleh MongoDB, bagian kedua kemudian tentang operasi-operasi dasar MongoDB, dan terakhir bagian ketiga tentang autosharding MongoDB. Untuk instalasi MongoDB, saya tulis pada bagian kedua dari artikel itu. Instalasinya cukup mudah untuk dilakukan, baik Anda yang memiliki sistem operasi Linux maupun Windows. Setelah ter-install jalankan sebuah service MongoDB, dengan menjalankan sebuah perintah:

$ bin/mongod --dbpath ~/db

2. PHP driver untuk Mongodb
Secara default PHP driver untuk MongoDB ini belum ditambahkan pada konfigurasi server. Untuk Anda yang memakai Linux, bisa menambahkan driver ini dengan melakukan perintah sebagai berikut:

sudo pecl install mongo

Buka file php.ini, kemudian tambahkan driver ini.

extension=mongo.so

Pada sistem Windows, kita dapat mendownload driver ini di http://github.com/mongodb/mongo-php-driver/downloads. Unzip dan pindahkan php_mongo.dll ke dalam direktori extension PHP (biasanya folder dengan nama “ext”). Setelah driver diletakkan disana, kemudian buka file php.ini dan tambahkan driver ini didalamnya.

extension=php_mongo.dll

Selesai menambahkan driver ini, restart dulu web server kemudian cek hasilnya dengan memanggil fungsi phpinfo().

phpinfo()

phpinfo()

3. Aktivasi package FuelPHP
Download package ODM MongoDB buatan Colin yang sudah di porting oleh Phil pada alamat https://github.com/philsturgeon/fuel-mongo-odm. Letakkan package itu pada folder /fuel/packages. Buka file /fuel/app/config/config.php dan aktifkan package itu dengan menambahkannya pada daftar package yang akan selalu di load.

'always_load' => array(
...
'packages' => array(
 'orm',
 'mongo-odm',
 ),
...
)

4. Koneksikan aplikasi ke service MongoDB
Mengkonfigurasi agar aplikasi fuelphp terkoneksi ke service MongoDB yang telah dibuat bisa dilakukan dengan cara menambahkan beberapa config berikut pada file app/config/db.php.

...
'mongo' => array(
 'default' => array(
 'hostname' => '127.0.0.1',
 'database' => 'gooblog',
 //'port' =>28017,
), 
...

Semua requirement yang dibutuhkan untuk pembuatan halaman blog post ini, cuma beberapa point seperti diatas. Dari sini, kita tinggal membuat sebuah model post dan tampilan presentasinya. Untuk pembahasan selanjutnya dapat dilihat pada tulisan lanjutan dari artikel ini akan saya tulis pada bagian II yang akan membahas kode kode program . Untuk kode-kode program yang akan kita buat akan saya tulis pada bagian II pada artikel ini. :D

Tag: , , , ,

4 Comments

Leave Comment
  1. zaaldian says:

    wah.. akhirnya Bang Muse bikin juga tutorial dengan FuelPHP :D
    saya tunggu kelanjutan artikelnya, Bang :D

    btw, nama DB-nya kok ‘gooblog’?? kenapa g ‘bent_0’ aja?? :D +

  2. Mustofa says:

    trims udah komentar, sering2 update saja yah. semua tulisan tentang fuelphp akan saya share pada bisakomputer ini. +

  3. Haqqi says:

    Ini nih baru kereeeen.. :D

  4. miki says:

    tutor yang sangat bermanfaat.. kami tunggu yang terbaru.

Write Comment

Your email will not be published. The marked label is required.