Change to comply negotiation:^2.0.0

This commit is contained in:
Benoît Burnichon
2015-08-17 17:32:16 +02:00
parent a0f69cd213
commit 0db32e35b8
4 changed files with 13 additions and 19 deletions

View File

@@ -60,7 +60,7 @@ return call_user_func(function ($environment = PhraseaApplication::ENV_PROD) {
$request->setFormat(Result::FORMAT_JSONP_EXTENDED, V1::$extendedContentTypes['jsonp']);
$request->setFormat(Result::FORMAT_JSONP, array('text/javascript', 'application/javascript'));
$format = $app['format.negotiator']->getBest(
$format = $app['negotiator']->getBest(
$request->headers->get('accept', 'application/json'),
array_merge(
['application/json', 'application/yaml', 'text/yaml', 'text/javascript', 'application/javascript'],

View File

@@ -14,11 +14,7 @@ namespace Alchemy\Phrasea\Core\Event\Subscriber;
use Alchemy\Phrasea\Application;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
class ContentNegotiationSubscriber implements EventSubscriberInterface
{
@@ -38,8 +34,8 @@ class ContentNegotiationSubscriber implements EventSubscriberInterface
public function onKernelRequest(GetResponseEvent $event)
{
$priorities = array('text/html', 'application/json', '*/*');
$format = $this->app['format.negotiator']->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['negotiator'] = $app->share(function ($app) {
$app['negotiator'] = $app->share(function () {
return new Negotiator();
});
$app['format.negotiator'] = $app->share(function ($app) {
return new FormatNegotiator();
$app['charset.negotiator'] = $app->share(function () {
return new CharsetNegotiator();
});
$app['langage.negotiator'] = $app->share(function ($app) {
$app['encoding.negotiator'] = $app->share(function () {
return new EncodingNegotiator();
});
$app['language.negotiator'] = $app->share(function () {
return new LanguageNegotiator();
});
}

View File

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