Jelly ORM

Dulu gw sempet post tentang Kohana ORM, tapi setelah gw migrasi ke KO3, gw ga pake ORM bawaan lagi, tapi gw ganti dengan Jelly.

Sempet nanya2 soal Jelly di milis kohana-id (sebenernya lebih ke ngebandingin Jelly_Auth sama Sprig_Auth sih :), tapi ga dapat jawaban yg memuaskan.

Back ke awal, akhirnya gw putusin untuk pake Jelly sebagai ORM module di blog gw ini, dan ternyata gak susah juga, kalo ga di bilang gampang.

Misalkan kita punya table posts, dengan model: Model_Post, di ORM, kita bisa langsung bikin filenya seperti ini:

<?php
// file: classes/model/post.php
class Model_Post extends ORM {}
?>

table posts di `postingan gw sebelumnya <http://arie.malam.or.id/blog/2009/06/11/418/kohana-orm-2.php>`__

liat penamaan file dan nama class, selalu berbentuk singular dari nama table. tapi bisa juga diset lagi dengan menambahkan property $table_name.

Tapi di Jelly, kita mesti inisialisasikan dulu, kita kasih tau jelly field apa aja yg ada di table itu, kalo ga, kita bakal dapat error.

Table posts mempunya 3 buah fields, id (integer), title (string), dan status_id (string). Maka Model yang menggunakan Jelly berbentuk:

class Model_Post extends Jelly_Model
{
  public static function initialize(Jelly_Meta $meta)
  {
    $meta->fields(array(
      'id' => new Field_Primary,
      'title' => new Field_String,
      'status_id' => new Field_Integer,
    ));
  }
}

Nah beres deh, selebihnya, setiap kita mau nambahin item, kita panggil dengan:

$post = Jelly::factory('post');
$post->title = 'new title';
$post->status_id = 2;
$post->save();

Sampe disini, yangterlihat beda dengan ORM default adalah isi class Model_Post, tapi ntar di postingan selanjutnya gw kasih liat kelebihan Jelly ;)