author Ahmad Muhardian

Pengenalan Slim Framework untuk Pemula


Slim Framework adalah mikro framework PHP untuk membuat aplikasi web. Biasanya digunakan untuk membuat REST API atau webserivice.

Pada kesempatan ini, kita akan belajar dasar-dasar penggunaan Slim Framework. Mulai dari tahap instalasi, sampai membuat route.

Catatan: Tutorial ini untuk Slim Versi 3

Baiklah, mari kita mulai…

Konsep Slim Framwork

Slim Framework sebenarnya sangat sederhana. Dia hanya bertugas menerima HTTP Request, lalu memanggil fungsi yang diinginkan. Setelah itu mengembalikan HTTP Response.

Fungsi-fungsi yang akan dipanggil bisa ditulis langsung di dalam definisi route atau di dalam class khusus.

Apa bedanya mikro framework dengan framework yang lain?

Mikro framework memiliki fitur yang lebih sedikit dibandingkan dengan framwork yang lain seperti CodeIgniter, Laravel, Yii, dan sebagainya.

Bisa dibilang, fiturnya kurang lengkap.

Namun bukan berarti tidak berguna.

Justru yang sia-sia itu, punya banyak fitur tapi tidak digunakan.

Pada Slim Framework kita bisa tentukan sendiri library yang akan digunakan. Bahkan juga bisa menggunakan komponen dari framewok lain.

Contohnya: Menggunakan Elloquent milik Laravel untuk ORM.

Menyiapkan Project Slim Framework

Untuk membuat project Slim Framework, kita membutuhkan composer. Composer bertugas untuk manajemen library, menjalankan server, melakukan testing, dll.

Jadi, pastikan composer sudah terinstal di komputermu.

Silahkan Baca: Cara Install dan Menggunakan Composer.

Setelah itu, ketik perintah berikut untuk membut project slim:

composer create-project slim/slim-skeleton:3.1.8 aplikasi-slim -vvv

Keterangan:

  • aplikasi-slim adalah nama direktori project yang akan dibuat.
  • argumen -vvv berfungsi untuk menampilkan detail proses instalasi.

Perintah di atas akan membuat direktori baru bernama aplikasi-slim. Isinya berupa file template dari slim-skeleton.

Instalasi Selesai

Tunggu dulu?

Apa bedanya slim dengan slim-skeleton?

Jika kita ingin menggunakan Slim dari nol, kita bisa install dengan perintah ini:

composer require slim/slim

Tapi…

Kita akan membuat manual file-file yang dibutuhkan seperti:

  • index.php
  • router.php
  • middleware.php
  • dll.

Nah, si slim-skeleton ini adalah template project slim yang kita bisa gunakan tanpa harus membuat file dari nol.

Kalau diartikan ke dalam bahasa indonesia skeleton artinya tualang punggung.

Jadi project yang kita buat merupakan project “tulang punggung” yang naanti bisa kita kembangkan ke skala yang lebih besar.

Menjalankan Server PHP

Silahkan buka direktori aplikasi-slim dengan teks editor. Saya merekomendasikan menggunakan VS Code. Karena di sana terdapat build-in terminal yang bisa kita manfaatkan.

Project Slim di teks editor VSCode

Setelah itu, buka terminal dengan menekan tombol Ctrl+`. Lalu ketik perintah berikut untuk menjalankan server.

composer start

Maka server akan berjalan di localhost pada port 8080.

Menjalankan server PHP

Setelah itu, coba buka http://localhost:8080, maka akan tampil seperti ini:

Membuka Aplikasi Slim

Selamat! 🎉

Mengenal Struktur Direktori Slim Framework

Sekarang coba perhtaikan file-file yang ada di project aplikasi-slim.

Struktur direktori project slim

Ada beberapa file yang perlu kita ketahui:

  • composer.json adalah file yang berisi keterangan tentang project, seperti library yang digunakan, deskipsi, lisensi, skrip, dll.
  • composer.lock berisi keterangan library dan versi yang digunakan. File ini yang menjadi acuan composer untuk menginstal library.
  • CONTRIBUTING.md berisi informasi bila kita ingin berkontribusi di proyek slim-skeleton. File ini bisa kita hapus, karena tidak dibutuhkan dalam aplikasi.
  • README.md hampir sama serpeti CONTRIBUTING.md. File ini berisi informasi cara penggunaan slim-skeleton.
  • phpunit.xml berisi konfigurasi untuk PHPUnit. PHPUnit adalah framework untuk testing.
  • docker-compose.yml berisi konfigurasi Docker. Apabila kita ingin menjalankan server PHP melalui Docker, maka kita membutuhkan file ini.
  • public/index.php adalah file utama aplikasi. File ini yang akan diakses oleh user.
  • public/.htaccess adalah file konfigurasi server, biasanya digunakan untuk membuat pretty URL.
  • direktori logs berisi logs aplikasi.
  • direktori vendor berisi libray-library yang dibutuhkan oleh aplikasi.
  • direktori tests berisi kode untuk melakukan testing.
  • direktori src berisi source code aplikasi. Di sinilah kita akan menulis kode.
  • src/depedencies.php berisi definisi depedencies yang dibutuhkan oleh aplikasi
  • src/middleware.php berisi definisi middleware.
  • src/routes.php berisi definisi route aplikasi.
  • src/settings.php berisi konfigurasi aplikasi.
  • direktori templates adalah direktori tempat menaru template.

Slim Instance

Setiap kita ingin membuat aplikasi dengan Slim Framework, maka kita harus membuat instance atau objek dari class \Slim\App.

Contoh:

<?php

require 'vendor/autoload.php';

$app = new \Slim\Slim();

Namun, pada slim-skeleton kita tidak perlu melakukan ini. Karena sudah dibuatkan di dalam index.php.

Setelah membuat objek $app, selanjutnya kita bisa tambahkan route seperti ini:

<?php

require 'vendor/autoload.php';

$app = new \Slim\Slim();

// membuat route
$app->get("/hello/:nama", function($nama){
    echo "Hello, $nama apa kabar?";
});

$app->run();

Pada slim-skeleton route-nya sudah dibuat di file terpisah, yaitu di file src/routes.php.

Mengenal Route di Slim

Route adalah URL yang akan diakses oleh user. Kita bisa membuat route di file src/routes.php.

Contoh:

Mari kita coba buat route untuk halaman about. Buka file src/routes.php, lalu tambahkan kode berikut.

$app->get('/about/', function (Request $request, Response $response, array $args) {
    // kirim pesan ke log
    $this->logger->info("ada orang yang mengakses '/about/'");

    // tampilkan pesan
    echo "ini adalah halaman about!";
    
});

Router di atas hanya berfungsi untuk menulis pesan ke logs dan menampilkan pesan ke user dengan perintah echo.

Membuat route di slim

Coba buka http://localhost:8080/about/, Maka hasilnya akan seperti ini:

Halaman About

Lalu di file logs/app.log akan ada seperti ini:

[2018-01-26 02:45:01] slim-app.INFO: ada orang yang mengakses '/about/' [] {"uid":"16805d6"}
[2018-01-26 02:45:01] slim-app.INFO: Slim-Skeleton '/' route [] {"uid":"b512533"}

Memahami Struktur Kode Route

secara sederhana, route bisa kita buat seperti ini:

$app->get('/about/', bukaHalamanAbout(Request $req, Response $res, array $args));

Artinya, saat aplikasi diakses dengan method GET dengan route /about/, maka jalankan fungsi bukaHalamanAbout().

Parameter pada fungsi bukaHalamanAbout() bersifat opsional.

  • Parameter $req adalah objek dari class Request. Kita bisa mengambil banyak informasi dari objek ini, seperti data yang diinputkan melalui form.
  • Parameter $res adalah objke dari class Response. Dengan objek ini, kita bisa memodifikasi respon yang akan diberikan kepada user. Misalnya, respon dalam bentuk JSON.
  • Parameter $args adalah sebuah array yang berisi argumen yang diberikan ke route.

Apa Selanjutnya?

Artikel ini hanya berisi pengenalan saja. Sebenarnya masih banyak yang harus kita bahas seperti:

  • Route Group
  • Middleware
  • Depedencies
  • Template
  • dll.

Biar tidak terlalu panjan, saya akhiri saja artikel ini sampai di sini.

Referensi: Dokumentasi Slim

Baca Juga ini

[Solved] Error Yii: `mcrypt required` di Linux

[Solved] Error Yii: `mcrypt required` di Linux

Saat mengikuti praktikum bebas, Saya mendapatkan error swaktu inisialisasi atau mempersiapkan Framework Yii di server lokal linux. Perintah php init berfungsi untuk mengekseskusi berkas php yang bernama init. Berkas ini tersimpan di direktori framework Yii. Di dalam berkas tersebut, terdapat perintah untuk memangil sebuah ekstensi bernama mcrypt. Ekstensi ini belum tepasang di Linux (Xubuntu) yang saya gunakan. Dengan demikian, solusi untuk permasalahan ini adalah memasang mcrypt.

Pertemuan kedua praktikum bebas, memahami MVC Yii

Pertemuan kedua praktikum bebas, memahami MVC Yii

Melanjutkan praktikum sebelumnya, pada pertemuan kedua ini kita akan belajar MVC (Model, View, Controller) Yii. Memahami MVC dengan praktik langsung. Modifikasi controller Jurusan Mari kita buka berkas JurusanController.php, yang berada di direktori backend/controllers/. Isi dari berkas tersebut berupa kelas bernama JurusanController, kelas ini turunan dari kelas Controller. <?php namespace backend\controllers; use Yii; use backend\models\Jurusan; use yii\data\ActiveDataProvider; use yii\web\Controller; use yii\web\NotFoundHttpException; use yii\filters\VerbFilter; /** * JurusanController implements the CRUD actions for Jurusan model.

Pertemuan pertama praktikum bebas, belajar framework Yii

Pertemuan pertama praktikum bebas, belajar framework Yii

Pagi tadi, pertemuan pertama praktikum bebas dimulai. Praktikum ini diadakan oleh STMIK Bumigora Mataram secara cuma-cuma. Praktikum ini bertujuan untuk mengembangkan keterampilan mahasiswa dalam memrogram. Pada praktikum ini, kita mempelajari framework yii. Persiapan senjata praktikumSebelum memulai praktikum, pastikan sudah memasang apache, php, dan mysql versi terbaru yang mendukung framework Yii. Di praktikum ini saya menggunakan Linux (Xubuntu). Sedikit informasi server web lokal yang sedang berjalan di laptop saya.

Belajar Django #1: Pengenalan Dasar Django untuk Pemula

Belajar Django #1: Pengenalan Dasar Django untuk Pemula

Pengenalan Django, Instalasi Django, Membuat Project Django, dan Memahami struktur project Django

Belajar HTML #09: Cara Membuat List di HTML

Belajar HTML #09: Cara Membuat List di HTML

Jika kamu diminta menuliskan daftar barang yang harus dibeli pada dengan HTML.. ..apa yang akan kamu lakukan? Mungkin kamu bisa membuatnya seperti ini: <h1>Daftar Barang untuk diblie:</h1> <p>- Flashdisk 64GB</p> <p>- Kabel Data USB 3.0</p> <p>- Kertas A4</p> Hasilnya memang akan terlihat seperti sebuah list. Tapi, ini bukanlah cara membuat list yang benar di HTML. Elemen List di HTMLHTML sudah menyediakan elemen untuk membuat list.

Belajar HTML #10: Cara Membuat Tabel di HTML

Belajar HTML #10: Cara Membuat Tabel di HTML

Salah satu cara atau format menampilkan informasi dalam web adalah dengan tabel. Tabel terdiri dari 4 unsur utama: Baris Kolom Sel Garis Lalu, bagaimana cara membuat tabel di HTML? Kita bisa membuatnya dengan beberapa tag yang sudah disediakan di HTML. googletag.cmd.push(function () { googletag.display('div-gpt-ad-multibanner1'); }); Tag untuk Membuat Tabel di HTMLAda beberapa tag yang harus diingat untuk membuat tabel di HTML: