5 Fitur Laravel yang Membuat Kode Kamu Lebih Ringkas

·

2 min read

Laravel menawarkan berbagai fitur untuk membantu Kamu menulis kode yang lebih bersih dan ringkas. Berikut adalah 5 fitur Laravel yang akan membuat kode Kamu lebih efisien.


1. Helper tap()

Fungsi tap() memungkinkan Kamu menginisialisasi objek, memodifikasi nilainya, dan mengembalikannya dalam satu langkah.

Contoh Tanpa tap():

use App\Models\Photo;

public function addPhoto(): Photo
{
    $photo = new Photo();
    $photo->name = 'Photo 1';
    $photo->path = '/path/to/photo';
    $photo->save();

    return $photo;
}

Dengan tap():

use App\Models\Photo;

public function addPhoto(): Photo
{
    return tap(new Photo(), function ($instance) {
        $instance->name = 'Photo 1';
        $instance->path = '/path/to/photo';
        $instance->save();
    });
}

tap() mengembalikan parameter pertama dan memungkinkan Kamu memodifikasinya menggunakan closure sebagai parameter kedua.


2. Metode when()

Fitur ini mempermudah kondisi opsional dalam query database.

Contoh Tanpa when():

$role = $request->input('role');
$photos = Photo::where('path', 'path/to/file');

if ($role) {
    $photos->where('role_id', $role);
}

$photos = $photos->get();

Dengan when():

$photos = Photo::where('path', 'path/to/file')
              ->when($role, fn($query, $role) => $query->where('role_id', $role))
              ->get();

Kode menjadi lebih bersih dengan logika kondisi di dalam closure.


3. Helper Number::abbreviate()

Fungsi ini mempermudah menampilkan angka dalam format yang lebih mudah dibaca manusia.

Contoh:

<span class="count">
  {{ Number::abbreviate(500000) }} <!-- Output: 500K -->
</span>

<span class="count">
  {{ Number::abbreviate(525678, precision: 2) }} <!-- Output: 525.68K -->
</span>

4. Fungsi abort_if()

Fungsi ini digunakan untuk melempar exception berdasarkan kondisi tertentu, membuat kode lebih ringkas dibandingkan dengan blok if biasa.

Contoh Tanpa abort_if():

if ($forbidden) {
    abort(403, 'You don\'t have access');
}

Dengan abort_if():

abort_if($forbidden, 403, 'You don\'t have access');

5. Helper Arr::toCssClasses()

Fitur ini sangat membantu saat menambahkan class HTML berdasarkan kondisi.

Contoh Tanpa Arr::toCssClasses():

<div class="result @if($status) active @endif @if($error) error @endif">
    Lorem...
</div>

Dengan Arr::toCssClasses():

@php
$classes = ['result', 'active' => $status, 'error' => $error];
@endphp

<div class="{{ Arr::toCssClasses($classes) }}">
    Lorem...
</div>

Atau gunakan direktif Blade @class:

<div @class([
    'result',
    'active' => $status,
    'error' => $error
])>
    Lorem...
</div>

Kesimpulan

Fitur-fitur ini tidak hanya membuat kode lebih ringkas, tetapi juga lebih mudah dipahami. Cobalah menggunakannya untuk meningkatkan produktivitas dan kualitas kode Kamu.