Slim Framework, Alternatif Microservices

Kali ini kita akan belajar salah satu framework PHP yang populer, yaitu Slim Framework. Meskipun kepopulerannya tidak sebanding dengan Laravel, tapi ada hal penting yang dimiliki Slim tapi tidak dimiliki oleh Laravel. Hal penting itu adalah ukurannya yang sangat kecil. Dengan ukuran yang kecil tersebut, menurutku Slim sangatlah cocok jika kita ingin mengembangkan aplikasi berbasis microservices.

Laravel vs Slim

Selama beberapa tahun ini aku menggunakan Laravel, dan Laravel merupakan framework PHP yang cukup komplit untuk kebutuhanku mengembangkan aplikasi. Banyak sekali fitur Laravel yang memudahkan kita dalam mengembangkan aplikasi. Tapi ketika kita ingin mengembangkan aplikasi yang cukup kecil, Laravel justru menjadi terlalu besar. Banyak fitur-fitur memudahkan tersebut yang sebenarnya tidak kita perlukan saat kita ingin mengembangkan aplikasi yang kecil. Ukuran Laravel dasar tanpa tambahan package mencapai 50Mb. Setelah development package-nya dihapus ukurannya masih berkisar 45Mb.

Oleh karena terlalu besarnya Laravel, kita bisa mencoba salah satu alternatif yang menurutku sangat cocok yaitu Slim Framework. Berbeda dengan Laravel yang besar, Slim justru sangatlah kecil. Ukuran Slim dasar tidak sampai 1 Mb, tepatnya hanya 605,8kB saja.

ukuran dasar slim framework

Tapi, karena Slim Framework itu kecil teman-teman jangan mengharapkan fitur seperti Laravel ya. Mungkin bisa diibaratkan jika Larvel adalah Mobil lengkap dengan fitur canggih, Slim adalah mobil yang terdiri dari Bodi, Kerangka dan Ban, yang penting bisa jalan. Di Slim, kita tidak akan menemukan ORM, Auth System, dan Templating (misal Blade). Jika ingin, kita harus memasangnya menggunakan composer.

Memasang Slim Framework

Cara memasang Slim Framework ini sangatlah mudah. Pastikan sudah memiliki composer. Buat direktori dulu dengan nama belajar-slim. Ingat, kita tidak akan dibuatkan direktori seperti Laravel ya. Jika direktori sudah dibuat masuklah ke direktori tersebut lalu jalankan perintah

composer require slim/slim:"4.*"

Perlu diperhatikan, Slim tidak memiliki package bawaan yang mengimplementasikan PSR-7 (PHP Standard Recommendation 7). Jadi kita perlu memasangnya secara manual. Sebenarnya ada beberapa package yang dapat digunakan untuk implementasi PSR-7, tapi rekomendasinya adalah Nyholm. Untuk memasangnya gunakan perintah berikut:

composer require nyholm/psr7 nyholm/psr7-server

Microservices biasanya komunikasinya menggunakan API, jadi kita perlu memasang package untuk API. Rekomendasinya adalah menggunakan guzzle. Jika di Laravel sudah terinstall otomatis, di Slim kita harus memasangnya secara manual dengan perintah:

composer require guzzlehttp/guzzle

Setelah kita memasang 2 package tersebut ukurannya sekarang menjadi 1,6 MB. Ukuran itu masih sangat jauh lebih kecil dari Laravel.

ukuran slim framework setelah dipasang package

Hello World

Sekarang kita akan coba hello world di Slim Framework. Tapi, ingat ya, direktori belajar-slim hanya berisi seperti ini.

isi slim framework awal

Jadi kita buat dulu direktori public dan membuat file index.php di dalam public. Isilah file index.php dengan source code berikut:

<?php

use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Factory\AppFactory;

require __DIR__ . '/../vendor/autoload.php';

$app = AppFactory::create();

$app->get('/', function (Request $request, Response $response, $args) {
    $response->getBody()->write("Hello world!");
    return $response;
});

$app->run();

Nah, sekarang kita sudah bisa menampilkan index.php yang menampilkan Hello World. Tapi bagaimana caranya? kita kan tidak bisa melakukan php artisan serve.? 😱 tenang, tidak usah khawatir, kita masih bisa memanfaatkan perintah berikut untuk menjalankan aplikasi Slim yang kita buat.

php -S localhost:8000 -t public

Setelah itu kita bisa membuka browser dan mengetikkan http://localhost:8000 pada address bar. Browser akan menampilkan seperti ini.

hello world di slim framework

Penutup Slim Framework

Nah, demikianlah cara menggunakan Slim Framework, sangat mudah bukan. Semoga tulisan ini bermanfaat untuk kita semua. Selamat belajar.

Ardhan Wahyu Rahmanu
Ardhan Wahyu Rahmanu

Aku adalah seorang pemikir sistematis yang idealis, mandiri, dan reflektif — terus-menerus membangun hidup yang bermakna melalui belajar, bekerja, menulis, dan menjaga arah hidup yang sadar.

Articles: 98

Tinggalkan Balasan

error: Content is protected !!