Tutorial Lumen PHP Framework | Routing, Middleware, dan Controller

 

Tutorial Lumen PHP Framework | Routing, Middleware, dan Controller

 

Software pendukung operasi : Composer

 

Langkah pengerjaan :

1.       Buka CMD

·         Ketik composer create-project --prefer-dist laravel/lumen [NAMA_PROJECT]

Contoh: composer create-project --prefer-dist laravel/lumen belajarLumen

·         Pindah direktori ke folder aplikasi yang baru dibuat : cd belajarLumen

·         Jalan server: php -S localhost:8000 -t public

 

·         Lakukan percobaan di browser : http://localhost:8000/


2.       Lumen Routing

Routing digunakan untuk menyediakan alamat path yang bisa di akses dan memberikan response atau menjalankan fungsi tertentu. Fungsi ini biasanya diarahkan ke Controllers.

Untuk melakukan settingan routing silahkan ikuti langkah-langkah dibawah ini:

·         Buka file belajarLumen/routes/web.php

·         Tambahkan code dibawah ini, line 19-21

 

$router->get('/hello-lumen', function() {

                return "<h1>Lumen</h1><p>Hi good developer, thank for using Lumen</p>";

});

 

·         Tampilan ketika diakses melalui alamat  http://localhost:8000/hello-lumen


·         Untuk menambahkan parameter yang dinamis, silahkan tambahkan code dibawah ini

 

$router->get('/hello-lumen/{name}', function ($name) {

                return "<h1>Lumen</h1><p>Hi <b>" . $name ."</b>, thank for using Lumen</p>";

});

 

·         Tampilan ketika diakses melalui alamat http://localhost:8000/hello-lumen/TEDC

 

3.       Lumen Middleware

Middleware adalah mekanisme atau metode untuk melakukan pembatasan akses dalam menerima request dari user. Contoh, ketika user sudah login, user bisa mengakses fitur daftar nilai, ketika belum login user tidak bisa mengakses fitur daftar nilai. Secara flow nya seperti ini:

 

User -> akses halaman /scores -> jalankan middleware -> ditangani oleh Routing

 

·         Buat file app/Http/Middleware/LoginMiddleware.php, dengan code seperti dibawah ini:

 

<?php

namespace App\Http\Middleware;

 

use Closure;

 

class LoginMiddleware

{

                public    function handle($request, closure $next)

                {

                                if (!($request->input('username') == 'tedc' && $request->input('password') == 'rahasia'

                                )) {

                                                return "Anda tidak di ijinkan untuk mengakses data nilai, karena username dan password anda salah.";

                                }

                                return $next($request);

                }

}

 

·         Edit file bootstrap/app.php, edit menjadi seperti ini (kebetulan saya ada di line 79-82, line nya bisa berbeda):

 

·         Edit file routes/web.php, tambahkan code dibawah ini:

 

$router->get('/scores', ['middleware' => 'login', function (){

                return "<h1>Selamat</h1><p>Nilai anda 100</p>";

}]);

 

·         Ketika anda mengakses halaman

http://localhost:8000/scores, makan tampilan seperti ini:


·         Ketika anda mengakses halaman http://localhost:8000/scores?username=tedc&password=rahasia, tampilanya seperti ini:


4.       Lumen Controller

Controller adalah Struktur (Class dan function) di Lumen yang digunakan untuk mengatur alur proses (business logic), baik untuk mengembalikan response, menghubungkan ke model dan views maupun hanya menggunakan model saja.

 

1. Model adalah Struktur (Class dan function) di Lumen yang digunakan untuk melakukan koneksi dan query ke Database.

2. View adalah template datau halaman untuk ditampilkan di browser.

 

User -> Path /scores -> Middleware (optional) -> Routing -> Controller

 

·         Buat controller baru di app/Http/Controllers/UsersController.php, dengan code dibawah ini:

 

<?php

 

namespace App\Http\Controllers;

 

class UsersController extends Controller

{

                /**

                * Create a new controller instance.

                *

                *@return void

                */

                public function __construct()

                {

                                return "Lumen Controller";

                }

               

                public function index()

                {

                                return "Anda mendapatkan response ini dari <b>Controller</b>";

                }

}

 

·         Edit file routes/web.php, tambahkan code dibawah ini

 

$router->get('users', 'UsersController@index');

 

·         SIlahkan buka http://localhost:8000/users , tampilanya seperti dibawah ini :


TERIMA KASIH


 

Komentar

Postingan populer dari blog ini

KONSEP, KELEBIHAN, KEKURANGAN CONTAINERIZATION BERSERTA TEKNOLOGI DAN STUDI KASUS CONTAINERIZATION

Mengapa Harus Belajar Cloud Computing ?

Setting Up VM and Domain