php - unable - routes zend framework 2
¿Qué es ''may_terminate'' en zend framework 2? (1)
Soy principiante trabajando con Zend. He visto may_terminate
en la configuración de la ruta del módulo. No entiendo para qué sirve. Según los documentos oficiales de ZF2 ,
the option “may_terminate” hints to the router that no other
segments will follow it.
Todavía no entiendo el significado de no other segments will follow it
. Que es aqui ¿Alguien puede explicarlo con un pequeño ejemplo?
La opción may_terminate
indicará al enrutador que ''esta'' ruta se puede hacer coincidir únicamente con el valor de su route
; incluso cuando se define child_routes
.
Considere la siguiente configuración de ruta de ejemplo.
''router'' => [
''routes'' => [
''home'' => [
''type'' => ''literal'',
''options'' => [
''route'' => ''/home'',
],
''may_terminate'' => false,
''child_routes'' => [
''foo'' => [
''type'' => ''literal'',
''options'' => [
''route'' => ''/foo'',
],
],
],
],
],
],
Existe cierta ambigüedad en la configuración anterior, que solo ocurre con las rutas que definen hijos. ¿Queremos permitir que nuestros usuarios coincidan en dos rutas o solo en una?
Podríamos permitir el emparejamiento solo en la parte /home
; lo que significaría que tenemos dos rutas /home
y /home/foo
o quizás solo queramos permitir /home/foo
.
Aquí es donde se may_terminate
opción may_terminate
. Si navegamos a /home
en nuestro navegador, cuando se produce el enrutamiento, el enrutador no puede considerar la ruta home
como una ruta may_terminate = false
como may_terminate = false
. En la terminología ZF2, el enrutador no puede "terminar" en esta ruta y continúa en la búsqueda de una coincidencia en los child_routes
, que fallará y se generará un error 404.
Entonces, al modificar el valor de la opción may_terminate
en el ejemplo anterior, podemos cambiar las rutas en las que se puede hacer coincidir.
may_terminate = true
- casa
- casa / foo
may_terminate = false
- casa / foo