Laravel2 min čítania
Controller, constructor DI a typy response (JSON, model, resource)
Ako držať controller tenký a vracať konzistentné response typy.
Controller má byť tenký. Jeho úloha je orchestrace: prijať request, zavolať službu, vrátiť response. Všetko ostatné patrí mimo controller.
Constructor dependency injection
class UserController extends Controller
{
public function __construct(private readonly UserServiceInterface $users)
{
}
}DI znižuje coupling a uľahčuje testovanie.
Príklady response typov
public function show(User $user): JsonResponse
{
return response()->json($user);
}
public function index(): AnonymousResourceCollection
{
return UserResource::collection($this->users->paginate());
}Použi:
- model pre interný web prototyp,
JsonResponsepre rýchle API odpovede,Resource/Collectionpre stabilné produkčné API.
Status kódy a konzistencia
200OK,201Created,204No Content (delete),422Validation errors,404Not found.
Najčastejšie chyby
- business logika v controller methods,
- vracanie rôznych JSON štruktúr pre rovnaký endpoint,
- absencia return typov.
Mini úloha
- Vytvor
UserController@indexashow. - Pre index použi
UserResource::collection. - Pre show vráť
new UserResource($user).
Overenie v praxi
- Spusť
php artisan testa skontroluj, že zmena neotvorila regresiu. - Over kritický endpoint alebo flow priamo v prehliadači/HTTP klientovi.
- Ak riešiš DB vrstvu, skontroluj aj SQL správanie (N+1, indexy, transakcie) cez logy/profiler.
Čo bude ďalej
Nasleduje článok o Blade layoutoch, formulároch a CSRF, aby si vedel spraviť čistý základný web.