Lagi-lagi mata belum bisa terpejam. Masih setia di depan laptop padahal hari ini saya bisa dikatakan libur dari kerjaan. Nah, berhubung libur saya mau refreshing dulu nih. Kalau ada waktu kosong seperti ini saya coba untuk belajar sesuatu yang aneh dan memang sudah saya siapkan dari dulu. Karena ada kerjaan, jadi masuk list to do terlebih dahulu. Tadi malam, iseng-iseng saya nyobain Slim Framework, salah satu micro php framework. Kesan pertama pas nyobain micro php framework yang satu ini, kereen juga :D. Routing-nya nyaman menurut saya dan cukup powerfull untuk digunakan sebagai RESTful API. Biar gak lupa hasil belajar tadi malam :D, kali ini saya coba untuk menulisnya disini. Cekibrooottt,,,
1. Tutorial
instalasi di website resminya sudah sangat jelas. Kita bisa menggunakan
composer maupun instal secara manual. Berhubung saya lagi kesemsem
sama yang namanya composer, jadi saya pakai tools yang satu ini saja
2. Buka
terminal/console, kita akan mengunduh composer terlebih dahulu. Masuk ke
direktori htdocs, buat folder dengan nama “slim-fw” dan jalankan perintah
berikut :
1
|
curl -s https://getcomposer.org/installer
| php -d detect_unicode=Off
|
3. Buat
sebuah file dengan format .json yang berisi nama package dari Slim Framework
yang akan kita gunakan. Beri nama composer.json dan letakkan di dalam folder
“slim-fw” yang telah kita buat.
1
|
{
|
|
2
|
"require":
{
|
3
|
"slim/slim":
"2.*"
|
|
4
|
}
|
5
|
}
|
4. Jalankan
composer untuk mengunduh package yang telah kita defisinikan di file
composer.json
1
|
php composer.phar
install
|
5. Setelah
selesai, maka akan folder baru di dalam folder slim-fw yang telah kita buat
tadi. Berisikan file dari Slim Framework. Kita akan menuliskan kode aplikasi
kita di dalam folder /vendor/slim/slim/index.php.
6. Slim
Framework ini mengimplementasikan HTTP method yang sering kita gunakan
untuk membuat sebuah RESTful API. Seperti method GET, POST, PUT, dan DELETE.
Untuk penjelasan lebih lanjut tentang REST API, monggo kunjungi link
berikut, http://www.restapitutorial.com/
Nah,
sekarang Slim Framework sudah nangkring di localhost kita. Kalau langsung
kita akses dengan alamat http://localhost/slim-fw/vendor/slim/slim/, akan
muncul welcome screen yang menginformasikan Slim Framework berhasil diinstal.
Sekarang kita akan mencoba untuk menampilkan tulisan “Hello World”, tentunya
dengan menggunakan routing GET.
1
| ||
2
|
require
'Slim/Slim.php';
|
3
|
\Slim\Slim::registerAutoloader();
|
|
4
|
5
|
$app = new
\Slim\Slim();
|
|
6
|
$app->get('/hello/:name',
function ($name) {
|
7
|
echo
"Hello, $name";
|
|
8
|
});
|
9
|
$app->run();
|
Hasilnya
bisa diakses melalui
alamat http://localhost/slim-fw/vendor/slim/slim/hello/world. Parameter terakhir
bisa diubah sesuai keperluan dan nanti ditampilkan sebagai variabel. Sekarang
mari kita coba contoh routing lainnya dengan menampilkan data dari database.
1. Disini
saya coba membuat sebuah tabel sederhana yang nanti datanya akan kita tampilkan
melalui routing GET.
1
|
CREATE TABLE
dlmbg_sitemap (
|
|
2
|
id_peta
int(5) NOT NULL AUTO_INCREMENT,
|
3
|
judul
varchar(100) NOT NULL,
|
|
4
|
keterangan
text NOT NULL,
|
5
|
gambar
varchar(100) NOT NULL,
|
|
6
|
koordinat_lat
varchar(150) NOT NULL,
|
7
|
koordinat_lang
varchar(150) NOT NULL,
|
|
8
|
PRIMARY
KEY (id_peta)
|
9
|
)
ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
2. Pada
routing get seperti contoh di atas, ada 2 parameter yang wajib kita isi. Di
parameter yang pertama untuk alamatnya dan yang kedua untuk nama method/action
yang akan dipanggil. Disini saya buat 3 buah method yaitu untuk koneksi,
menampilkan semua data, dan menampilkan salah satu data sesuai parameter di
url.
1
|
||
2
|
require
'Slim/Slim.php';
|
3
|
\Slim\Slim::registerAutoloader();
|
|
4
|
5
|
$app = new
\Slim\Slim();
|
|
6
|
7
|
$app->get('/sitemap/',
'getSitemap');
|
|
8
|
$app->get('/sitemap/:id',
'getSitemapDetail');
|
9
|
|||
10
|
$app->run();
|
||
11
|
||
12
|
function
getSitemap() {
|
13
|
$sql
= "select * FROM dlmbg_sitemap";
|
|
14
|
try
{
|
15
|
$db
= getConnection();
|
|
16
|
$stmt
= $db->query($sql);
|
17
|
$wines
= $stmt->fetchAll(PDO::FETCH_OBJ);
|
|
18
|
$db
= null;
|
19
|
echo
'{"data": ' . json_encode($wines) . '}';
|
|
20
|
}
catch(PDOException $e) {
|
21
|
echo
'{"error":{"text":'. $e->getMessage() .'}}';
|
|
22
|
}
|
23
|
}
|
|
24
|
25
|
function
getSitemapDetail($id) {
|
|
26
|
$sql
= "select * FROM dlmbg_sitemap where id_peta='".$id."'";
|
27
|
try
{
|
|
28
|
$db
= getConnection();
|
29
|
$stmt
= $db->query($sql);
|
|
30
|
$wines
= $stmt->fetchAll(PDO::FETCH_OBJ);
|
31
|
$db
= null;
|
|
32
|
echo
'{"data": ' . json_encode($wines) . '}';
|
33
|
}
catch(PDOException $e) {
|
|
34
|
echo
'{"error":{"text":'. $e->getMessage() .'}}';
|
35
|
}
|
|
36
|
}
|
37
|
||
38
|
function
getConnection() {
|
39
|
$dbhost="127.0.0.1";
|
|
40
|
$dbuser="root";
|
41
|
$dbpass="";
|
|
42
|
$dbname="db_peta";
|
43
|
$dbh
= new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
|
|
44
|
$dbh->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
|
45
|
return
$dbh;
|
|
46
|
}
|
3. Sekarang
kita coba di browser melalui alamat berikut :
http://localhost/slim-fw/vendor/slim/slim/sitemap
http://localhost/slim-fw/vendor/slim/slim/sitemap/1
Cukup mudah
kan ,,?? Slim Framework ini cocok untuk membuat sebuah RESTful API, tinggal
kita tambahkan untuk register key-nya seperti pada web-web pada umumnya yang
menyediakan API untuk developer pihak ketiga.