Mengenal Laravel Lebih Dekat

Laravel adalah kerangka kerja PHP yang mungkin dapat meningkatkan produktivitas Anda. Mengapa harus Laravel? Kita perlu mengenal lebih dekat tentang Laravel untuk mengetahui jawabannya.

Laravel hadir sudah ada cukup lama. Versi pertama dirilis pada Juni 2011. Namun, pendirinya; Taylor Otwell dan timnya terus aktif mengembangkannya. Versi terbaru (saat ini 5.8) rilis stabil pada bulan Februari 2019. Versi ini berjalan pada PHP 7.1.3 ke atas. Dalam tulisan ini, saya akan menjelaskan beberapa fitur terpenting yang ada di Laravel dan jika perlu Anda bisa mencobanya.

Fitur Penting

Fitur yang penting (menurut saya) adalah sebagai berikut:

1. Eloquent ORM (Object-Relational Mapping)

Implementasi PHP dari active record pattern. Secara sederhana, pola ini memungkinkan kita untuk menyajikan tabel basis data sebagai class. Class ini dikaitkan sebagai baris dalam tabel. Agak bingung? Artinya Anda dapat mengkonversi (mendefinisikan) tabel ke dalam sebuah class, misalnya class User, yang akan dikaitkan ke tabel users di basis data Anda. Setiap baris yang ada dalam tabel users akan direpresentasikan sebagai class User. Cukup sederhana bukan? Anda dapat melihat contoh isi dari kelas User sebagai berikut:

class User extends Authenticatable
{
    use Notifiable;

    /**
     * Diisi sesuai nama field pada tabel "users"
     * yang Anda izinkan untuk dapat ditulis.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * Diisi sesuai nama field yang tidak ingin
     * Anda tampilkan pada saat mengeluarkan output data.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

Kemudian untuk menemukan data user dalam basis data, Anda cukup memanggil (menggunakan fungsi) User::find(1); dimana 1 adalah id unik dari baris dalam tabel users. Eloquent memudahkan dalam melakukan proses CRUD.

2. Blade sebagai Template Engine (Views)

Views berisi kode HTML yang ditampilkan pada aplikasi Anda. Dengan begitu Anda tidak perlu menggabungkan business logic dengan presentation layer. View mendukung tempalate engine Blade yang memungkinkan Anda menulis potongan kode HTML yang dapat digunakan kembali sebagai layout. Ini menjadi sangat berguna ketika halaman (tertentu) dalam aplikasi Anda terdiri dari komponen yang sama, misalnya header dan footer. Berikut contoh dari file Blade:

@extends('layouts.app')

@section('title', 'Page Title')

@section('sidebar')
    @parent

    <p>Ditambahkan ke master sidebar.</p>
@endsection

@section('content')
    <p>Ini adalah konten (body content).</p>
@endsection

Catatan
Penting untuk dicatat bahwa file template Blade harus disimpan dengan ekstensi .blade.php. Contoh header.blade.php

3. Controller

Controller memungkinkan pengelompokan logika penanganan permintaan terkait ke dalam satu class.

<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    /**
     * Menampilkan profil pengguna berdasarkan ID yang diberikan.
     *
     * @param int $id
     * @return View
     */
    public function show($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

Berdasarkan contoh Controller diatas, file blade untuk profil pengguna terdapat pada folder /resources/views/users/profile.blade.php.

4. Routing

Laravel memiliki mekanisme routing yang sangat sederhana. Semua rute didaftarkan dalam satu file. Anda juga dapat memiliki banyak file routing jika diinginkan, terutama jika Anda memiliki aplikasi yang mendukung layanan API. Berikut adalah contoh definisi rute.

Route::get('profile', ‘UserController@getProfile');

Kemudian Anda dapat menggunakan rute ini di bagian kode HTML mana saja (menggunakan Blade).

<form method="GET" action ="/profile">
    @csrf
    ...
</form>

/**
  * Atau bisa menggunakan rute
  * diatas seperti dibawah ini:
  */

<a href="/profiles">Profil Saya</a>

Setelah mengirimkan formulir diatas atau mengklik URL Profil Saya, mekanisme perutean akan mengenali rute dan mengeksekusi kode yang ditentukan dalam definisi rute. Dalam hal ini, Laravel akan mencari class UserController dan metode getProfile().

Dalam penulisan formulir Anda perlu menambahkan anotasi @csrf untuk melindungi sistem dari serangan Cross-Site Request Forgery (CSRF).

Baca Juga:  Peran dan Hak Akses di Laravel – Bagian 2

5. Otentikasi Sederhana

Apakah Anda sudah menerapkan mekanisme otentikasi dengan halaman registrasi dan login secara manual? Laravel sudah menyediakan fitur otentikasi bawaan yang mudah untuk diterapkan. Anda tidak perlu membuat halaman dan fungsi untuk registrasi dan login. Cukup dengan menjalankan perintah dibawah ini:

php artisan make:auth

Setelah menjalankan perintah diatas, Laravel secara otomatis akan membuat beberapa file yang merupakan bagian dari otentikasi; termasuk struktur tabel yang disediakan secara bawaan. Anda dapat menjalankan perintah berikutnya untuk membuat tabel pengguna:

php artisan migrate 

Basis data proyek aplikasi Laravel Anda akan mendapatkan tabel baru. Salah satu tabel yang dibuatkan Laravel adalah tabel users.

Kesimpulan

Ada banyak manfaat membangun sebuah aplikasi web dengan Laravel; terutama akan menghemat banyak waktu. Fitur yang saya sebutkan diatas adalah hanya sebagian fitur yang dimiliki Laravel.