ptlis / conneg
内容协商工具。
v4.0.0
2015-08-31 20:03 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- pdepend/pdepend: ~2.0
- phploc/phploc: ~2.0
- phpmd/phpmd: ~2.2
- phpunit/phpunit: ~4.5
- sebastian/phpcpd: ~2.0
- squizlabs/php_codesniffer: ~2.0
This package is auto-updated.
Last update: 2024-09-11 20:52:24 UTC
README
PHP的内容协商
这个与框架无关的库提供了工具,允许你在应用程序中支持内容协商。
支持在HTTP头中的Accept、Accept-Charset、Accept-Encoding和Accept-Language字段上进行协商。
安装
使用composer
$ composer require ptlis/conneg:~4.0.0
使用方法
在PSR-7项目中
如果你的应用程序支持PSR-7,那么通过ptlis/psr7-conneg提供的中间件来获取内容协商是最简单的方式。
在非PSR-7项目中
首先创建一个协商实例。这提供了一些方法来对客户端和服务器首选项进行协商。
use ptlis\ConNeg\Negotiation; $negotiation = new Negotiation();
在大多数情况下,你的应用程序只需要关注最佳匹配,为了获取这些,我们可以使用*Best()
方法。
例如,决定是否提供JSON或XML(优先选择JSON)的协商可能会是这样的
$bestMime = $negotiation->mimeBest( $_SERVER['ACCEPT'], 'application/json;q=1,application/xml;q=0.75' );
这将返回服务器首选项中指定最佳匹配MIME类型的字符串表示,例如'application/json'。
通过使用适当的方法(languageBest、encodingBest和charsetBest)可以进行语言、编码和字符集的协商。
注意:服务器首选项按照文档中描述的编码方式进行字符串编码。
有关更复杂示例的详细信息,请参阅详细使用文档。
文档
集成
- 通过ptlis/psr7-conneg包使用PSR-7,包含支持中间件的
- 通过ptlis/conneg-bundle捆绑包使用Symfony2。
贡献
你可以通过向问题跟踪器提交问题、改进文档、将库集成到你选择的框架中或提交拉取请求来做出贡献。对于拉取请求,我更希望保持代码风格和测试覆盖率,但我愿意解决任何可能出现的小问题,以便请求可以合并。
待办事项
- 基于时间的协商?请参阅RFC 7089