proteins / negotiation
A module for handling Content Negotiation
1.0.3
2019-05-28 14:29 UTC
Requires
- php: ^7.2
This package is auto-updated.
Last update: 2024-10-29 05:46:52 UTC
README
Protein | Negotiation
A module for handling Content Negotiation.
See Reference : RFC 7231
Install
composer require proteins/negotiation
Require the class via :
use Proteins\Negotiation;
Get best match between need and offerings
Note: You can use
*
as wildcards for matching a family of choices.
$need = 'image/*;q=0.9,*/*;q=0.2'; $offer = 'text/html,svg/xml,image/svg+xml'; echo Negotiation::bestMatch($need,$offer);
image/svg+xml
Preferred and best match
Negotiation class automatically orders by priority based on q
parameter.
$negotiatior = new Negotiation('en-US;q=0.3,it,en;q=0.4,es;q=0.9,de');
You can obtain the preferred response via the preferred
method.
echo $negotiatior->preferred();
it
Or get the best match against another RFC7231 query
echo $negotiatior->best('es,en-US');
es
false
will be returned if no match can be found.