Что такое «may_terminate» в zend framework 2?

Я начинаю работать с Zend. Я видел may_terminate в конфигурации маршрута модуля. Я не понимаю, для чего это. Согласно официальным документам ZF2 ,

 the option “may_terminate” hints to the router that no other segments will follow it. 

Тем не менее, я не понимаю смысла, что no other segments will follow it . Что здесь? Может ли кто-нибудь объяснить это небольшим примером?

    Параметр may_terminate указывает маршрутизатору, что «этот» маршрут может быть сопоставлен исключительно по значению его route ; даже если он определяет child_routes .

    Рассмотрим следующую конфигурацию маршрута.

     'router' => [ 'routes' => [ 'home' => [ 'type' => 'literal', 'options' => [ 'route' => '/home', ], 'may_terminate' => false, 'child_routes' => [ 'foo' => [ 'type' => 'literal', 'options' => [ 'route' => '/foo', ], ], ], ], ], ], 

    В приведенной выше конфигурации есть некоторая двусмысленность, которая встречается только с маршрутами, определяющими детей. Мы хотим разрешить нашим пользователям сопоставлять два маршрута или только один?

    Мы могли бы согласовать только часть /home ; что означает, что у нас есть два маршрута: /home и /home/foo или мы можем только разрешить /home/foo .

    Здесь may_terminate опция may_terminate . Если мы просматриваем /home в нашем браузере, когда происходит маршрутизация, маршрутизатор не может рассматривать home маршрут как подходящий маршрут, как may_terminate = false . В терминологии ZF2 маршрутизатор не может «завершаться» на этом маршруте и продолжает поиск соответствия в child_routes , что не удастся, и ошибка 404 будет повышена.

    Поэтому, изменив значение параметра may_terminate в приведенном выше примере, мы можем изменить маршруты, на которые можно сопоставить.

    may_terminate = true

    • Главная
    • главная / Foo

    may_terminate = false

    • главная / Foo