Pengenalan Doctrine 2, ORM untuk PHP

Saat saya sedang mengerjakan tugas akhir saya, kebetulan saya menemukan Doctrine 2. Doctrine 2 merupakan salah satu ORM yang cukup populer yang ditulis menggunakan bahasa PHP. Sebelum membahas tentang Doctrine 2, ada baiknya kita mengetahui dulu pengertian dari ORM.

ORM (Object Relational Mapper) adalah teknik untuk memetakan tabel dari database menjadi objek php. ORM ini akan menjadi jembatan antara objek yang didefinisikan dalam kode pemrograman dengan database. Dengan ORM programmer tidak perlu memikirkan sql yang digunakan untuk melakukan CRUD (Create Read Update Delete) data – data yang ada di dalam database, akan tetapi dapat langsung fokus pada interaksi data – data yang berbasis objek.

Membangun aplikasi berbasis web itu tidak mudah, apalagi jika berurusan dengan query yang lumayan rumit. Ditambah lagi saat ini paradigma perograman PHP sudah semakin berbasis objek sehingga sedikit rumit jika harus memikirkan bagaimana objek berinteraksi dengan objek php. Disinilah framework ORM seperti Doctrine 2 sangat bermanfaat bagi programmer.

Sebagai sebuah ORM Doctrine 2 memetakan sebuah objek menjadi data tabel dan sebaliknya. Objek yang digunakan oleh Doctrine 2 yang dikenal sebagai Entities. Sebagai contoh syntax seperti ini :

<?php  
use Doctrine\ORM\Mapping AS ORM;  
/** 
* @ORM\Entity 
*/ 
class user {  
  /** 
  * @ORM\Id * @ORM\Column(type="string") 
  * @ORM\GeneratedValue(strategy="NONE") 
  */ 
  private $uname; 
  /** 
  * @ORM\Column(type="string", nullable=false) 
  */ 
  private $password;  

  public function getUname(){ 
    return $this->uname; 
  } 
  public function getPassword(){ 
    return $this->password; 
  } 
  public function setUname($uname){ 
    $this->uname = $uname; 
  } 
  public function setPassword($password){ 
    $this->password = $password; 
  } 
}

akan menghasilkan tabel user yang berisi kolom uname dan password. Kita dapat mengambil nilai setiap variabel dengan menggunakan fungsi get[nama variabel] dan mengubah nilai variabel dengan fungsi set[nama variabel].

Saat fungsi get dipanggil, Doctrine 2 akan mengecek apakah nilai variabel sudah tersedia, jika belumm Doctrine 2 akan otomatis mengambil nilai dari database. Kemudian saat kita mengubah atau menambah nilai pada objek, nilai tidak akan langsung disimpan di database tetapi akan disimpan kedalam database jika kita telah memanggil fungsi persist($object) dan flush() seperti ini :

$entityManager->persist($user); $entityManager->flush();

Doctrine 2 memiliki banyak fitur, mulai dari fitur dasar seperti mapping data dari database ke objek, update dan delete data sampai fitur advanced seperti setting fetch mode, events, dll. Selain itu Doctrine 2 juga menyediakan bahasa query yaitu DQL (Doctrine Query Language) yang terinspirasi pada HQL (Hibernate Query Language) milik Hibernate di bahasa pemrograman Java.

Dengan menggunakan Doctrine 2 kita akan dimudahkan karena kita tidak perlu lagi membuat syntax sql. Kita dapat fokus pada objek dan relasi antar objek untuk menerapkan desain yang kita buat. Ada banyak tutorial untuk menggunakan doctrine di internet. Tetapi ada baiknya kita melihat tutorial resmi yang ada di situsnya dulu disini.

Sekian dari saya, semoga bermanfaat…

[Magelang, 15 Mei 2015]

//sumber :

http://www.javan.co.id/apa-itu-orm-object-relational-mapping/

http://awansembilan.blogspot.com/2010/05/doctrine-orm-untuk-php.html

http://awansembilan.blogspot.com/2010/05/pengenalan-orm.html

http://en.wikipedia.org/wiki/Doctrine_%28PHP%29

https://mikrolima.wordpress.com/2010/02/22/orm-object-relational-mapping

http://doctrine-orm.readthedocs.org/en/latest/tutorials/getting-started.html

%d blogger menyukai ini: