Menggunakan Slim PHP dengan Idiorm

Seperti yang sudah kita ketahui, SLIM PHP merupakan sebuah micro framework yang ringkas dan kecil serta mudah digunakan. Akan tetapi, meskipun ringkas, kita bisa menerapkan untuk berbagai aplikasi, dan lebih fleksibel.
Pada artikel terdahulu, saya pernah membahas tentang menghubungkan antara SLIM PHP dengan database menggunakan PHP activerecord, kali ini saya akan coba menerapkan sebuah package ORM yang disebut idiorm untuk menangani transaksi database dengan digabungkan dengan Slim PHP.
Idiorm merupaka library ORM yang ringkas sehingga bisa disebut micro-ORM. Karena bentuknya yang ringkas, proses pengaplikasiannya pun sederhana dan tidak membutuhkan waktu yang lama.

Instalasi

Buat folder dengan nama “belajarslim” pada webserver Anda, buat file composer.json yang isinya adalah sebagai berikut

{
"require": {
"slim/slim": "~2.0",
"j4mie/idiorm":"v1.5.1"
}
}

kemudian jalankan perintah composer update pada terminal, tunggu hingga proses selesai

Konfigurasi Database

Untuk artikel ini saya membuat database dengan nama “belajarslim” dan sebuah table dengan struktur sebagai berikut :

CREATE TABLE IF NOT EXISTS `people` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL,
`address` text NOT NULL,
`phone` varchar(24) NOT NULL,
`email` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Mengisi Table

Isi table tersebut d engan beberapa record (optional)

INSERT INTO `people` (`id`, `name`, `address`, `phone`, `email`) VALUES
(1, 'Dwi Wijonarko', 'Malang', '085649885555', '[email protected]'),
(2, 'Slim Wijonarko', 'Malang', '085649885555', '[email protected]'),
(3, 'Ahmad Wijonarko', 'Surabaya', '185456878', '[email protected]'),
(4, 'Budi Wijonarko', 'Surabaya', '34684564564', '[email protected]');

Konfigurasi Slim

Buat sebuah file pada direktori belajarslim dengan nama index.php, kemudian tuliskan kode berikut

<?php
require 'vendor/autoload.php';

$app = new \Slim\Slim();

$app->run();

Konfigurasi Idiorm

Tulis kode berikut dibawah baris inisialisasi variable $app, sesuaikan dengan username dan password Mysql Anda serta nama database yang digunakan

…kode sebelumnya…

ORM::configure(array(
'connection_string' => 'mysql:host=localhost;dbname=belajarslim',
'username' => 'root',
'password' => 'root'
));

…kode selanjutnya..

Fungsi menampilkan data dari table, kita tulis setelah inisialisasi Idiorm tersebut

$app->get('/', function () {
   $people = ORM::for_table('people')->find_many();
   var_dump($people);
});

Nah jika kita akses pada alamat http://localhost/belajarslim/ maka sudah akan muncul data dari table, tapi dalam bentuk mentah. Agar lebih rapi datanya kita kirim ke views yang terpisah sehingga fungsinya menjadi seperti berikut

$app->get('/', function () use ($app) {
   $people = ORM::for_table('people')->find_many();
   $app->render('people/index.tpl',array('people'=>$people));
});

Kemudian buat direktori templates, dan dalam direktori tersebut buat lagi direktori people, dan buat file index.tpl di dalamnya. Sehingga strukturnya seperti berikut

belajarslim/
----templates/
-------people/
-------index.tpl

dan pada file index.tpl tersebut isinya adalah sebagai berikut

<table>
	<tr><th>Id</th><th>Name</th><th>Address</th><th>Phone</th><th>Email</th></tr>

<?php foreach ($people as $person): ?>
	<tr>
		<td><?php echo $person->id ?></td>
		<td><?php echo $person->name ?></td>
		<td><?php echo $person->address ?></td>
		<td><?php echo $person->phone ?></td>
		<td><?php echo $person->email ?></td>
	</tr>

<?php endforeach ?>
</table>

Sekarang buka browser dan arahkan ke alamat http://localhost/belajarslim maka akan muncul tabel dari data pada database. Mudah Bukan???

Script lengkap untuk index.php adalah sebagai berikut

<?php
require 'vendor/autoload.php';

$app = new \Slim\Slim();

ORM::configure(array(
    'connection_string' => 'mysql:host=localhost;dbname=belajarslim',
    'username' => 'root',
    'password' => 'root'
));

$app->get('/', function () use ($app) {
   $people = ORM::for_table('people')->find_many();
   $app->render('people/index.tpl',array('people'=>$people));
});

$app->run();

Untuk insert dan edit serta delete akan dibahas pada artikel selanjutnya (jika ada) 😀