From 5fa247120dbf6210a349858337f7d316e5b5e917 Mon Sep 17 00:00:00 2001 From: Thomas LE BERRE Date: Fri, 3 Jan 2020 01:11:35 +0100 Subject: [PATCH 1/3] PSR-12 --- .travis.yml | 2 -- composer.json | 15 +++++++++------ phpcs.xml | 4 ++-- src/Factory/DecoratedResponseFactory.php | 1 + src/Factory/DecoratedServerRequestFactory.php | 1 + src/Factory/DecoratedUriFactory.php | 1 + src/Response.php | 3 ++- src/ServerRequest.php | 1 + src/Uri.php | 1 + tests/Assets/PhpFunctionOverrides.php | 1 + .../LaminasDiactorosPsr17FactoryProvider.php | 1 + tests/Providers/NyholmPsr17FactoryProvider.php | 1 + tests/Providers/Psr17FactoryProvider.php | 1 + .../ZendDiactorosPsr17FactoryProvider.php | 1 + tests/Psr7Integration/Laminas/ResponseTest.php | 1 + .../Psr7Integration/Laminas/ServerRequestTest.php | 1 + tests/Psr7Integration/Laminas/UriTest.php | 1 + tests/Psr7Integration/Nyholm/ResponseTest.php | 1 + .../Psr7Integration/Nyholm/ServerRequestTest.php | 1 + tests/Psr7Integration/Nyholm/UriTest.php | 1 + tests/Psr7Integration/Zend/ResponseTest.php | 1 + tests/Psr7Integration/Zend/ServerRequestTest.php | 1 + tests/Psr7Integration/Zend/UriTest.php | 1 + tests/ResponseTest.php | 5 +++-- tests/ServerRequestTest.php | 1 + tests/TestCase.php | 1 + tests/UriTest.php | 1 + tests/bootstrap.php | 1 + 28 files changed, 39 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index ec57673..16c7406 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,5 @@ language: php -dist: trusty - matrix: include: - php: 7.2 diff --git a/composer.json b/composer.json index e1ef9c8..af3ad91 100644 --- a/composer.json +++ b/composer.json @@ -28,21 +28,21 @@ } ], "require": { + "php": "^7.2", + "ext-SimpleXML": "*", "ext-fileinfo": "*", "ext-json": "*", "ext-libxml": "*", - "ext-SimpleXML": "*", - "php": "^7.2", "psr/http-factory": "^1.0", "psr/http-message": "^1.0" }, "require-dev": { + "laminas/laminas-diactoros": "^2.0", "nyholm/psr7": "^1.0", + "php-http/psr7-integration-tests": "dev-master", "phpstan/phpstan": "^0.10.3", "phpunit/phpunit": "^8.5", - "php-http/psr7-integration-tests": "dev-master", - "squizlabs/php_codesniffer": "^3.3.2", - "laminas/laminas-diactoros": "^2.0" + "squizlabs/php_codesniffer": "^3.5" }, "provide": { "psr/http-factory": "^1.0" @@ -66,5 +66,8 @@ "phpunit": "phpunit", "phpcs": "phpcs", "phpstan": "phpstan analyse src --memory-limit=-1" - } + }, + "config": { + "sort-packages": true + } } diff --git a/phpcs.xml b/phpcs.xml index 72e9907..07c6f0f 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -8,10 +8,10 @@ - + src tests - \ No newline at end of file + diff --git a/src/Factory/DecoratedResponseFactory.php b/src/Factory/DecoratedResponseFactory.php index 8b69d9c..1838076 100644 --- a/src/Factory/DecoratedResponseFactory.php +++ b/src/Factory/DecoratedResponseFactory.php @@ -1,4 +1,5 @@ expectException(RuntimeException::class); - $data = ['foo' => 'bar'.chr(233)]; - $this->assertEquals('bar'.chr(233), $data['foo']); + $data = ['foo' => 'bar' . chr(233)]; + $this->assertEquals('bar' . chr(233), $data['foo']); foreach ($this->factoryProviders as $factoryProvider) { /** @var Psr17FactoryProvider $provider */ diff --git a/tests/ServerRequestTest.php b/tests/ServerRequestTest.php index 27b2524..b24138f 100644 --- a/tests/ServerRequestTest.php +++ b/tests/ServerRequestTest.php @@ -1,4 +1,5 @@ Date: Fri, 3 Jan 2020 01:39:11 +0100 Subject: [PATCH 2/3] Fully-qualified function calls --- composer.json | 1 + phpunit.xml.dist | 2 +- src/Response.php | 18 ++++++++++++++++++ src/ServerRequest.php | 16 ++++++++++++++++ .../Psr7Integration/Laminas/ResponseTest.php | 3 +++ .../Laminas/ServerRequestTest.php | 3 +++ tests/Psr7Integration/Laminas/UriTest.php | 3 +++ tests/Psr7Integration/Nyholm/ResponseTest.php | 3 +++ .../Nyholm/ServerRequestTest.php | 3 +++ tests/Psr7Integration/Nyholm/UriTest.php | 3 +++ tests/Psr7Integration/Zend/ResponseTest.php | 3 +++ .../Zend/ServerRequestTest.php | 3 +++ tests/Psr7Integration/Zend/UriTest.php | 3 +++ tests/ResponseTest.php | 9 +++++++++ tests/ServerRequestTest.php | 9 ++++++--- tests/UriTest.php | 2 ++ tests/bootstrap.php | 19 +++++++++++++++++-- 17 files changed, 97 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index af3ad91..3241463 100644 --- a/composer.json +++ b/composer.json @@ -37,6 +37,7 @@ "psr/http-message": "^1.0" }, "require-dev": { + "adriansuter/php-autoload-override": "v0.1-beta", "laminas/laminas-diactoros": "^2.0", "nyholm/psr7": "^1.0", "php-http/psr7-integration-tests": "dev-master", diff --git a/phpunit.xml.dist b/phpunit.xml.dist index d8dcc8f..71290c3 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,6 +1,6 @@ diff --git a/src/Response.php b/src/Response.php index b0ff8d7..f1e207d 100644 --- a/src/Response.php +++ b/src/Response.php @@ -16,6 +16,24 @@ use Psr\Http\Message\StreamInterface; use RuntimeException; +use function basename; +use function in_array; +use function is_array; +use function is_resource; +use function is_string; +use function json_encode; +use function json_last_error; +use function json_last_error_msg; +use function mime_content_type; +use function preg_replace; +use function rawurlencode; +use function sprintf; +use function stream_get_meta_data; +use function strlen; +use function substr; + +use const JSON_ERROR_NONE; + class Response implements ResponseInterface { /** diff --git a/src/ServerRequest.php b/src/ServerRequest.php index 111b99a..310bcd5 100644 --- a/src/ServerRequest.php +++ b/src/ServerRequest.php @@ -16,6 +16,22 @@ use Psr\Http\Message\UriInterface; use RuntimeException; +use function array_merge; +use function count; +use function explode; +use function is_array; +use function is_null; +use function is_object; +use function json_decode; +use function libxml_clear_errors; +use function libxml_disable_entity_loader; +use function libxml_use_internal_errors; +use function parse_str; +use function preg_split; +use function property_exists; +use function simplexml_load_string; +use function strtolower; + class ServerRequest implements ServerRequestInterface { /** diff --git a/tests/Psr7Integration/Laminas/ResponseTest.php b/tests/Psr7Integration/Laminas/ResponseTest.php index 8b03806..db3ef94 100644 --- a/tests/Psr7Integration/Laminas/ResponseTest.php +++ b/tests/Psr7Integration/Laminas/ResponseTest.php @@ -15,6 +15,9 @@ use Slim\Http\Factory\DecoratedResponseFactory; use Slim\Tests\Http\Providers\LaminasDiactorosPsr17FactoryProvider; +use function define; +use function defined; + class ResponseTest extends ResponseIntegrationTest { public static function setUpBeforeClass(): void diff --git a/tests/Psr7Integration/Laminas/ServerRequestTest.php b/tests/Psr7Integration/Laminas/ServerRequestTest.php index 5cdffc8..5920410 100644 --- a/tests/Psr7Integration/Laminas/ServerRequestTest.php +++ b/tests/Psr7Integration/Laminas/ServerRequestTest.php @@ -15,6 +15,9 @@ use Slim\Http\Factory\DecoratedServerRequestFactory; use Slim\Tests\Http\Providers\LaminasDiactorosPsr17FactoryProvider; +use function define; +use function defined; + class ServerRequestTest extends ServerRequestIntegrationTest { public static function setUpBeforeClass(): void diff --git a/tests/Psr7Integration/Laminas/UriTest.php b/tests/Psr7Integration/Laminas/UriTest.php index 2419c09..6dee255 100644 --- a/tests/Psr7Integration/Laminas/UriTest.php +++ b/tests/Psr7Integration/Laminas/UriTest.php @@ -15,6 +15,9 @@ use Slim\Http\Factory\DecoratedUriFactory; use Slim\Tests\Http\Providers\LaminasDiactorosPsr17FactoryProvider; +use function define; +use function defined; + class UriTest extends UriIntegrationTest { public static function setUpBeforeClass(): void diff --git a/tests/Psr7Integration/Nyholm/ResponseTest.php b/tests/Psr7Integration/Nyholm/ResponseTest.php index ab9227d..6dda21b 100644 --- a/tests/Psr7Integration/Nyholm/ResponseTest.php +++ b/tests/Psr7Integration/Nyholm/ResponseTest.php @@ -15,6 +15,9 @@ use Slim\Http\Factory\DecoratedResponseFactory; use Slim\Tests\Http\Providers\NyholmPsr17FactoryProvider; +use function define; +use function defined; + class ResponseTest extends ResponseIntegrationTest { public static function setUpBeforeClass(): void diff --git a/tests/Psr7Integration/Nyholm/ServerRequestTest.php b/tests/Psr7Integration/Nyholm/ServerRequestTest.php index 959782f..079613c 100644 --- a/tests/Psr7Integration/Nyholm/ServerRequestTest.php +++ b/tests/Psr7Integration/Nyholm/ServerRequestTest.php @@ -15,6 +15,9 @@ use Slim\Http\Factory\DecoratedServerRequestFactory; use Slim\Tests\Http\Providers\NyholmPsr17FactoryProvider; +use function define; +use function defined; + class ServerRequestTest extends ServerRequestIntegrationTest { public static function setUpBeforeClass(): void diff --git a/tests/Psr7Integration/Nyholm/UriTest.php b/tests/Psr7Integration/Nyholm/UriTest.php index 0c92a82..950eadf 100644 --- a/tests/Psr7Integration/Nyholm/UriTest.php +++ b/tests/Psr7Integration/Nyholm/UriTest.php @@ -15,6 +15,9 @@ use Slim\Http\Factory\DecoratedUriFactory; use Slim\Tests\Http\Providers\NyholmPsr17FactoryProvider; +use function define; +use function defined; + class UriTest extends UriIntegrationTest { public static function setUpBeforeClass(): void diff --git a/tests/Psr7Integration/Zend/ResponseTest.php b/tests/Psr7Integration/Zend/ResponseTest.php index fa75549..e4d05b6 100644 --- a/tests/Psr7Integration/Zend/ResponseTest.php +++ b/tests/Psr7Integration/Zend/ResponseTest.php @@ -15,6 +15,9 @@ use Slim\Tests\Http\Providers\ZendDiactorosPsr17FactoryProvider; use Zend\Diactoros\StreamFactory; +use function define; +use function defined; + class ResponseTest extends ResponseIntegrationTest { public static function setUpBeforeClass(): void diff --git a/tests/Psr7Integration/Zend/ServerRequestTest.php b/tests/Psr7Integration/Zend/ServerRequestTest.php index de5900b..d15a040 100644 --- a/tests/Psr7Integration/Zend/ServerRequestTest.php +++ b/tests/Psr7Integration/Zend/ServerRequestTest.php @@ -15,6 +15,9 @@ use Slim\Tests\Http\Providers\ZendDiactorosPsr17FactoryProvider; use Zend\Diactoros\StreamFactory; +use function define; +use function defined; + class ServerRequestTest extends ServerRequestIntegrationTest { public static function setUpBeforeClass(): void diff --git a/tests/Psr7Integration/Zend/UriTest.php b/tests/Psr7Integration/Zend/UriTest.php index 3a6ec2b..2976d23 100644 --- a/tests/Psr7Integration/Zend/UriTest.php +++ b/tests/Psr7Integration/Zend/UriTest.php @@ -15,6 +15,9 @@ use Slim\Tests\Http\Providers\ZendDiactorosPsr17FactoryProvider; use Zend\Diactoros\StreamFactory; +use function define; +use function defined; + class UriTest extends UriIntegrationTest { public static function setUpBeforeClass(): void diff --git a/tests/ResponseTest.php b/tests/ResponseTest.php index 3e8e9f3..cb3ebb2 100644 --- a/tests/ResponseTest.php +++ b/tests/ResponseTest.php @@ -16,6 +16,15 @@ use Slim\Http\Response; use Slim\Tests\Http\Providers\Psr17FactoryProvider; +use function chr; +use function fclose; +use function fopen; +use function is_resource; +use function json_decode; +use function property_exists; + +use const JSON_HEX_AMP; + class ResponseTest extends TestCase { public function testDisableSetter() diff --git a/tests/ServerRequestTest.php b/tests/ServerRequestTest.php index b24138f..b672516 100644 --- a/tests/ServerRequestTest.php +++ b/tests/ServerRequestTest.php @@ -14,6 +14,9 @@ use RuntimeException; use Slim\Http\Factory\DecoratedServerRequestFactory; use Slim\Tests\Http\Providers\Psr17FactoryProvider; +use stdClass; + +use function property_exists; class ServerRequestTest extends TestCase { @@ -833,7 +836,7 @@ public function testGetParsedBodyXml() ->withHeader('Content-Type', 'application/hal+xml;charset=utf8') ->withBody($stream); - /** @var \stdClass $obj */ + /** @var stdClass $obj */ $obj = $request->getParsedBody(); $this->assertEquals('John', $obj->name); } @@ -854,7 +857,7 @@ public function testGetParsedBodyStructuredSuffixXml() ->withHeader('Content-Type', 'application/xml;charset=utf8') ->withBody($stream); - /** @var \stdClass $obj */ + /** @var stdClass $obj */ $obj = $request->getParsedBody(); $this->assertEquals('John', $obj->name); } @@ -875,7 +878,7 @@ public function testGetParsedBodyXmlWithTextXMLMediaType() ->withHeader('Content-Type', 'text/xml') ->withBody($stream); - /** @var \stdClass $obj */ + /** @var stdClass $obj */ $obj = $request->getParsedBody(); $this->assertEquals('John', $obj->name); } diff --git a/tests/UriTest.php b/tests/UriTest.php index ee6ea81..39d04d1 100644 --- a/tests/UriTest.php +++ b/tests/UriTest.php @@ -14,6 +14,8 @@ use Slim\Http\Factory\DecoratedUriFactory; use Slim\Tests\Http\Providers\Psr17FactoryProvider; +use function property_exists; + class UriTest extends TestCase { public function testDisableSetter() diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 37186e1..875acb9 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -8,6 +8,21 @@ declare(strict_types=1); -require __DIR__ . '/../vendor/autoload.php'; +use AdrianSuter\Autoload\Override\Override; +use Slim\Http\ServerRequest; -require __DIR__ . '/Assets/PhpFunctionOverrides.php'; +$classLoader = require __DIR__ . '/../vendor/autoload.php'; + +//require __DIR__ . '/Assets/PhpFunctionOverrides.php'; + +Override::apply($classLoader, [ + ServerRequest::class => [ + 'preg_split' => function (string $pattern, string $subject, int $limit = -1, int $flags = 0) { + if (isset($GLOBALS['preg_split_return'])) { + return $GLOBALS['preg_split_return']; + } + + return preg_split($pattern, $subject, $limit, $flags); + } + ] +]); From cb10cf4126bc349c8a9e9ea1c4b8edb007428cfe Mon Sep 17 00:00:00 2001 From: Thomas LE BERRE Date: Fri, 3 Jan 2020 01:39:38 +0100 Subject: [PATCH 3/3] Travis optimisation --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 16c7406..634a854 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,10 +15,10 @@ before_script: - composer install -n script: +- if [[ "$ANALYSIS" != 'true' ]]; then vendor/bin/phpunit ; fi - if [[ "$ANALYSIS" == 'true' ]]; then vendor/bin/phpunit --coverage-clover clover.xml ; fi -- vendor/bin/phpunit -- vendor/bin/phpcs -- vendor/bin/phpstan analyse src +- if [[ "$ANALYSIS" == 'true' ]]; then vendor/bin/phpcs ; fi +- if [[ "$ANALYSIS" == 'true' ]]; then vendor/bin/phpstan analyse src ; fi after_success: - if [[ "$ANALYSIS" == 'true' ]]; then vendor/bin/php-coveralls --coverage_clover=clover.xml -v ; fi