Sponsor Link

Tuesday, May 19, 2015

Berkenalan dengan Slim, PHP Micro Framework


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.