Routing Dasar dengan Attribute
Penjelasan
Symfony modern mendaftarkan route langsung di atas method controller memakai PHP 8 Attribute #[Route(...)] — beda dengan Laravel/CodeIgniter yang route-nya dikumpulkan di satu file terpisah. Pendekatan ini membuat route dan logikanya selalu berdekatan dalam satu file, gampang ditelusuri.
Contoh Konsep
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class HalamanController extends AbstractController
{
#[Route('/', name: 'beranda')]
public function beranda(): Response
{
return new Response('Selamat datang di CompileDaily Study!');
}
}
Praktikum
Buat controller HaloController dengan method halo() yang punya attribute #[Route('/halo', name: 'halo')] dan mengembalikan Response berisi teks "Halo dari Symfony!".
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Setiap route WAJIB punya nama unik (argumen name: di dalam #[Route]) — nama ini yang dipakai untuk generate URL lewat fungsi path()/url() nanti, bukan path mentahnya, supaya kalau path berubah kamu tidak perlu mengubah semua rujukan satu per satu.