Menciptakan Route Controller dengan Gaya!

Budi Setiawan
3 min read1 day ago

--

Selamat datang di blog saya, tempat di mana kita akan membahas topik yang mungkin terasa sepele, tapi sebenernya itu seperti penghidupan roti bagi para developer Laravel: Route Controller! Ya, kita akan menjelajahi bagaimana cara mengarahkan route ke controller, apa itu single action controller, serta membandingkan antara closure dan controller method.

Menciptakan Route Controller dengan Gaya!

Route yang Mengarah ke Controller

Pertama-tama, mari kita bicarakan tentang routing. Bayangkan kalau Laravel adalah mobil balap, dan routing adalah peta yang akan memandu kita ke tujuan yang tepat. Tanpa routing, kita mungkin akan berputar-putar di jalan yang salah, atau lebih buruk lagi, tersesat di hutan (yang sebenarnya hanya folder storage kita).

Nah, untuk mengarahkan route ke controller, kita hanya perlu menghubungkan titik antara route dan controller dalam file web.php. Berikut adalah contoh yang sangat sederhana:

// routes/web.php
use App\Http\Controllers\HomeController;

Route::get('/home', [HomeController::class, 'index']);

Dengan kode di atas, kita mengarahkan route /home ke metode index di dalam HomeController. Mudah, bukan? Seperti merangkai puzzle, hanya saja tidak ada potongan yang hilang dan semua potongannya punya fungsi!

Sekarang, mari kita lihat lebih dalam tentang Single Action Controller.

Single Action Controller

Apa sih single action controller itu? Ini adalah controller yang hanya memiliki satu metode. Sederhana seperti satu sendok gula di dalam kopi. Kita tidak perlu ribet-ribet bikin beberapa metode, cukup fokus pada satu aksi saja. Ini sangat ideal untuk kasus sederhana di mana kita hanya memerlukan satu fungsi.

Berikut adalah contoh cara membuat single action controller:

php artisan make:controller ShowProfileController --invokable

Nah, kita sudah membuat controller ShowProfileController dengan metode __invoke secara otomatis. Berikut contoh implementasinya:

namespace App\Http\Controllers;
use Illuminate\Http\Request;

class ShowProfileController extends Controller
{
public function __invoke()
{
return "Ini adalah profil penggunaku!";
}
}

Dan ini adalah cara kita menyiapkan route untuk single action controller:

// routes/web.php
use App\Http\Controllers\ShowProfileController;

Route::get('/profile', ShowProfileController::class);

Dengan ini, jika kita mengakses /profile, kita akan melihat tulisan "Ini adalah profil penggunaku!" Sekarang, kita bisa merayakan kesederhanaan dengan sebotol soda!

Closure vs Controller Method

Sekarang kita sampai pada bagian yang menarik, seperti pertarungan antara Batman dan Joker, yaitu perdebatan antara closure dan controller method. Keduanya memiliki kelebihan dan kekurangan, dan kita akan membahasnya sambil tetap tersenyum.

Closure

Satu hal yang menarik tentang closure adalah kesederhanaannya. Kita dapat menulis fungsi secara langsung di dalam route. Namun, jangan terbawa suasana, karena terlalu banyak closure dapat membuat kode kita seperti labirin yang penuh jebakan.

Berikut contohnya:

// routes/web.php

Route::get('/closure', function () {
return "Saya adalah fungsi closure!";
});

Nah, kita bisa langsung mendapatkan pesan “Saya adalah fungsi closure!” hanya dengan mengakses /closure. Mudah dan cepat!

Controller Method

Di sisi lain, jika kita mau berinvestasi sedikit lebih banyak waktu untuk struktur dan organisasi, maka menggunakan controller method mungkin lebih tepat. Kita dapat memisahkan logika bisnis kita dari route sehingga lebih mudah dibaca dan dirawat, seperti mengatur lemari baju berdasarkan warna (atau mungkin berdasarkan tipe gaya).

Berikut adalah contoh sederhana:

// app/Http/Controllers/MessageController.php

namespace App\Http\Controllers;
use Illuminate\Http\Request;

class MessageController extends Controller
{
public function show()
{
return "Saya adalah metode dari controller!";
}
}

// routes/web.php
use App\Http\Controllers\MessageController;
Route::get('/message', [MessageController::class, 'show']);

Nah, dengan mengakses /message, kita akan mendapatkan "Saya adalah metode dari controller!". Jelas dan terorganisir!

Jadi, dalam pertempuran antara closure dan controller method, tidak ada pemenang yang mutlak! Tergantung pada situasi dan konteks proyekmu, kamu bisa memilih mana yang lebih atau paling cocok.

Apakah kamu ingin cepat dan merasa seperti superhero dengan closure? Atau ingin lebih terorganisir dan terlihat profesional dengan controller method? Semua pilihan ada di tanganmu!

Untuk single action controller, itu adalah pilihan yang baik ketika kamu hanya perlu mengatasi satu aksi, tanpa harus mengklaim seluruh kompleksitas yang ada.

Sudah selesai baca artikelnya? Bagus! Tapi tunggu dulu… tidak lengkap kalau tidak up-grade skill anda! Yuk, cek kelas online saya, biar anda bisa bilang, “Laravel? Gampang banget!” 😄:
- Bangun Aplikasi Laravel Modern Menggunakan React InertiaJS

--

--