Menampilkan data dengan PHP ActiveRecord pada SLIM Framework

https://www.servage.net/blog/wp-content/uploads/2013/02/active-record.pnghttps://www.servage.net/blog/wp-content/uploads/2013/02/active-record.png

PHP ActiveRecord adalah library ORM yang bersifat opensource yang memiliki pola ActiveRecord. Library ini diinspirasi dari Activerecord yang terdapat pada framework Ruby On Rails.  Dengan menggunakan library activerecord kita tidak ladi dipusingkan dengan syntax SQL dan koneksi database. Penggunaannya pun sangat mudah.

SLIM Framework dapat digabungkan dengan library PHP ActiveRecord, dalam artikel ini akan dipraktekan proses insert, edit dan delete menggunakan library ini.

Struktur Table

Struktur Table yang saya gunakan sangat sederhana,bentuk SQL nya adalah sebagai berikut

CREATE TABLE IF NOT EXISTS `tasks` (
 `id` int(3) NOT NULL AUTO_INCREMENT,
 `name` varchar(25) DEFAULT NULL,
 `done` int(1) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Instalasi Inisialiasi PHP ActiveRecord dengan SLIM

Instalasi PHP ActiveRecord dapat menggunakan composer. Tambahkan script berikut pada composer.json

"php-activerecord/php-activerecord": "dev-master"

sehingga tampilan composer.json kita secara lengkap adalah

{
 "require":{
 "slim/slim":"2.*",
 "slim/extras": "2.*",
 "twig/twig": "1.*",
 "php-activerecord/php-activerecord": "dev-master"
 }
}

Kemudian jalankan perintah php | composer.phar update

Untuk menggunakan PHP ActiveRecord, dan setingan koneksi data, tambahkan script berikut pada index.php

/*initialize activerecord*/
ActiveRecord\Config::initialize(function($cfg) {
 $cfg->set_model_directory('models');
 $cfg->set_connections(array(
 'development' => 'mysql://username:[email protected]/database' //sesuaikan username, password dan database Anda
 ));
});

Isi table dengan beberapa sample data. Buat direktori models pada project direktori kita, direktori ini digunakan untuk menyimpan class models. Kemudian buat class models pada direktori tersebut.
Buat dengan nama Task.php, isi filenya adalah

<?php
class Task extends ActiveRecord\Model {
}

Nah sekarang aplikasi siap digunakan.

Menampilkan Data

Saya asumsikan tampilan pertama aplikasi kita adalah table yang berisikan data dari table task pada database. Sehingga buat fungsi pada index.php sebagai berikut

## Read
$app->get('/', function () use ($app) {
 $data['tasks'] = Task::find('all');
 $app->view()->setData(array());
 $app->render('task/read.tpl', $data);

})->name('tasks');

Perhatikan fungsi tersebut, kita membuat array $data yang isinya adalah memanggil isi table. Kita tidak menggunakan SQL lagi, cukup menggunakan Task::find(‘all’).¬†Kemudian array tersebut dikirimkan ke dalam view dengan nama read.tpl yang terdapat pada direktori task.

Buat direktori task dalam direktori templates, kemudian dalam direktori tersebut buat file dengan nama read.tpl yang isinya adalah

{% extends "layout.tpl" %}
{% block content %}
<div class="row">
 <h2># Tasks</h2>
 <table class="table table-striped table-bordered table-condensed" id="response">
 <thead>
 <tr><th>id</th><th>name</th><th>Done</th></tr>
 </thead>
 <tbody >
 {% for task in tasks %}
 <tr id="{{task.id}}">
 <td>{{task.id}}</td>
 <td>{{ task.name }}</td>
 <td>{% if task.done == 0 %} Not Yet {% else %} Done {% endif%}</td>
 </tr>
 {% endfor %}
 </tbody>
 </table>
</div>
{% endblock %}

Kemudian coba buka aplikasi yang sudah kita buat, misalnya di alamat http://localhost/slim/ , jika tidak ada kesalahan maka akan tampil data yang diambil dari table task.

Dari artikel ini bisa kita pelajari proses mendapatkan data dari tabel menggunakan library PHPActiveRecord dan digabungkan dengan SLIM Framework. Semoga bermanfaat.