zend unable the requested framework php zend-framework2 zend-route zend-router

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