A free and open-source book on ZF3 for beginners

Translation into this language is not yet finished. You can help this project by translating the chapters and contributing your changes.

5.5. Les Routes de type Literal

Avec le type de route Littéral, la correspondance de route est obtenue uniquement lorsque la correspondance est totale avec la partie chemin de l'URL. Vous utilisez généralement le type Literal pour les URL qui doivent être courtes et mémorables, comme '/about' ou '/news'.

Ci-dessous, la définition de la route nommée "home" est présentée. La route "home" est mappée à l'action "index" de IndexController qui pointe vers la page d'accueil de votre site :

'home' => [
    'type' => Literal::class,
    'options' => [
        'route'    => '/',
        'defaults' => [
            'controller' => Controller\IndexController::class,
            'action'     => 'index',
        ],
    ],
],

La ligne 2 de cet exemple indique que le type de la route est Littéral. L'algorithme de correspondance de route est implémenté dans la classe Zend\Router\Http\Literal.

La ligne 4 définit la route à comparer au chemin de l'URL (la barre oblique '/' signifie la partie vide de l'URL). Commeil s'agit d'une route de type littéral, la correspondance est validée uniquement lorsqu'il y a correspondance exacte avec le chemin d'accès littéral. Par exemple, si vous avez l'URL ""http://localhost/"" ou ""http://localhost/", ça correspondra à la route "/".

Les lignes 5-8 définissent les valeurs par défaut, qui sont les paramètres renvoyés par le routeur si la route correspond. Les paramètres controller et action définissent le contrôleur et la méthode d'action qui doit être exécutée. Vous pouvez également définir d'autres paramètres ici, si nécessaire.

Comme autre exemple du type de route Literal, ajoutons la route '/about' pour la page About que nous avons créée précédemment dans la section Views du chapitre Model-View-Controller. Pour créer la route, ajoutez les lignes suivantes juste après la définition de la route "home" dans votre fichier module.config.php :

'about' => [
    'type' => Literal::class,
    'options' => [
        'route' => '/about',
        'defaults' => [
            'controller' => Controller\IndexController::class,
            'action'     => 'about',
        ],
    ],
],

Si vous ouvrez l'URL "http://localhost/about" dans votre navigateur, vous devriez voir la page About.


Top