Change to comply negotiation:^2.0.0

This commit is contained in:
Benoît Burnichon
2015-08-17 17:32:16 +02:00
parent 5c1f32f8af
commit 54913d5e79
4 changed files with 14 additions and 16 deletions

View File

@@ -53,7 +53,7 @@ return call_user_func(function ($environment = PhraseaApplication::ENV_PROD) {
$priorities = array('application/json', 'application/yaml', 'text/yaml', 'text/javascript', 'application/javascript');
foreach (\API_V1_adapter::$extendedContentTypes['json'] as $priorities[]);
foreach (\API_V1_adapter::$extendedContentTypes['yaml'] as $priorities[]);
$format = $app['format.negociator']->getBest($request->headers->get('accept', 'application/json') ,$priorities);
$format = $app['negotiator']->getBest($request->headers->get('accept', 'application/json') ,$priorities);
// throw unacceptable http error if API can not handle asked format
if (null === $format) {

View File

@@ -38,8 +38,8 @@ class ContentNegotiationSubscriber implements EventSubscriberInterface
public function onKernelRequest(GetResponseEvent $event)
{
$priorities = array('text/html', 'application/json', '*/*');
$format = $this->app['format.negociator']->getBest($event->getRequest()->headers->get('accept', '*/*'), $priorities);
$priorities = array('text/html', 'application/json');
$format = $this->app['negotiator']->getBest($event->getRequest()->headers->get('accept', '*/*'), $priorities);
if (null === $format) {
$this->app->abort(406, 'Not acceptable');

View File

@@ -11,7 +11,8 @@
namespace Alchemy\Phrasea\Core\Provider;
use Negotiation\FormatNegotiator;
use Negotiation\CharsetNegotiator;
use Negotiation\EncodingNegotiator;
use Negotiation\LanguageNegotiator;
use Negotiation\Negotiator;
use Silex\Application;
@@ -21,15 +22,17 @@ class ContentNegotiationServiceProvider implements ServiceProviderInterface
{
public function register(Application $app)
{
$app['negociator'] = $app->share(function ($app) {
$app['negotiator'] = $app->share(function () {
return new Negotiator();
});
$app['format.negociator'] = $app->share(function ($app) {
return new FormatNegotiator();
$app['charset.negotiator'] = $app->share(function () {
return new CharsetNegotiator();
});
$app['langage.negociator'] = $app->share(function ($app) {
$app['encoding.negotiator'] = $app->share(function () {
return new EncodingNegotiator();
});
$app['language.negotiator'] = $app->share(function () {
return new LanguageNegotiator();
});
}

View File

@@ -12,17 +12,12 @@ class classContentNegotiationServiceProviderTest extends ServiceProviderTestCase
return array(
array(
'Alchemy\Phrasea\Core\Provider\ContentNegotiationServiceProvider',
'negociator',
'negotiator',
'Negotiation\Negotiator',
),
array(
'Alchemy\Phrasea\Core\Provider\ContentNegotiationServiceProvider',
'format.negociator',
'Negotiation\FormatNegotiator'
),
array(
'Alchemy\Phrasea\Core\Provider\ContentNegotiationServiceProvider',
'langage.negociator',
'language.negotiator',
'Negotiation\LanguageNegotiator'
)
);