Last Updated on December 29, 2021 by
Apakah Anda pernah menggunakan micro framework? Jika Anda merasakan pengalaman yang baik ketika bekerja dengan micro framework, Anda mungkin bisa mencoba Lumen Laravel yang merupakan micro framework untuk bahasa pemrograman PHP.
Lumen adalah proyek yang dibuat oleh creator Laravel, Taylor Otwell untuk menambah fungsionalitas pada framework Laravel. Pada artikel ini, kami akan membahas tentang Lumen Laravel untuk Anda yang mungkin ingin mencoba Lumen namun masih ragu-ragu. Dalam artikel ini, kami akan membahas berbagai hal tentang Lumen Laravel.
Table of Contents
Apa itu Micro Framework?
Sebelum lebih jauh membahas tentang Lumen Laravel, kami akan membahas terlebih dahulu apa itu micro framework. Seperti namanya, Micro Framework adalah framework dengan ukuran lebih kecil karena tujuan spesifiknya dan ukurannya berkisar antara beberapa ratus hingga kira-kira 5 ribu baris kode.
Micro Framework dilengkapi dengan kode minimal yang diperlukan untuk mengembangkan aplikasi yang lebih kecil dengan cepat. Ini termasuk prototipe atau aplikasi satu hingga beberapa halaman yang membutuhkan perawatan minimum. Kemudahan framework ini dengan cepat menjadikannya sebagai perangkat populer dan pilihan pertama untuk mengembangkan aplikasi yang lebih kecil.
Berbeda halnya dengan framework Full-Stack yang berukuran lebih besar karena beberapa modul, komponen, dan layanan yang disertakan di dalamnya. Framework Full-Stack biasanya lebih dari 5000 baris kode.
Framework Full Stack biasanya dikemas bersama dengan beberapa alat dan modul untuk mengembangkan dan memelihara aplikasi yang lebih besar. Pada saat yang sama, kerangka kerja ini membawa tingkat kerumitan dan layak untuk mengembangkan aplikasi yang lebih besar yang juga membutuhkan pemeliharaan untuk durasi yang lebih lama.
Apa itu Lumen Laravel?
Lumen berada di bawah perusahaan yang sama dengan Laravel. Selain itu, keduanya juga memiliki berbagai komponen yang sama. Tapi Lumen diciptakan untuk layanan mikro, tidak begitu banyak untuk aplikasi yang dihadapi pengguna (walaupun dapat digunakan untuk apa saja.)
Dengan demikian, fitur frontend seperti Bootstrap dan Elixir dan bootstrap dan sesi otentikasi tidak langsung diaktifkan, dan ada lebih sedikit fleksibilitas untuk memperluas dan mengubah file bootstrap. Lumen disebut sebagai micro framework karena ia berukuran kecil, cepat, dan merupakan versi yang lebih ramping dari kerangka kerja aplikasi web lengkap. Selain Lumen, PHP juga memiliki dua kerangka micro framework populer lainnya yaitu Slim dan Silex.
Lumen adalah untuk proyek dan komponen yang dapat mengambil manfaat dari kenyamanan dan kekuatan Laravel tetapi mampu mengorbankan beberapa konfigurasi dan fleksibilitas sebagai ganti peningkatan kecepatan.
Lumen ditargetkan pada layanan mikro atau dapat dikatakan sebagai komponen kecil yang digabungkan secara longgar yang biasanya mendukung dan meningkatkan proyek inti. Layanan mikro adalah komponen yang terpisah dengan konteks terbatas (artinya mereka memiliki antarmuka yang terdefinisi dengan baik antara satu sama lain), jadi dalam arsitektur layanan mikro, Anda mungkin memiliki beberapa aplikasi Lumen kecil yang mendukung aplikasi lain yang mungkin didukung Laravel.
Fitur dan Arsitektur Lumen Laravel
Lumen menggunakan komponen Illuminate yang mendukung framework Laravel. Dengan demikian, Lumen dibangun untuk meningkatkan langsung ke Laravel tanpa kesulitan saat dibutuhkan; misalnya, ketika Anda menemukan bahwa Anda membutuhkan lebih banyak fitur di luar kotak daripada yang ditawarkan Lumen.
Berikut ini adalah beberapa fitur bawaan Lumen:
Routing
Fitur ini disediakan di luar kotak di Lumen. Fitur ini termasuk basic routing (perutean dasar), parameter perutean, rute bernama, dan grup rute seperti middleware.
Authentication
Authentication dalam Lumen Laravel tidak mendukung status sesi. Namun, permintaan yang masuk diautentikasi melalui mekanisme stateless seperti token.
Caching
Fitur caching dalam Lumen diimplementasikan sama seperti di Laravel. Driver cache seperti Database, Memcached, dan Redis didukung. Misalnya, Anda dapat menginstal paket iluminasi/redis melalui Komposer untuk menggunakan cache Redis dengan Lumen.
Error dan Logging
Fitur ini diimplementasikan melalui perpustakaan Monolog, yang menyediakan dukungan untuk berbagai penanganan log.
Queuing
Queuing atau layanan antrian mirip dengan yang ditawarkan oleh Laravel. API terpadu disediakan di berbagai back-end antrian yang berbeda.
Events
Events menyediakan implementasi pengamat sederhana yang memungkinkan Anda berlangganan dan mendengarkan acara di aplikasi Anda.
Bootstrap
Proses bootstrap terletak dalam satu file.
Cara Instal Lumen Laravel
Lumen memiliki penginstal sederhana seperti Laravel sehingga Anda tidak perlu kerepotan saat menginstal micro framework ini dalam perangkat Anda. Anda dapat menariknya secara global:
composer global require "laravel/lumen-installer=~1.0"
Sekarang, Anda dapat menjalankan lumen first-project yang baru dan itu akan membuat folder itu dan membuat proyek lumen di sana untuk Anda.
cd Sites
lumen new my-cache
cd my-cache
Membangun RESTful API dengan Laravel Lumen
Pertama-tama, kita harus memahami apa sebenarnya yang dimaksud sebagai RESTful API. REST merupakan singkatan dari REpresentational State Transfer. REST juga bisa disebut sebagai gaya arsitektur untuk komunikasi jaringan antar aplikasi yang menggunakan protokol stateless (biasanya HTTP) untuk komunikasi. Dalam RESTful API, kita menggunakan Framework HTTP sebagai tindakan, dan titik akhir adalah sumber daya yang ditindaklanjuti. Kita akan menggunakan kata kerja HTTP untuk arti semantiknya:
– GET: ambil sumber daya
– POST: buat sumber daya
– PUT: perbarui sumber daya
– DELETE: hapus sumber daya
Berikut ini adalah langkah-langkah membuat RESTful API dengan menggunakan Lumen.
1. Konfigurasi
Gunakan file .env dan gantikan dengan value CACHE_DRIVER dan QUEUE_DRIVER dengan kode sebagai berikut:
CACHE_DRIVER=array
QUEUE_DRIVER=database
2. Migrasi Database
Sekarang buat file migrasi. Jalankan kode di bawah ini:
php artisan make:migration create_products_table
Ini akan membuat file migrasi baru untuk Anda di database/direktori migrasi. Tabel student ini akan memiliki atribut nama, dan umur. Tambahkan kode berikut ke file migrasi yang baru dibuat.
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateProductsTable extends Migration
{
/**
* Jalankan migrasi.
*
* @return void
*/
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('nama');
$table->integer('harga');
$table->longText('deskripsi');
$table->timestamps();
});
}
Edit file .env dengan konfigurasi database Anda kemudian jalankan perintah berikut ini untuk mengeksekusi migrasi.
php artisan migrate
3. Membuat Model Produk
Anda mungkin sudah terbiasa membuat model dan pengontrol melalui perintah artisan di Laravel, tetapi sayangnya Lumen tidak mendukung perintah tersebut. Untuk melihat daftar perintah artisan yang tersedia di Lumen, jalankan kode di bawah ini:php artisan migrate
Arahkan ke direktori aplikasi dan buat model baru bernama Student.php dan tempel kode berikut.
namespace App;
use Illuminate\Database\Eloquent\Model;
Arahkan ke direktori aplikasi dan buat model baru bernama Product.php dan tempel kode berikut. Aplikasi/Produk.php.
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model { protected $table = 'products'; /** * Atribut yang dapat dialihkan secara massal. * * @var array */ protected $fillable = [ 'nama', 'harga','deskripsi' ]; }
Tidak seperti Laravel, Lumen awalnya tidak memuat Eloquent dan Facades. Untuk dapat menggunakannya, kita harus menghapus komentar pada baris kode berikut yang terletak di bootstrap/app.php. bootstrap/app.php.
$app->withFacades();
$app->withEloquent();
$app->register(App\Providers\AppServiceProvider::class);
$app->register(App\Providers\AuthServiceProvider::class);
$app->register(App\Providers\EventServiceProvider::class);
4. Setup Controller
Selanjutnya, ganti nama ExampleController menjadi ProductController. Arahkan ke direktori app\Http\Controller dan tempel kode tersebut ke file ProductController.php ini. app/Http/Controllers/ProductController.php.
namespace App\Http\Controllers;
use App\Product;
use Illuminate\Http\Request;
class ProductController extends Controller { /** * Buat instance pengontrol baru. * * @return void */ public function __construct() { // } public function index() { $products = Product::all(); return response()->json($products); } public function create(Request $request) { $product = new Product; $product->nama= $request->nama; $product->harga = $request->harga; $product->deskripsi= $request->deskripsi; $product->save(); return response()->json($product); } public function show($id) { $product = Product::find($id); return response()->json($product); } public function update(Request $request, $id) { $product= Product::find($id); $product->nama = $request->input('nama'); $product->harga = $request->input('harga'); $product->deskripsi = $request->input('deskripsi'); $product->save(); return response()->json($product); } public function destroy($id) { $product = Product::find($id); $product->delete(); return response()->json('produk berhasil dihapus'); } }
5. Setup Routes
Untuk hasil final, Anda bisa menambahkan routes. Buka file web.php di folder rute dan tambahkan kode berikut:
router->group(['prefix'=>'api/v1'], function() use($router){ $router->get('/items', 'ProductController@index'); $router->post('/items', 'ProductController@create'); $router->get('/items/{id}', 'ProductController@show'); $router->put('/items/{id}', 'ProductController@update'); $router->delete('/items/{id}', 'ProductController@destroy'); });
Kita mendefinisikan grup rute kita dan menambahkan awalan api/v1 karena ini adalah parameter umum yang dibagikan oleh semua URI tersebut.
Itulah penjelasan tentang Lumen Laravel yang bisa Anda coba jika Anda ingin menambahkan fungsionalitas tertentu pada program PHP Anda. Jika tertarik untuk mengetahui berbagai informasi
Kita mendefinisikan grup rute kita dan menambahkan awalan api/v1 karena ini adalah parameter umum yang dibagikan oleh semua URI tersebut.
Itulah penjelasan tentang Lumen Laravel yang bisa Anda coba jika Anda ingin menambahkan fungsionalitas tertentu pada program PHP Anda. Jika tertarik untuk mengetahui berbagai informasi terbaru seputar teknologi website, kunjungi Web App di link : https://appkey.id/ dan jangan sampai ketinggalan informasi terbaru.
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.