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.