libero / content-negotiation-bundle
此包已被废弃,不再维护。没有建议的替代包。
为您的Symfony应用程序添加内容协商
v0.1.0
2018-12-07 14:44 UTC
Requires
- php: ^7.2
- symfony/config: ^3.4 || ^4.0
- symfony/dependency-injection: ^3.4 || ^4.0
- symfony/http-foundation: ^3.4 || ^4.0
- symfony/http-kernel: ^3.4 || ^4.0
- symfony/routing: ^3.4 || ^4.0
- willdurand/negotiation: ^2.3
Requires (Dev)
- libero/coding-standard: ^0.3
- phpstan/phpstan: ^0.10
- phpstan/phpstan-phpunit: ^0.10
- phpunit/phpunit: ^7.2
- psr/log: ^1.0
- symfony/filesystem: ^3.4 || ^4.0
- symfony/framework-bundle: ^3.4 || ^4.0
This package is auto-updated.
Last update: 2020-02-07 21:07:44 UTC
README
这是一个 Symfony 扩展包,通过集成 Negotiation 库,将为您的应用程序添加 内容协商 功能。
入门
使用 Composer 将该包作为依赖项添加
composer require libero/content-negotation-bundle
如果您不使用 Symfony Flex,您需要在应用程序中启用该包。
基于路径的协商
您可以通过配置将协商添加到路径中。
例如,要为精确路径添加XML或JSON以及英语或法语的要求,在其他地方添加纯文本和德语
content_negotiation: formats: - path: ^/path/to/my/page$ priorities: xml|json - path: ^/ priorities: txt locales: - path: ^/path/to/my/page$ priorities: en|fr - path: ^/ priorities: de
formats
和 locales
项目按顺序运行。首先匹配的项目将被使用。
priorities
可以为空,允许在较低级别禁用协商。例如,要求除 /foo
之外的所有地方都使用英语
content_negotiation: formats: - path: ^/foo($|/) priorities: - path: ^/ priorities: en
optional
可设置为 true
以允许回退到后续匹配。例如,要要求除 /foo
之外的所有地方都使用英语,在 /foo
下允许德语或英语
content_negotiation: formats: - path: ^/foo($|/) priorities: de optional: true - path: ^/ priorities: en
路由级别的协商
您可以通过添加 _format
和/或 _locale
的要求在路由级别添加协商。
这些要求必须是一个由竖线分隔的可能性的列表。
例如,要为路由添加XML或JSON以及英语或法语的要求
my_route: path: /path/to/my/page controller: App\Controller\PageController requirements: _format: xml|json _locale: en|fr
路由级别的协商优先于基于路径的协商。
获取帮助
- 在 GitHub 上报告错误或请求功能。
- 在 Libero Community Slack 上提问。
- 阅读 行为准则。