Controllers
Les contrôleurs orchestrent la logique de votre application. Ils reçoivent les requêtes et retournent des réponses.
Structure de base
Les contrôleurs sont situés dans app/Controllers/. Ils étendent généralement la classe abstraite River\Controller pour bénéficier des helpers.
<?php
namespace App\Controllers;
use River\Controller;
use River\Response;
class Blog_ctrl extends Controller
{
public function show(): Response
{
// Récupérer un paramètre de route
$id = $this->param('id');
// Retourner une vue
return $this->render('blog/show', [
'id' => $id,
'title' => 'Mon Article'
]);
}
}
Injection de Dépendances
River supporte l'injection de dépendances dans le constructeur. Type-hint simplement vos dépendances :
use River\Controller;
use River\View;
use River\Request;
use River\Router;
use App\Repository\PostRepository;
class Blog_ctrl extends Controller
{
// Injection automatique de PostRepository
public function __construct(
View $view,
Request $request,
Router $router,
private PostRepository $posts
) {
parent::__construct($view, $request, $router);
}
public function index(): Response
{
$posts = $this->posts->findAll();
return $this->render('blog/index', ['posts' => $posts]);
}
}
Helpers Utiles
| Méthode | Description |
|---|---|
$this->render($tpl, $data) |
Retourne une réponse HTML rendue par le moteur de template. |
$this->json($data) |
Retourne une réponse JSON. |
$this->redirect($url) |
Redirige vers une autre URL. |
$this->param($key) |
Récupère un paramètre de route. |
$this->url($name, $params) |
Génère une URL à partir d'une route nommée. |
$this->not_found() |
Retourne une erreur 404 standard. |