Cara Menggunakan Lumen

Beberapa rekan seringkali kebingungan dengan Lumen. Karena memang ada sedikit perbedaan. Tapi sedikit, tidak terlalu banyak. Karena Lumen juga menggunakan component yang digunakan Laravel.

Disini saya akan mencoba membantu teman-teman yang kesulitan saat menggunakan Lumen.

Install

Untuk install Lumen, gunakan composer atau lumen installer. Detailnya bisa dipelajari di dokumentasi http://lumen.laravel.com/docs/installation. Misalnya dengan

lumen new mylumen

Configuration

Tidak banyak konfigurasi yang bisa dilakukan di Lumen. Tapi bila anda ingin melakukan konfigurasi, anda bisa menggunakan file .env. Tapi sebelumnya edit dulu file bootstrap/app.php. Lalu hilangkan tanda comment pada Dotenv::load(__DIR__.'/../');. Kini anda bisa edit beberapa konfigurasi di file .env.

Misalnya untuk kebutuhan local development, anda mau mengganti default driver. Edit file .env, lalu ganti

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

Untuk konfigurasi lebih lanjut, anda bisa copy directory vendor/laravel/lumen-framework/config/ ke root project directory anda. Setelah itu anda bisa menggunakan konfigurasi dari config directory.

cp -r vendor/laravel/lumen-framework/config/ .

Facade

Mungkin ada beberapa dari kalian kebingungan karena Facade tidak bisa digunakan di Lumen. Misalnya saat menggunakan Auth::attempt(). Solusinya sangat mudah. Edit file bootstrap/app.php, lalu hilangkan tanda comment dari $app->withFacades();

Eloquent

Begitu juga dengan Eloquent, bila ingin menggunakannya edit file bootstrap/app.php, cari $app->withEloquent();, lalu hilangkan tanda comment.

Middleware

Global Middleware

Untuk menggunakan global middleware, anda bisa mengaktifkannya melalui file bootstrap/app.php. Edit line seperti berikut

$app->middleware([
    'Illuminate\Cookie\Middleware\EncryptCookies',
    'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
    'Illuminate\Session\Middleware\StartSession',
    'Illuminate\View\Middleware\ShareErrorsFromSession',
    'Laravel\Lumen\Http\Middleware\VerifyCsrfToken',
]);

Anda bisa memilih middleware mana yang akan digunakan. Tidak harus semua.

Route Middleware

Begitu pula dengan Route Middleware, anda bisa aktifkan dengan menghilangkan dan meregister (apa ini bahasanya?) di

$app->routeMiddleware([

]);

Misalnya mau menambahkan auth.admin,

$app->routeMiddleware([
    'auth.admin' => 'App\Http\Middleware\Auth\AdminMiddleware'
]);

Service Provider

Seperti konfigurasi diatas, untuk mengaktifkan/registrasi Service Provider baru, cukup hilangkan tanda comment atau tambahkan disekitar

$app->register('App\Providers\AppServiceProvider');

Routes

Untuk meng-organize routes lebih baik, anda bisa edit atau tambahkan line disekitar

require __DIR__.'/../app/Http/routes.php';

Misalnya saya mau ada routes khusus untuk admin.

require __DIR__.'/../app/Http/routes/admin.php';

Btw, untuk menggunakan routing di Lumen, anda harus menggunakan lengkap namespace dan nama class. Misalnya pada app/Http/routes.php,

$app->get('api/news', 'App\Http\Controllers\NewsController@index');
$app->get('api/user/{userId}', 'App\Http\Controllers\UserController@show');

Agar lebih mudah, anda bisa menggunakan group.

$app->group(['namespace' => 'App\Http\Controllers'], function()
{

    $app->get('api/news', 'NewsController@index');

    $app->get('api/user/{userId}', 'UserController@show');

});

Views

Mungkin anda mau menggunakan Lumen bukan hanya untuk penyedia REST API. Tapi untuk membuat website biasa. Tapi by default Lumen tidak menyediakan directory resources seperti di Laravel. So, caranya sangat mudah. Jalankan artisan make seperti ini

php artisan make resources

Dengan menggunakan resources maka ada akan muncul resources directory. Didalamnya sudah ada directory lang dan views.

Bila anda hanya membutuhkan views, tapi tidak membutuhkan lang, anda bisa menggunakan

php artisan make views

Ada beberapa parameter yang bisa digunakan dengan artisan make, yaitu resources, views, lang. Dua parameter lagi akan saya bahas dibawah.

Database Migrations & Seeders

Pada Lumen, tidak ada directory database. Mungkin anda bingung bagaimana caranya menggunakan migrations dan seeders. Kita bisa menggunakan artisan make untuk membuat directory database.

php artisan make database

Untuk membuat kedua directory resources dan database sekaligus, anda bisa menggunakan foundation

php artisan make foundation

That’s all… Semoga dapat membantu.

2 Komentar

  1. Erno Putra berkata:

    baru coba lumen om, kok ane tidak bisa membuat php artisan make resources

    ERROR
    [InvalidArgumentException]
    Command “make” is not defined.
    Did you mean one of these?
    make:migration
    make:seeder

    1. mul14 berkata:

      Yang saya gunakan pada artikel ini adalah versi Lumen paling awal, yaitu 5.0.0. Kalau kita lihat struktur folder-nya https://github.com/laravel/lumen/tree/v5.0.0 , memang tidak ada folder resources. Sehingga perintah `./artisan make resources` ada.

      Tapi di versi yang lebih baru, folder resources sudah ada. Sehingga kebedaraan perintah tersebut, tidak dibutuhkan lagi.

Tinggalkan Balasan ke mul14 Batalkan balasan