Documentation · Chapitre 03

Ajouter une page
de bout en bout.

Une page classique nécessite une adresse, une action et un fichier d’affichage. Nous allons créer /about dans cet ordre.

Vous modifierez un seul élément à la fois, dans un fichier précisément indiqué, puis vous contrôlerez le résultat.

1. Générez le contrôleur

phpaml — zsh
aml make:controller About

AML crée src/controllers/AboutController.php. Un contrôleur est une classe PHP ordinaire qui hérite de Controller afin d’utiliser les outils du framework, notamment la méthode view().

2. Remplissez exactement ce fichier

src/controllers/AboutController.php

phpaml — zsh
<?php

declare(strict_types=1);

namespace App\Controllers;

use PHPAML\Http\Request;
use PHPAML\Http\Response;
use PHPAML\Mvc\Controller;

final class AboutController extends Controller
{
    public function index(Request $request): Response
    {
        return $this->view('about.php');
    }
}

index() est l’action appelée par la route. Request représente la demande reçue. Response garantit que l’action rend une réponse comprise par PHPAML. view('about.php') demande enfin le fichier src/views/about.php.

3. Créez la vue

src/views/about.php

phpaml — zsh
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>À propos</title>
</head>
<body>
    <main>
        <h1>À propos de Reading List</h1>
        <p>Ma première page PHPAML.</p>
    </main>
</body>
</html>

Cette vue contient du HTML parce que son travail est la présentation. Elle reste un fichier PHP : nous y afficherons bientôt des valeurs dynamiques.

4. Reliez l’adresse au contrôleur

src/routes/WebApp.php

phpaml — zsh
<?php

declare(strict_types=1);

namespace App\Routes;

use App\Controllers\AboutController;
use App\Controllers\HomeController;
use PHPAML\Routing\Route;

final class WebApp extends Route
{
    protected function routes(): void
    {
        $this->get('/', [HomeController::class, 'index']);
        $this->get('/about', [AboutController::class, 'index']);
    }
}

get signifie que la page répond à une consultation normale du navigateur. Le tableau indique la classe puis la méthode à appeler. La ligne use rend AboutController disponible dans ce fichier.

5. Contrôlez immédiatement

phpaml — zsh
aml routes
# GET  /about  AboutController::index

Ouvrez ensuite http://127.0.0.1:8910/about. Si la page apparaît, la route, le contrôleur et la vue sont correctement reliés.