ptlis/conneg

内容协商工具。

v4.0.0 2015-08-31 20:03 UTC

This package is auto-updated.

Last update: 2024-09-11 20:52:24 UTC


README

PHP的内容协商

这个与框架无关的库提供了工具,允许你在应用程序中支持内容协商。

支持在HTTP头中的AcceptAccept-CharsetAccept-EncodingAccept-Language字段上进行协商。

Build Status Code Coverage Scrutinizer Quality Score License Latest Stable Version

安装

使用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)可以进行语言、编码和字符集的协商。

注意:服务器首选项按照文档中描述的编码方式进行字符串编码。

有关更复杂示例的详细信息,请参阅详细使用文档

文档

完整文档

集成

贡献

你可以通过向问题跟踪器提交问题、改进文档、将库集成到你选择的框架中或提交拉取请求来做出贡献。对于拉取请求,我更希望保持代码风格和测试覆盖率,但我愿意解决任何可能出现的小问题,以便请求可以合并。

待办事项

  • 基于时间的协商?请参阅RFC 7089