ZF2 で、別のモジュールからのルートの子としてルートを追加するにはどうすればよいですか? どこかでイベントにフックする方法があると思いますか?
たとえば、モジュール A は のルートを定義し/foo
ます。モジュール B では、「foo」ルートの子としてルートを/foo/bar
作成して、ルートを追加したいと思います。/bar
ZF2 で、別のモジュールからのルートの子としてルートを追加するにはどうすればよいですか? どこかでイベントにフックする方法があると思いますか?
たとえば、モジュール A は のルートを定義し/foo
ます。モジュール B では、「foo」ルートの子としてルートを/foo/bar
作成して、ルートを追加したいと思います。/bar
説明しようと思いましたが、例の方が良いかもしれません
モジュールA
/parent
の子ルートを持つルートを提供します/parent/foo
// routes
'router' => array(
'routes' => array(
'parent' => array(
'type' => 'Literal',
'may_terminate' => true,
'options' => array(
'route' => '/parent',
'defaults' => array(
'__NAMESPACE__' => __NAMESPACE__ . '\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'child_routes' => array(
'foo' => array(
'type' => 'Literal',
'options' => array(
'route' => '/foo'
'defaults' => array(
'__NAMESPACE__' => 'ModuleA\Controller',
'controller' => 'Foo',
'action' => 'index',
),
),
),
),
),
),
),
モジュール B
の子ルートを追加します/parent/bar
// routes
'router' => array(
'routes' => array(
'parent' => array(
'child_routes' => array(
'bar' => array(
'type' => 'Literal',
'options' => array(
'route' => '/bar'
'defaults' => array(
'__NAMESPACE__' => 'ModuleB\Controller',
'controller' => 'Bar',
'action' => 'index',
),
),
),
),
),
),
),
ModuleB のルート定義は、アプリケーションがモジュール構成をロードするときに ModuleA のルート定義とマージされ、最終的に /foo と /bar が /parent の子として作成され、両方がそれぞれのモジュール コントローラーを指します。