This fixes#15043
The issue is that browsers like "text/html,...,*/*;q=0.8" (see for
instance https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation/List_of_default_Accept_values
)
Without this commit we end up with an array of accepted type like
`("text/html", "*/*;q=0.8)` so when we then check if the array contains
`*/*` the check fails, and we return a 406 even though the client is
able to get the response.
This commit fixes it by removing the `;q=0.8` part.
(Ideally we should not just discard that part, we should extract that
value, and order by it. See
https://developer.mozilla.org/en-US/docs/Glossary/Quality_values for
more info about that. However this could be done in a subsequent PR:
this already fixes the 406 error, which is pretty blocking)
* Set PHP 7.1.3 required version
I've tried to specify ^7.0 version at first, but main package which is
symfony/framework-bundle@v4.4.8 requires PHP ^7.1.3.
* Bump Symfony FrameworkBundle to ^4.4.8
Current Symfony Framework stable version is v5.0.8, but I guess it
requires significant codebase upgrade, so I've sticked with 4.4.8 which
shouldn't cause any breaking changes. Old requirement was ^3.3|^4.1
which compatible with 4.4.8.
* Bump PHPUnit version to ^7.0
PHPUnit 8.x version required PHP ^7.2, so I'm setting 7.x version to
support PHP 7.1.
There is new way to specify Kernel class, related PR:
https://github.com/symfony/symfony/pull/22668
* Bump PHP CS Fixer version to ^2.16.3
Configuration and all renamed rules fixed.
Config file renamed to .php_cs.dist as recommended in migration guide.
Migration guide from 1.x to 2.x:
https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/UPGRADE.md#config-file
* Remove PHP_CodeSniffer package
Second linter doesn't make sense. I think Symfony user would prefer
PHP CS Fixer over PHP_CodeSniffer because first one maintained by Symfony
members.
* Remove satooshi/php-coveralls package from Composer
This package is abandoned and Coveralls recommends to install it directly
in Travis-CI task script.
* Update Travic-CI config
I've changed test versions to PHP 7.1.3 and 7.2. PHPUnit generates
coverage report in report/logs/clover.xml file. Then PHP CS Fixer runs
with --dry-run option to not override anything just to show coding style
errors.
* Add basic Coveralls config
This is basic recommended config for a PHP based project.
* Add symfony/yaml package
This package was part of satooshi/php-coveralls, now it should be
defined as dev dependency.
* Do not commit composer.lock
I think committed composer.lock can cause CI errors while tests on fresh
installs are better.
* Remove confusing Ruby comment
* Fix problem with clients, that put charset in content type header.
With this fix header "Content-Type: application/json; charset=utf-8" working same as "Content-Type: application/json" for parse input data
* Fix code style, add $consumes length check.
* Add isContentTypeAllowed static method and tests
* Fix old tests
Right now serializer doesn't support anything beside json and xml.
Call tests with application/json instead of form data.
Co-authored-by: Yuriy Belenko <yura-bely@mail.ru>
* Removed commented code
* Input validation is now supported as strict JSON validation
* [PHP][Symfony] Improve the implementation
Closes#6614
* Generated code is tested to assure it compiles and updated README to dynamically load dependencies via composer
* Updated shell script because shippable tests were failing