razzzila-dev/zf3-oldstyle-router

dev-master 2020-03-30 11:19 UTC

This package is auto-updated.

Last update: 2024-09-29 05:36:09 UTC


README

GitHub license Ask Me Anything ! Contributions welcome

从 ZF3 中移除了使用请求路径查找控制器和动作的路由器。就我个人而言,我认为这是好事,你应该更明确、更严格地指定路由。但当我们从 ZF1 逐步迁移到 ZF3 的代码库时,我们仍然面临问题,尤其是在第一步我们不想重构路径。

这就是解决方案——准备就绪的“旧式”路由器,可以自动检测类和动作是否存在,并运行它们。此外,它还可以检测查询中的参数,并允许像以前一样使用它们(从请求中调用param方法)。

安装

包安装

使用 Composer

将工作目录更改到项目根文件夹并运行

composer require razzzila-dev/zf3-oldstyle-router

用法

为了配置应用程序以使用此路由器,我们必须在路由器配置中指定它。为此,打开您的应用程序配置文件module.config.php,并指定此路由器

...

use Zend\Router\RouteInvokableFactory;
use Application\Router\Http\OldStyle as OldStyleRouter;
use Application\Controller\IndexController;

return [
    'router' => [
        'routes' => [
            'default' => [
                'type' => OldStyle::class,
                'options' => [
                    'route'    => '/[:controller[/:action[/]]]',
                    'defaults' => [
                        'controller' => IndexController::class,
                        'action'     => 'index',
                    ]
                ],
            ],
        ],
    ],
    
    'service_manager' => [
        'factories' => [
            OldStyleRouter::class  => RouteInvokableFactory::class,
        ]
    ]
];

在“默认”部分中,您可以找到“控制器”和“动作”参数。在这里,您可以指定一个回退控制器和动作,以防请求中没有找到控制器和动作。要指定将用于搜索的模块控制器,您可以使用“模块”选项。默认情况下,这是“Application”模块,这意味着对于请求“/index/index”,我们将搜索并触发“Application\Controller\IndexController@indexAction”。

许可证

MIT