Bonjour

Je débute sur Symfony et je suis la documentation officielle https://symfony.com/doc/current/setup.html pour faire l'installation sur Windows 10
J'ai installé Wamp (Apache/2.4.62 (Win64) PHP/8.3.14 ), puis Composer et Symfony CLI
symfony check:requirements est conforme
Je déploie Symfony 7.2 par

symfony mon_project --version="7.2.x" --webapp

J'ai bien la page par defaut de Symfony à l'adresse http://127.0.0.1:8000/
Pour la création de ma premiere page selon https://symfony.com/doc/current/page_creation.htmlJ

Je crée un controller

<?php
// src/Controller/LuckyController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;

class LuckyController
{
     #route[('/lucky/number')]
    public function number(): Response
    {
        $number = random_int(0, 100);

        return new Response(
            '<html><body>Lucky number: '.$number.'</body></html>'
        );
    }

Mais lorsque j'appelle la page http://127.0.0.1:8000/lucky/number j'ai le message d'erreur
No route found for "GET http://127.0.0.1:8000/lucky/number"

J'ai plusieurs fois tenté ce guide en suivant strictement les indications avec le même echec
Quelle peut-être le probléme ?

Merci

5 réponses


jtremblet
Auteur
Réponse acceptée

Merci pour vos réponses et vos conseils
En effet les typo de syntaxe sont les principales sources d'erreur en absence de connaissance du language.
Malgré les relectures on ne les voit pas

Alex_13
Réponse acceptée

Tu peux basculer le post en résolu si tout est ok pour toi :)

J'ai deployé sous Symfony 6.4

symfony mon_project2 --version="6.4.x" --webapp

Dans cette environnement
Le code de la documentation https://symfony.com/doc/6.4/page_creation.html, identique à celui de la page courante, fonctionne correctement

Quels changements doit-on faire pour que cela fonctionne ?
J'ai reporté un bug sur https://github.com/symfony/symfony-docs/issues/20766

Salut, tu peux commencer par changer ton attribut 'route' en #[Route()]

<?php
// src/Controller/LuckyController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;

class LuckyController
{
    #Route[('/lucky/number')]
    public function number(): Response
    {
        $number = random_int(0, 100);

        return new Response(
            '<html><body>Lucky number: '.$number.'</body></html>'
        );
    }

De plus, tu peux spécifier un name et un path, exemple:

#Route[(path: '/lucky/number', name: 'lucky_number')]

Ce qui te permettras de pouvoir spécifier le name lorsqu'en twig tu voudras pointer vers ce chemin:

<a href="{{ path('lucky_number }}">Lucky number</a>

Bonjour,

tu as une erreur dans l'attribut route.
Essai de l'écrire dans les crochets :

#[Route(path: 'lucky/number', name: 'lucky_number')]