Zend Expressive 加载配置路由
zend expressive 已经实现了全面的模块化结构,按照官方教程,他的路由是写在 config/routes.php 文件里,这样的话路由并不是模块化的,通过 delegators 可以将路由写在每个模块的 ConfigProvider.php 里面。
首先需要在 ConfigProvider.php 的 dependencies 加载 delegators,额外添加:
'invokables' => [ Handler\LogoutHandler::class => Handler\LogoutHandler::class, ], 'factories' => [ Handler\HomePageHandler::class => Handler\HomePageHandlerFactory::class, ContactHandler::class => function (ContainerInterface $container) { $template = $container->get(TemplateRendererInterface::class); return new ContactHandler($template); }, ], 'delegators' => [ \Zend\Expressive\Application::class => [ \Zend\Expressive\Container\ApplicationConfigInjectionDelegator::class, ], ],
然后在配置项添加 routes:
'dependencies' => $this->getDependencies(), 'templates' => $this->getTemplates(), 'routes' => [ [ 'path' => '/contact', 'middleware' => ContactHandler::class, 'allowed_methods' => ['GET'], 'name' => 'contact', 'options' => [], ] ],
factory 可以直接在 ConfigProvider.php 里写 function,这样可以少建立一些 factory 文件
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论