Skip to content

Instantly share code, notes, and snippets.

@ronan-gloo
Last active December 20, 2015 01:58
Show Gist options
  • Save ronan-gloo/6052449 to your computer and use it in GitHub Desktop.
Save ronan-gloo/6052449 to your computer and use it in GitHub Desktop.
Quelques paramètres méconnus du router zf2 (à partir de la 2.2 pour certains)
<?php
'router' =>
[
// Active le support du translator pour les portions de route marquées par {translation_key}
// Il faut lui injecter un translator
'router_class' => 'Zend\Mvc\Router\Http\TranslatorAwareTreeRouteStack',
// Valeurs par défaut pour toutes les routes
'default_params' =>
[
'action' => 'index'
],
// Prototypes de routes
'prototypes' =>
[
'secure' =>
[
'type' => 'scheme',
'options' =>
[
'scheme' => 'https',
]
],
// prototype crud
'crud' =>
[
'type' => 'Segment',
'options' =>
[
'route' => '/:controller/:action[/:id]',
'constraints' =>
[
'controller' => '\w+',
'action' => 'index|edit|create|delete',
'id' => '\d+'
],
]
]
],
'routes' =>
[
'login' =>
[
'type' => 'literal',
// Définie la priorité de la route vis à vis de celles du meme niveau:
// La plus forte se trouvera en haut de la pile pour le matching
'priority' => 100
'options' =>
[
'route' => '/login',
'defaults'=>
[
'controller' => 'Application\Controller\Index',
]
],
// Ajoute des définitions, sans modifier les appels à l'assembleur.
// Ici, le https sera donc un parametre implicite
'chain_routes' =>
[
// prototype défini plus haut
'secure'
]
],
'application' =>
[
'type' => 'Literal',
'options' =>
[
'route' => '/application',
'defaults' =>
[
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Index',
],
],
'may_terminate' => true,
// Utilisation du prototype crud pour les routes enfant
'child_routes' =>
[
'default' => 'crud',
],
],
'translated' =>
[
'type' => 'segment',
'options' =>
[
// la route matchée en français sera /Accueil, Home étant une clé de traduction
// A noter que se sont par défaut des éléments étant traité comme Literal, et non parametre
'route' => '/{Home}',
'defaults' =>
[
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Index',
],
],
],
],
],
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment