Conventions — Contrôleurs
Les contrôleurs sont des couches d'orchestration minces.
Responsabilités du contrôleur
Autorisé :
- Accepter des Form Requests typées
- Appeler
$this->authorize()ou middleware de route - Déléguer la logique métier aux services
- Retourner des vues, redirections ou ressources
Interdit :
- Écrire des requêtes complexes directement dans les actions
- Modifier des permissions sans log d'audit
- Mettre la logique de parsing import/export dans les contrôleurs
Pattern action
public function update(UpdateUserRequest $request, User $user): RedirectResponse
{
$this->authorize('update', $user);
$this->userService->update($user, $request->validated());
return redirect()
->route('admin.users.edit', $user)
->with('status', __('Utilisateur mis à jour.'));
}
Pattern store avec service
public function store(StoreUserRequest $request): RedirectResponse
{
$this->authorize('create', User::class);
$user = $this->userService->create($request->validated());
return redirect()
->route('admin.users.edit', $user)
->with('success', 'Utilisateur créé.');
}
Retours JSON (AJAX / API)
public function getLog(string $code): JsonResponse
{
$this->authorize('viewLogs', Application::class);
$lines = $this->logService->getLastLines($code, 300);
return response()->json(['lines' => $lines]);
}