Pengertian Propel/Apa itu Propel

Propel adalah Object-Relational Mapping (ORM) opensource untuk database SQL di PHP 5.5 ke atas yang membuat akses ke database menggunakan bentuk objects, yang dikemas secara sederhana dengan menggunakan API, baik untuk menyimpan atau mengambil data.

Salah satu hal lain yang dimahfumi dari ORM adalah kemampuan query-builder yang unik, pembuatan dan migrasi schema database, kemampuan reverse engineering tabel/database yang ada dan lain-lain.

Propel ORM

Propel ORM

Kenapa Propel?

Propel menarik dibanding dengan ORM lain, khususnya bagi web application developer menggunakan PHP, diantaranya membuat kita fokus pada pekerjaan lain berupa class dan object di PHP tanpa harus pusing memikirkan sintaks SQL.

Ada beberapa hal kenapa Propel lebih menarik:

  • Propel itu sangat cepat,
  • Punya salah satu Query-builder terbaik,
  • IDE Friendly,
  • Method dari semua kolom dan relasi bisa digenerate
  • Migrasi schema database
  • Reverse engineering schema tabel/database
  • Highly customizable
  • Dokumentasi lengkap

Gambaran Umum

Sebagai gambaran, ini adalah skema XML dari database sistem yang akan kita baca dan kelola dengan Propel.

<?xml version="1.0" encoding="UTF-8"?>
<database name="bookstore" defaultIdMethod="native">

<table name="book" phpName="Book">
    <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
    <column name="title" type="varchar" size="255" required="true" />
    <column name="isbn" type="varchar" size="24" required="true" phpName="ISBN"/>
    <column name="author_id" type="integer" required="true"/>
    <foreign-key foreignTable="author">
      <reference local="author_id" foreign="id"/>
    </foreign-key>
  </table>


<table name="author" phpName="Author">
    <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
    <column name="first_name" type="varchar" size="128" required="true"/>
    <column name="last_name" type="varchar" size="128" required="true"/>
  </table>

</database>

Dan simak contoh penggunaanya di video GIF berikut:

Keren kan?

Referensi: