rollerworks / route-autofill-bundle
RouteAutofillBundle可以在生成时自动填充缺失的路由参数
Requires
- php: ^7.1
- symfony/framework-bundle: ^4.4 || ^5.0
- symfony/routing: ^4.4 || ^5.0
Requires (Dev)
- phpunit/phpunit: ^7.2.7 || ^8.4.3
- symfony/phpunit-bridge: ^4.4 || ^5.0
This package is auto-updated.
Last update: 2021-08-21 09:56:10 UTC
README
RollerworksRouteAutofillBundle可以帮助生成具有共享前缀的参数的路由。所有更深层级的端点总是具有其前缀的路由参数,因此可以在生成具有相同前缀的路由时重用这些参数。
例如:您当前位于以下路由/webhosting/{account}/ftp/users/
,并希望生成返回到/webhosting/{account}/
的URL。因为当前页面已经为{account}
提供了值,我们可以轻松地重用它。
提示:此技术也适用于主机要求。
但是还有更多,此包还提供了一个RouteRedirectResponse
,以便轻松生成具有路由的重定向响应。
这有什么好处?
有时您无法提供所需的路由参数,或者根本不希望被这些细节所困扰。
此包的主要目的是方便,您始终可以以不同的方式解决这些挑战,但这需要更多的工作。
要求
您需要至少PHP 7.1和Symfony FrameworkBundle。
安装
打开命令行界面,进入您的项目目录并执行以下命令以下载此包的最新稳定版本
$ php composer.phar require rollerworks/route-autowiring-bundle
此命令要求您全局安装Composer,如Composer文档中的安装章节中所述。
基本用法
首先,自动填充路由参数不会自动发生,只有当您使用AutoFilledUrlGenerator
(与Symfony路由系统兼容)时才会提供自动填充。
$container->get(AutoFilledUrlGenerator::class);
注意: RouteRedirectResponse
已经使用了此路由生成器。
其次,您需要为您的路由设置autofill_variables
选项以启用特定参数的自动填充。
注意: 此选项必须为每个路由设置,提供数组或以逗号分隔的字符串(例如account,id
)。
RouteRedirectResponse
RouteRedirectResponse提供直接为路由生成重定向响应的功能
use Rollerworks\Bundle\RouteAutofillBundle\Response\RouteRedirectResponse; // (string $route, array $parameters = [], int $status = 302) return new RouteRedirectResponse('route-name');
就是这样。
Flash消息
此外,您还可以直接在响应中添加Flash消息。
return RouteRedirectResponse::toRoute('route-name') ->withFlash('success', 'translation.id', 'arguments');
当参数为空(null)时,消息作为字符串添加到FlashBag中,否则它是一个如['message' => 'message.id' => ['id' => 200]]
的数组。
翻译和特殊格式化必须在模板中进行。如果需要,可以多次调用withFlash()
方法。
许可
本包的所有内容均采用MIT许可证发布。