From 12c98c051953734ce8d739b6dcf4f58f8ab4a5d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danyi=20D=C3=A1vid?= Date: Mon, 9 Jul 2018 01:01:22 +0200 Subject: [PATCH] * expressive version uplift * loslog added --- composer.json | 16 +- composer.lock | 1107 ++++++++++------- config/autoload/loslog.global.php | 28 + config/config.php | 8 + config/container.php | 14 +- config/development.config.php.dist | 3 +- config/pipeline.php | 106 +- config/routes.php | 32 +- data/.gitignore | 1 + deploy.php | 2 +- public/index.php | 19 +- src/App/Action/AbstractAction.php | 48 +- src/App/Action/HomePageAction.php | 13 +- src/App/Action/PingAction.php | 8 +- src/App/Action/StoreAction.php | 4 +- .../Middleware/EventSubscriberMiddleware.php | 27 +- .../EventSubscriberMiddlewareFactory.php | 26 +- src/App/Middleware/PreFlightMiddleware.php | 20 +- 18 files changed, 885 insertions(+), 597 deletions(-) create mode 100644 config/autoload/loslog.global.php diff --git a/composer.json b/composer.json index da546e5..61f64a4 100644 --- a/composer.json +++ b/composer.json @@ -11,18 +11,18 @@ "prefer-stable": true, "require": { "php": "^7.1", - "dasprid/container-interop-doctrine": "^1.0", + "dasprid/container-interop-doctrine": "^1.1", "guzzlehttp/guzzle": "^6.3", - "http-interop/http-middleware": "^0.4.1", + "los/loslog": "^3.1", "roave/security-advisories": "dev-master", - "zendframework/zend-component-installer": "^1.0", + "zendframework/zend-component-installer": "^2.1.1", "zendframework/zend-config-aggregator": "^1.0", "zendframework/zend-eventmanager": "^3.2", - "zendframework/zend-expressive": "^2.0.2", - "zendframework/zend-expressive-fastroute": "^2.0", - "zendframework/zend-expressive-helpers": "^4.0", - "zendframework/zend-http": "^2.6", - "zendframework/zend-json": "^3.0", + "zendframework/zend-expressive": "^3.0.1", + "zendframework/zend-expressive-fastroute": "^3.0", + "zendframework/zend-expressive-helpers": "^5.0", + "zendframework/zend-http": "^2.7", + "zendframework/zend-json": "^3.1", "zendframework/zend-servicemanager": "^3.3", "zendframework/zend-stdlib": "^3.1" }, diff --git a/composer.lock b/composer.lock index 8c08372..aef5832 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "a3208a6bbde4ad00c31e2c599c82f45b", + "content-hash": "f887d48863e41f6fd79fe54033c7fa41", "packages": [ { "name": "container-interop/container-interop", @@ -360,16 +360,16 @@ }, { "name": "doctrine/dbal", - "version": "v2.6.3", + "version": "v2.7.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "e3eed9b1facbb0ced3a0995244843a189e7d1b13" + "reference": "11037b4352c008373561dc6fc836834eed80c3b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/e3eed9b1facbb0ced3a0995244843a189e7d1b13", - "reference": "e3eed9b1facbb0ced3a0995244843a189e7d1b13", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/11037b4352c008373561dc6fc836834eed80c3b5", + "reference": "11037b4352c008373561dc6fc836834eed80c3b5", "shasum": "" }, "require": { @@ -378,9 +378,11 @@ "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^5.4.6", + "doctrine/coding-standard": "^4.0", + "phpunit/phpunit": "^7.0", "phpunit/phpunit-mock-objects": "!=3.2.4,!=3.2.5", - "symfony/console": "2.*||^3.0" + "symfony/console": "^2.0.5||^3.0", + "symfony/phpunit-bridge": "^3.4.5|^4.0.5" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -391,7 +393,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6.x-dev" + "dev-master": "2.7.x-dev" } }, "autoload": { @@ -429,7 +431,7 @@ "persistence", "queryobject" ], - "time": "2017-11-19T13:38:54+00:00" + "time": "2018-04-07T18:44:18+00:00" }, { "name": "doctrine/inflector", @@ -740,16 +742,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.3.0", + "version": "6.3.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699" + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", "shasum": "" }, "require": { @@ -759,7 +761,7 @@ }, "require-dev": { "ext-curl": "*", - "phpunit/phpunit": "^4.0 || ^5.0", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", "psr/log": "^1.0" }, "suggest": { @@ -768,7 +770,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "6.2-dev" + "dev-master": "6.3-dev" } }, "autoload": { @@ -801,7 +803,7 @@ "rest", "web service" ], - "time": "2017-06-22T18:50:49+00:00" + "time": "2018-04-22T15:46:56+00:00" }, { "name": "guzzlehttp/promises", @@ -920,57 +922,72 @@ "time": "2017-03-20T17:10:46+00:00" }, { - "name": "http-interop/http-middleware", - "version": "0.4.1", + "name": "los/loslog", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/http-interop/http-middleware.git", - "reference": "9a801fe60e70d5d608b61d56b2dcde29516c81b9" + "url": "https://github.com/Lansoweb/LosLog.git", + "reference": "a6dc0138f2db721ffa134d495972c20b2da2e7b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/http-interop/http-middleware/zipball/9a801fe60e70d5d608b61d56b2dcde29516c81b9", - "reference": "9a801fe60e70d5d608b61d56b2dcde29516c81b9", + "url": "https://api.github.com/repos/Lansoweb/LosLog/zipball/a6dc0138f2db721ffa134d495972c20b2da2e7b6", + "reference": "a6dc0138f2db721ffa134d495972c20b2da2e7b6", "shasum": "" }, "require": { - "php": ">=5.3.0", - "psr/http-message": "^1.0" + "php": "^7.1", + "psr/container": "^1.0", + "psr/log": "^1.0", + "zendframework/zend-diactoros": "^1.7", + "zendframework/zend-log": "^2.9", + "zendframework/zend-stratigility": "^3.0" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpstan/phpstan": "^0.9.2", + "phpunit/phpunit": "^7.0", + "rollbar/rollbar": "^1.4", + "satooshi/php-coveralls": "^2.0", + "squizlabs/php_codesniffer": "^2.7", + "zendframework/zend-coding-standard": "^1.0" + }, + "suggest": { + "rollbar/rollbar": "Needed if you want to use Rollbar logger" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-develop": "2.0-dev" } }, "autoload": { "psr-4": { - "Interop\\Http\\ServerMiddleware\\": "src/" + "LosMiddleware\\LosLog\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Leandro Silva", + "email": "leandro@leandrosilva.info", + "homepage": "http://leandrosilva.info" } ], - "description": "Common interface for HTTP server-side middleware", + "description": "LosLog provides some log utility", + "homepage": "http://github.com/Lansoweb/LosLog", "keywords": [ - "factory", - "http", - "middleware", - "psr", - "psr-17", - "psr-7", - "request", - "response" + "expressive", + "log", + "los", + "module", + "zf2", + "zf3" ], - "abandoned": "http-interop/http-server-middleware", - "time": "2017-01-14T15:23:42+00:00" + "time": "2018-03-16T13:02:56+00:00" }, { "name": "nikic/fast-route", @@ -1117,36 +1134,189 @@ ], "time": "2016-08-06T14:39:51+00:00" }, + { + "name": "psr/http-server-handler", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-handler.git", + "reference": "439d92054dc06097f2406ec074a2627839955a02" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/439d92054dc06097f2406ec074a2627839955a02", + "reference": "439d92054dc06097f2406ec074a2627839955a02", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side request handler", + "keywords": [ + "handler", + "http", + "http-interop", + "psr", + "psr-15", + "psr-7", + "request", + "response", + "server" + ], + "time": "2018-01-22T17:04:15+00:00" + }, + { + "name": "psr/http-server-middleware", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-middleware.git", + "reference": "ea17eb1fb2c8df6db919cc578451a8013c6a0ae5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/ea17eb1fb2c8df6db919cc578451a8013c6a0ae5", + "reference": "ea17eb1fb2c8df6db919cc578451a8013c6a0ae5", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side middleware", + "keywords": [ + "http", + "http-interop", + "middleware", + "psr", + "psr-15", + "psr-7", + "request", + "response" + ], + "time": "2018-01-22T17:08:31+00:00" + }, + { + "name": "psr/log", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10T12:19:37+00:00" + }, { "name": "roave/security-advisories", "version": "dev-master", "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "1b2f1f59ff8fc933e4d61ee45214ff3228e20c75" + "reference": "0253937ef2720f45fbe421e3ba486587b3080c35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/1b2f1f59ff8fc933e4d61ee45214ff3228e20c75", - "reference": "1b2f1f59ff8fc933e4d61ee45214ff3228e20c75", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0253937ef2720f45fbe421e3ba486587b3080c35", + "reference": "0253937ef2720f45fbe421e3ba486587b3080c35", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "adodb/adodb-php": "<5.20.6", + "adodb/adodb-php": "<5.20.12", "amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/http": "<1.0.1", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.0.15|>=3.1,<3.1.4", + "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.0.15|>=3.1,<3.1.4|>=3.4,<3.4.14|>=3.5,<3.5.17|>=3.6,<3.6.4", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", "codeigniter/framework": "<=3.0.6", "composer/composer": "<=1.0.0-alpha11", "contao-components/mediaelement": ">=2.14.2,<2.21.1", - "contao/core": ">=2,<3.5.32", - "contao/core-bundle": ">=4,<4.4.8", + "contao/core": ">=2,<3.5.35", + "contao/core-bundle": ">=4,<4.4.18|>=4.5,<4.5.8", "contao/listing-bundle": ">=4,<4.4.8", "contao/newsletter-bundle": ">=4,<4.1", "doctrine/annotations": ">=1,<1.2.7", @@ -1159,24 +1329,27 @@ "doctrine/mongodb-odm-bundle": ">=2,<3.0.1", "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1", "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=8,<8.4.5", - "drupal/drupal": ">=8,<8.4.5", + "drupal/core": ">=7,<7.59|>=8,<8.4.8|>=8.5,<8.5.3", + "drupal/drupal": ">=7,<7.59|>=8,<8.4.8|>=8.5,<8.5.3", "erusev/parsedown": "<1.7", "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.3|>=5.4,<5.4.11.3|>=2017.8,<2017.8.1.1|>=2017.12,<2017.12.2.1", "firebase/php-jwt": "<2", "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", + "fuel/core": "<1.8.1", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "guzzlehttp/guzzle": ">=6,<6.2.1|>=4.0.0-rc2,<4.2.4|>=5,<5.3.1", - "illuminate/auth": ">=4,<4.0.99|>=4.1,<4.1.26", + "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", "illuminate/database": ">=4,<4.0.99|>=4.1,<4.1.29", + "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "joomla/session": "<1.3.1", - "laravel/framework": ">=4,<4.0.99|>=4.1,<4.1.29", + "kreait/firebase-php": ">=3.2,<3.8.1", + "laravel/framework": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "magento/magento1ce": ">=1.5.0.1,<1.9.3.2", "magento/magento1ee": ">=1.9,<1.14.3.2", - "magento/magento2ce": ">=2,<2.2", + "magento/product-community-edition": ">=2,<2.2.5", "monolog/monolog": ">=1.8,<1.12", "namshi/jose": "<2.2", "onelogin/php-saml": "<2.10.4", @@ -1185,6 +1358,7 @@ "padraic/humbug_get_contents": "<1.1.2", "pagarme/pagarme-php": ">=0,<3", "paragonie/random_compat": "<2", + "paypal/merchant-sdk-php": "<3.12", "phpmailer/phpmailer": ">=5,<5.2.24", "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", "phpxmlrpc/extras": "<0.6.1", @@ -1192,6 +1366,7 @@ "propel/propel1": ">=1,<=1.7.1", "pusher/pusher-php-server": "<2.2.1", "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9", + "sensiolabs/connect": "<4.2.3", "shopware/shopware": "<5.3.7", "silverstripe/cms": ">=3,<=3.0.11|>=3.1,<3.1.11", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", @@ -1200,23 +1375,26 @@ "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4", "simplesamlphp/simplesamlphp": "<1.15.2", "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", + "slim/slim": "<2.6", "socalnick/scn-social-auth": "<1.15.2", - "squizlabs/php_codesniffer": ">=1,<2.8.1", + "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", "stormpath/sdk": ">=0,<9.9.99", "swiftmailer/swiftmailer": ">=4,<5.4.5", "symfony/dependency-injection": ">=2,<2.0.17", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2", - "symfony/http-foundation": ">=2,<2.3.27|>=2.4,<2.5.11|>=2.6,<2.6.6", + "symfony/http-foundation": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", "symfony/http-kernel": ">=2,<2.3.29|>=2.4,<2.5.12|>=2.6,<2.6.8", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", "symfony/routing": ">=2,<2.0.19", - "symfony/security": ">=2,<2.0.25|>=2.1,<2.1.13|>=2.2,<2.2.9|>=2.3,<2.3.37|>=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8.23,<2.8.25|>=3.2.10,<3.2.12|>=3.3.3,<3.3.5", - "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.6|>=2.8.23,<2.8.25|>=3,<3.0.6|>=3.2.10,<3.2.12|>=3.3.3,<3.3.5", - "symfony/security-csrf": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", - "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/security": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-bundle": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.37|>=3,<3.3.17|>=3.4,<3.4.7|>=4,<4.0.7", + "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-guard": ">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", "symfony/serializer": ">=2,<2.0.11", - "symfony/symfony": ">=2,<2.3.41|>=2.4,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/symfony": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", "symfony/translation": ">=2,<2.0.17", "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", @@ -1230,11 +1408,13 @@ "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4", "willdurand/js-translation-bundle": "<2.1.1", "yiisoft/yii": ">=1.1.14,<1.1.15", - "yiisoft/yii2": "<2.0.14", + "yiisoft/yii2": "<2.0.15", "yiisoft/yii2-bootstrap": "<2.0.4", - "yiisoft/yii2-dev": "<2.0.14", + "yiisoft/yii2-dev": "<2.0.15", + "yiisoft/yii2-elasticsearch": "<2.0.5", "yiisoft/yii2-gii": "<2.0.4", "yiisoft/yii2-jui": "<2.0.4", + "yiisoft/yii2-redis": "<2.0.8", "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", @@ -1272,20 +1452,20 @@ } ], "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", - "time": "2018-03-15T17:53:05+00:00" + "time": "2018-07-04T05:48:21+00:00" }, { "name": "symfony/console", - "version": "v4.0.6", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "555c8dbe0ae9e561740451eabdbed2cc554b6a51" + "reference": "70591cda56b4b47c55776ac78e157c4bb6c8b43f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/555c8dbe0ae9e561740451eabdbed2cc554b6a51", - "reference": "555c8dbe0ae9e561740451eabdbed2cc554b6a51", + "url": "https://api.github.com/repos/symfony/console/zipball/70591cda56b4b47c55776ac78e157c4bb6c8b43f", + "reference": "70591cda56b4b47c55776ac78e157c4bb6c8b43f", "shasum": "" }, "require": { @@ -1305,7 +1485,7 @@ "symfony/process": "~3.4|~4.0" }, "suggest": { - "psr/log": "For using the console logger", + "psr/log-implementation": "For using the console logger", "symfony/event-dispatcher": "", "symfony/lock": "", "symfony/process": "" @@ -1313,7 +1493,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -1340,20 +1520,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2018-02-26T15:55:47+00:00" + "time": "2018-05-31T10:17:53+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.7.0", + "version": "v1.8.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" + "reference": "3296adf6a6454a050679cde90f95350ad604b171" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", + "reference": "3296adf6a6454a050679cde90f95350ad604b171", "shasum": "" }, "require": { @@ -1365,7 +1545,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.8-dev" } }, "autoload": { @@ -1399,118 +1579,25 @@ "portable", "shim" ], - "time": "2018-01-30T19:27:44+00:00" - }, - { - "name": "webimpress/composer-extra-dependency", - "version": "0.2.2", - "source": { - "type": "git", - "url": "https://github.com/webimpress/composer-extra-dependency.git", - "reference": "31fa56391d30f03b1180c87610cbe22254780ad9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webimpress/composer-extra-dependency/zipball/31fa56391d30f03b1180c87610cbe22254780ad9", - "reference": "31fa56391d30f03b1180c87610cbe22254780ad9", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1", - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "composer/composer": "^1.5.2", - "mikey179/vfsstream": "^1.6.5", - "phpunit/phpunit": "^5.7.22 || ^6.4.1", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Webimpress\\ComposerExtraDependency\\Plugin" - }, - "autoload": { - "psr-4": { - "Webimpress\\ComposerExtraDependency\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "description": "Composer plugin to require extra dependencies", - "homepage": "https://github.com/webimpress/composer-extra-dependency", - "keywords": [ - "composer", - "dependency", - "webimpress" - ], - "time": "2017-10-17T17:15:14+00:00" - }, - { - "name": "webimpress/http-middleware-compatibility", - "version": "0.1.4", - "source": { - "type": "git", - "url": "https://github.com/webimpress/http-middleware-compatibility.git", - "reference": "8ed1c2c7523dce0035b98bc4f3a73ca9cd1d3717" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webimpress/http-middleware-compatibility/zipball/8ed1c2c7523dce0035b98bc4f3a73ca9cd1d3717", - "reference": "8ed1c2c7523dce0035b98bc4f3a73ca9cd1d3717", - "shasum": "" - }, - "require": { - "http-interop/http-middleware": "^0.1.1 || ^0.2 || ^0.3 || ^0.4.1 || ^0.5", - "php": "^5.6 || ^7.0", - "webimpress/composer-extra-dependency": "^0.2.2" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3" - }, - "type": "library", - "extra": { - "dependency": [ - "http-interop/http-middleware" - ] - }, - "autoload": { - "files": [ - "autoload/http-middleware.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "description": "Compatibility library for Draft PSR-15 HTTP Middleware", - "homepage": "https://github.com/webimpress/http-middleware-compatibility", - "keywords": [ - "middleware", - "psr-15", - "webimpress" - ], - "abandoned": "psr/http-server-middleware", - "time": "2017-10-17T17:31:10+00:00" + "time": "2018-04-26T10:06:28+00:00" }, { "name": "zendframework/zend-component-installer", - "version": "1.1.1", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/zendframework/zend-component-installer.git", - "reference": "5e9beda3b81d29d4d080b110d67f8c8c44d93605" + "reference": "788b74439fff056b848c47aeb3d8b63cf2fb2161" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-component-installer/zipball/5e9beda3b81d29d4d080b110d67f8c8c44d93605", - "reference": "5e9beda3b81d29d4d080b110d67f8c8c44d93605", + "url": "https://api.github.com/repos/zendframework/zend-component-installer/zipball/788b74439fff056b848c47aeb3d8b63cf2fb2161", + "reference": "788b74439fff056b848c47aeb3d8b63cf2fb2161", "shasum": "" }, "require": { "composer-plugin-api": "^1.0", - "php": "^5.6 || ^7.0" + "php": "^7.1" }, "require-dev": { "composer/composer": "^1.5.2", @@ -1522,8 +1609,8 @@ "type": "composer-plugin", "extra": { "branch-alias": { - "dev-master": "1.1-dev", - "dev-develop": "1.2-dev" + "dev-master": "2.1.x-dev", + "dev-develop": "2.2.x-dev" }, "class": "Zend\\ComponentInstaller\\ComponentInstaller" }, @@ -1544,20 +1631,20 @@ "plugin", "zf" ], - "time": "2018-01-11T15:03:06+00:00" + "time": "2018-03-21T16:53:56+00:00" }, { "name": "zendframework/zend-config-aggregator", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/zendframework/zend-config-aggregator.git", - "reference": "46460b25c09fb572f807a00cf9dfe9c466792a76" + "reference": "2a08547b64119a73b6700bde3301d978258dfcb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-config-aggregator/zipball/46460b25c09fb572f807a00cf9dfe9c466792a76", - "reference": "46460b25c09fb572f807a00cf9dfe9c466792a76", + "url": "https://api.github.com/repos/zendframework/zend-config-aggregator/zipball/2a08547b64119a73b6700bde3301d978258dfcb5", + "reference": "2a08547b64119a73b6700bde3301d978258dfcb5", "shasum": "" }, "require": { @@ -1573,7 +1660,9 @@ "zendframework/zend-servicemanager": "^2.7.7 || ^3.1.1" }, "suggest": { - "zendframework/zend-config": "Allows loading configuration from XML, INI, YAML, and JSON files" + "zendframework/zend-config": "Allows loading configuration from XML, INI, YAML, and JSON files", + "zendframework/zend-config-aggregator-modulemanager": "Allows loading configuration from zend-mvc Module classes", + "zendframework/zend-config-aggregator-parameters": "Allows usage of templated parameters within your configuration" }, "type": "library", "extra": { @@ -1597,20 +1686,20 @@ "config-aggregator", "zf" ], - "time": "2018-02-26T16:46:30+00:00" + "time": "2018-04-04T20:37:31+00:00" }, { "name": "zendframework/zend-diactoros", - "version": "1.7.1", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/zendframework/zend-diactoros.git", - "reference": "bf26aff803a11c5cc8eb7c4878a702c403ec67f1" + "reference": "11c9c1835e60eef6f9234377a480fcec096ebd9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/bf26aff803a11c5cc8eb7c4878a702c403ec67f1", - "reference": "bf26aff803a11c5cc8eb7c4878a702c403ec67f1", + "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/11c9c1835e60eef6f9234377a480fcec096ebd9e", + "reference": "11c9c1835e60eef6f9234377a480fcec096ebd9e", "shasum": "" }, "require": { @@ -1629,11 +1718,22 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev", - "dev-develop": "1.8.x-dev" + "dev-master": "1.8.x-dev", + "dev-develop": "1.9.x-dev", + "dev-release-2.0": "2.0.x-dev" } }, "autoload": { + "files": [ + "src/functions/create_uploaded_file.php", + "src/functions/marshal_headers_from_sapi.php", + "src/functions/marshal_method_from_sapi.php", + "src/functions/marshal_protocol_version_from_sapi.php", + "src/functions/marshal_uri_from_sapi.php", + "src/functions/normalize_server.php", + "src/functions/normalize_uploaded_files.php", + "src/functions/parse_cookie_header.php" + ], "psr-4": { "Zend\\Diactoros\\": "src/" } @@ -1649,34 +1749,34 @@ "psr", "psr-7" ], - "time": "2018-02-26T15:44:50+00:00" + "time": "2018-06-27T18:52:43+00:00" }, { "name": "zendframework/zend-escaper", - "version": "2.5.2", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/zendframework/zend-escaper.git", - "reference": "2dcd14b61a72d8b8e27d579c6344e12c26141d4e" + "reference": "31d8aafae982f9568287cb4dce987e6aff8fd074" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/2dcd14b61a72d8b8e27d579c6344e12c26141d4e", - "reference": "2dcd14b61a72d8b8e27d579c6344e12c26141d4e", + "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/31d8aafae982f9568287cb4dce987e6aff8fd074", + "reference": "31d8aafae982f9568287cb4dce987e6aff8fd074", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^5.6 || ^7.0" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev", - "dev-develop": "2.6-dev" + "dev-master": "2.6.x-dev", + "dev-develop": "2.7.x-dev" } }, "autoload": { @@ -1688,25 +1788,26 @@ "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-escaper", + "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", "keywords": [ + "ZendFramework", "escaper", - "zf2" + "zf" ], - "time": "2016-06-30T19:48:38+00:00" + "time": "2018-04-25T15:48:53+00:00" }, { "name": "zendframework/zend-eventmanager", - "version": "3.2.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/zendframework/zend-eventmanager.git", - "reference": "9d72db10ceb6e42fb92350c0cb54460da61bd79c" + "reference": "a5e2583a211f73604691586b8406ff7296a946dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/9d72db10ceb6e42fb92350c0cb54460da61bd79c", - "reference": "9d72db10ceb6e42fb92350c0cb54460da61bd79c", + "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd", + "reference": "a5e2583a211f73604691586b8406ff7296a946dd", "shasum": "" }, "require": { @@ -1715,7 +1816,7 @@ "require-dev": { "athletic/athletic": "^0.1", "container-interop/container-interop": "^1.1.0", - "phpunit/phpunit": "^6.0.7 || ^5.7.14", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", "zendframework/zend-coding-standard": "~1.0.0", "zendframework/zend-stdlib": "^2.7.3 || ^3.0" }, @@ -1747,53 +1848,58 @@ "events", "zf2" ], - "time": "2017-07-11T19:17:22+00:00" + "time": "2018-04-25T15:33:34+00:00" }, { "name": "zendframework/zend-expressive", - "version": "2.2.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/zendframework/zend-expressive.git", - "reference": "fdbb9028d11b361fbcaddf62e95ca45d25ea9ac6" + "reference": "4ea54ed15906c0e06d5211daf88a00ed36a0df83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-expressive/zipball/fdbb9028d11b361fbcaddf62e95ca45d25ea9ac6", - "reference": "fdbb9028d11b361fbcaddf62e95ca45d25ea9ac6", + "url": "https://api.github.com/repos/zendframework/zend-expressive/zipball/4ea54ed15906c0e06d5211daf88a00ed36a0df83", + "reference": "4ea54ed15906c0e06d5211daf88a00ed36a0df83", "shasum": "" }, "require": { "fig/http-message-util": "^1.1.2", - "http-interop/http-middleware": "^0.4.1", - "php": "^5.6 || ^7.0", + "php": "^7.1", "psr/container": "^1.0", "psr/http-message": "^1.0.1", - "zendframework/zend-diactoros": "^1.3.10", - "zendframework/zend-expressive-router": "^2.4.1", - "zendframework/zend-expressive-template": "^1.0.4", - "zendframework/zend-stratigility": "^2.2.0" + "psr/http-server-middleware": "^1.0", + "zendframework/zend-expressive-router": "^3.0", + "zendframework/zend-expressive-template": "^2.0", + "zendframework/zend-httphandlerrunner": "^1.0.1", + "zendframework/zend-stratigility": "^3.0" }, "conflict": { - "container-interop/container-interop": "<1.2.0" + "container-interop/container-interop": "<1.2.0", + "zendframework/zend-diactoros": "<1.7.1" }, "require-dev": { - "filp/whoops": "^2.1.6 || ^1.1.10", - "malukenho/docheader": "^0.1.5", + "filp/whoops": "^1.1.10 || ^2.1.13", + "malukenho/docheader": "^0.1.6", "mockery/mockery": "^1.0", - "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "phpstan/phpstan": "^0.9.2", + "phpstan/phpstan-strict-rules": "^0.9", + "phpunit/phpunit": "^7.0.1", "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-expressive-aurarouter": "^2.2", - "zendframework/zend-expressive-fastroute": "^2.2", - "zendframework/zend-expressive-zendrouter": "^2.2", - "zendframework/zend-servicemanager": "^3.3 || ^2.7.8" + "zendframework/zend-diactoros": "^1.7.1", + "zendframework/zend-expressive-aurarouter": "^3.0", + "zendframework/zend-expressive-fastroute": "^3.0", + "zendframework/zend-expressive-zendrouter": "^3.0", + "zendframework/zend-servicemanager": "^2.7.8 || ^3.3" }, "suggest": { - "aura/di": "^3.2 to make use of Aura.Di dependency injection container", "filp/whoops": "^2.1 to use the Whoops error handler", - "xtreamwayz/pimple-container-interop": "^1.0 to use Pimple for dependency injection", + "psr/http-message-implementation": "Please install a psr/http-message-implementation to consume Expressive; e.g., zendframework/zend-diactoros", + "zendframework/zend-auradi-config": "^1.0 to use Aura.Di dependency injection container", "zendframework/zend-expressive-helpers": "^3.0 for its UrlHelper, ServerUrlHelper, and BodyParseMiddleware", - "zendframework/zend-expressive-tooling": "For migration and development tools; require it with the --dev flag", + "zendframework/zend-expressive-tooling": "^1.0 for migration and development tools; require it with the --dev flag", + "zendframework/zend-pimple-config": "^1.0 to use Pimple for dependency injection container", "zendframework/zend-servicemanager": "^3.3 to use zend-servicemanager for dependency injection" }, "bin": [ @@ -1802,14 +1908,17 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev", - "dev-develop": "3.0.x-dev" + "dev-master": "3.0.x-dev", + "dev-develop": "3.1.x-dev" }, "zf": { "config-provider": "Zend\\Expressive\\ConfigProvider" } }, "autoload": { + "files": [ + "src/constants.php" + ], "psr-4": { "Zend\\Expressive\\": "src/" } @@ -1818,55 +1927,63 @@ "license": [ "BSD-3-Clause" ], - "description": "PSR-7 Middleware Microframework based on Stratigility", + "description": "PSR-15 Middleware Microframework", "keywords": [ "PSR-11", "ZendFramework", + "expressive", "http", "middleware", "psr", + "psr-15", "psr-7", "zend-expressive", "zf" ], - "time": "2018-03-12T21:18:34+00:00" + "time": "2018-04-10T16:22:30+00:00" }, { "name": "zendframework/zend-expressive-fastroute", - "version": "2.2.1", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/zendframework/zend-expressive-fastroute.git", - "reference": "7567d8e53e7f92b740c937e2215d393cdb65feb6" + "reference": "e5b94197c9145810055133a09a277a29239e1a64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-expressive-fastroute/zipball/7567d8e53e7f92b740c937e2215d393cdb65feb6", - "reference": "7567d8e53e7f92b740c937e2215d393cdb65feb6", + "url": "https://api.github.com/repos/zendframework/zend-expressive-fastroute/zipball/e5b94197c9145810055133a09a277a29239e1a64", + "reference": "e5b94197c9145810055133a09a277a29239e1a64", "shasum": "" }, "require": { "fig/http-message-util": "^1.1.2", "nikic/fast-route": "^1.2", - "php": "^5.6 || ^7.0", + "php": "^7.1", "psr/container": "^1.0", "psr/http-message": "^1.0.1", - "zendframework/zend-expressive-router": "^2.4", - "zendframework/zend-stdlib": "^3.1 || 2.*" + "zendframework/zend-expressive-router": "^3.0", + "zendframework/zend-stdlib": "^2.0 || ^3.1" }, "conflict": { "container-interop/container-interop": "<1.2.0" }, "require-dev": { - "malukenho/docheader": "^0.1.5", - "phpunit/phpunit": "^5.7.23 || ^6.4.3", - "zendframework/zend-coding-standard": "~1.0.0" + "malukenho/docheader": "^0.1.6", + "mikey179/vfsstream": "^1.6.5", + "phpunit/phpunit": "^7.0.2", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-diactoros": "^1.7.1", + "zendframework/zend-stratigility": "^3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev", - "dev-develop": "3.0.x-dev" + "dev-master": "3.0.x-dev", + "dev-develop": "3.1.x-dev" + }, + "zf": { + "config-provider": "Zend\\Expressive\\Router\\FastRouteRouter\\ConfigProvider" } }, "autoload": { @@ -1890,46 +2007,44 @@ "zend-expressive", "zf" ], - "time": "2018-03-09T17:36:27+00:00" + "time": "2018-03-20T16:34:28+00:00" }, { "name": "zendframework/zend-expressive-helpers", - "version": "4.2.0", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/zendframework/zend-expressive-helpers.git", - "reference": "137d863d4741210d05297b4bb1c30264f100ba8f" + "reference": "9c6a287438f429f036efa159876e2a29c16f8010" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-expressive-helpers/zipball/137d863d4741210d05297b4bb1c30264f100ba8f", - "reference": "137d863d4741210d05297b4bb1c30264f100ba8f", + "url": "https://api.github.com/repos/zendframework/zend-expressive-helpers/zipball/9c6a287438f429f036efa159876e2a29c16f8010", + "reference": "9c6a287438f429f036efa159876e2a29c16f8010", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", + "php": "^7.1", "psr/container": "^1.0", "psr/http-message": "^1.0.1", - "webimpress/http-middleware-compatibility": "^0.1.1", - "zendframework/zend-expressive-router": "^2.2" + "psr/http-server-middleware": "^1.0", + "zendframework/zend-expressive-router": "^3.0" }, "require-dev": { - "malukenho/docheader": "^0.1.5", + "malukenho/docheader": "^0.1.6", "mockery/mockery": "^1.0", - "phpunit/phpunit": "^5.7.22 || ^6.4.1", + "phpunit/phpunit": "^7.0.2", "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-diactoros": "^1.3.10" - }, - "suggest": { - "aura/di": "^3.2 to make use of Aura.Di dependency injection container", - "mouf/pimple-interop": "^1.0 to use Pimple for dependency injection", - "zendframework/zend-servicemanager": "^3.3 to use zend-servicemanager for dependency injection" + "zendframework/zend-diactoros": "^1.7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev", - "dev-develop": "4.3-dev" + "dev-master": "5.1.x-dev", + "dev-develop": "5.2.x-dev" + }, + "zf": { + "config-provider": "Zend\\Expressive\\Helper\\ConfigProvider" } }, "autoload": { @@ -1943,51 +2058,53 @@ ], "description": "Helper/Utility classes for Expressive", "keywords": [ + "ZendFramework", "expressive", "http", "middleware", "psr", - "psr-7" + "psr-7", + "zend-expressive", + "zf" ], - "time": "2017-10-09T19:03:01+00:00" + "time": "2018-06-05T15:22:07+00:00" }, { "name": "zendframework/zend-expressive-router", - "version": "2.4.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/zendframework/zend-expressive-router.git", - "reference": "e1a00596aa20a29968bdc6ecdf0256c8bfd6e0b5" + "reference": "072d6b0620f7e1e616cb60062425b4eedd1a0447" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-expressive-router/zipball/e1a00596aa20a29968bdc6ecdf0256c8bfd6e0b5", - "reference": "e1a00596aa20a29968bdc6ecdf0256c8bfd6e0b5", + "url": "https://api.github.com/repos/zendframework/zend-expressive-router/zipball/072d6b0620f7e1e616cb60062425b4eedd1a0447", + "reference": "072d6b0620f7e1e616cb60062425b4eedd1a0447", "shasum": "" }, "require": { "fig/http-message-util": "^1.1.2", - "php": "^5.6 || ^7.0", + "php": "^7.1", "psr/container": "^1.0", "psr/http-message": "^1.0.1", - "webimpress/http-middleware-compatibility": "^0.1.1" + "psr/http-server-middleware": "^1.0" }, "require-dev": { - "http-interop/http-middleware": "0.4.1", - "malukenho/docheader": "^0.1.5", - "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "malukenho/docheader": "^0.1.6", + "phpunit/phpunit": "^7.0.2", "zendframework/zend-coding-standard": "~1.0.0" }, "suggest": { - "zendframework/zend-expressive-aurarouter": "^1.0 to use the Aura.Router routing adapter", - "zendframework/zend-expressive-fastroute": "^1.2 to use the FastRoute routing adapter", - "zendframework/zend-expressive-zendrouter": "^1.2 to use the zend-router routing adapter" + "zendframework/zend-expressive-aurarouter": "^3.0 to use the Aura.Router routing adapter", + "zendframework/zend-expressive-fastroute": "^3.0 to use the FastRoute routing adapter", + "zendframework/zend-expressive-zendrouter": "^3.0 to use the zend-router routing adapter" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4.x-dev", - "dev-develop": "3.0.x-dev" + "dev-master": "3.1.x-dev", + "dev-develop": "3.2.x-dev" }, "zf": { "config-provider": "Zend\\Expressive\\Router\\ConfigProvider" @@ -2013,39 +2130,40 @@ "zend-expressive", "zf" ], - "time": "2018-03-08T19:27:02+00:00" + "time": "2018-06-05T15:28:00+00:00" }, { "name": "zendframework/zend-expressive-template", - "version": "1.0.4", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/zendframework/zend-expressive-template.git", - "reference": "23922f96b32ab6e64fc551ec06b81fd047828765" + "reference": "b8b9ece61ed598a58223638933e2fd703ae4a5e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-expressive-template/zipball/23922f96b32ab6e64fc551ec06b81fd047828765", - "reference": "23922f96b32ab6e64fc551ec06b81fd047828765", + "url": "https://api.github.com/repos/zendframework/zend-expressive-template/zipball/b8b9ece61ed598a58223638933e2fd703ae4a5e9", + "reference": "b8b9ece61ed598a58223638933e2fd703ae4a5e9", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^4.7", + "malukenho/docheader": "^0.1.6", + "phpunit/phpunit": "^7.0.2", "zendframework/zend-coding-standard": "~1.0.0" }, "suggest": { - "zendframework/zend-expressive-platesrenderer": "^0.1 to use the Plates template renderer", - "zendframework/zend-expressive-twigrenderer": "^0.1 to use the Twig template renderer", - "zendframework/zend-expressive-zendviewrenderer": "^0.1 to use the zend-view PhpRenderer template renderer" + "zendframework/zend-expressive-platesrenderer": "^2.0 to use the Plates template renderer", + "zendframework/zend-expressive-twigrenderer": "^2.0 to use the Twig template renderer", + "zendframework/zend-expressive-zendviewrenderer": "^2.0 to use the zend-view PhpRenderer template renderer" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev", - "dev-develop": "1.1-dev" + "dev-master": "2.0.x-dev", + "dev-develop": "2.1.x-dev" } }, "autoload": { @@ -2059,23 +2177,26 @@ ], "description": "Template subcomponent for Expressive", "keywords": [ + "ZendFramework", "expressive", - "template" + "template", + "zend-expressive", + "zf" ], - "time": "2017-01-11T18:42:34+00:00" + "time": "2018-03-15T15:42:46+00:00" }, { "name": "zendframework/zend-http", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/zendframework/zend-http.git", - "reference": "78aa510c0ea64bfb2aa234f50c4f232c9531acfa" + "reference": "f48b276ffa11b48dd1ae3c6bc306d6ed7958ef51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-http/zipball/78aa510c0ea64bfb2aa234f50c4f232c9531acfa", - "reference": "78aa510c0ea64bfb2aa234f50c4f232c9531acfa", + "url": "https://api.github.com/repos/zendframework/zend-http/zipball/f48b276ffa11b48dd1ae3c6bc306d6ed7958ef51", + "reference": "f48b276ffa11b48dd1ae3c6bc306d6ed7958ef51", "shasum": "" }, "require": { @@ -2086,15 +2207,18 @@ "zendframework/zend-validator": "^2.10.1" }, "require-dev": { - "phpunit/phpunit": "^6.4.1 || ^5.7.15", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.3", "zendframework/zend-coding-standard": "~1.0.0", "zendframework/zend-config": "^3.1 || ^2.6" }, + "suggest": { + "paragonie/certainty": "For automated management of cacert.pem" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev", - "dev-develop": "2.8-dev" + "dev-master": "2.8.x-dev", + "dev-develop": "2.9.x-dev" } }, "autoload": { @@ -2106,8 +2230,7 @@ "license": [ "BSD-3-Clause" ], - "description": "provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", - "homepage": "https://github.com/zendframework/zend-http", + "description": "Provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", "keywords": [ "ZendFramework", "http", @@ -2115,7 +2238,61 @@ "zend", "zf" ], - "time": "2017-10-13T12:06:24+00:00" + "time": "2018-04-26T21:04:50+00:00" + }, + { + "name": "zendframework/zend-httphandlerrunner", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-httphandlerrunner.git", + "reference": "5e4c1e82a8bb1585020eafd32c49ece5a6ee98df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-httphandlerrunner/zipball/5e4c1e82a8bb1585020eafd32c49ece5a6ee98df", + "reference": "5e4c1e82a8bb1585020eafd32c49ece5a6ee98df", + "shasum": "" + }, + "require": { + "php": "^7.1", + "psr/http-message": "^1.0", + "psr/http-message-implementation": "^1.0", + "psr/http-server-handler": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.3", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-diactoros": "^1.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + }, + "zf": { + "config-provider": "Zend\\HttpHandlerRunner\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Zend\\HttpHandlerRunner\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Execute PSR-15 RequestHandlerInterface instances and emit responses they generate.", + "keywords": [ + "ZendFramework", + "components", + "expressive", + "psr-15", + "psr-7", + "zf" + ], + "time": "2018-02-21T20:33:02+00:00" }, { "name": "zendframework/zend-json", @@ -2169,30 +2346,30 @@ }, { "name": "zendframework/zend-loader", - "version": "2.5.1", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/zendframework/zend-loader.git", - "reference": "c5fd2f071bde071f4363def7dea8dec7393e135c" + "reference": "78f11749ea340f6ca316bca5958eef80b38f9b6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/c5fd2f071bde071f4363def7dea8dec7393e135c", - "reference": "c5fd2f071bde071f4363def7dea8dec7393e135c", + "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/78f11749ea340f6ca316bca5958eef80b38f9b6c", + "reference": "78f11749ea340f6ca316bca5958eef80b38f9b6c", "shasum": "" }, "require": { - "php": ">=5.3.23" + "php": "^5.6 || ^7.0" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev", - "dev-develop": "2.6-dev" + "dev-master": "2.6.x-dev", + "dev-develop": "2.7.x-dev" } }, "autoload": { @@ -2204,12 +2381,84 @@ "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-loader", + "description": "Autoloading and plugin loading strategies", "keywords": [ + "ZendFramework", "loader", + "zf" + ], + "time": "2018-04-30T15:20:54+00:00" + }, + { + "name": "zendframework/zend-log", + "version": "2.10.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-log.git", + "reference": "9cec3b092acb39963659c2f32441cccc56b3f430" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-log/zipball/9cec3b092acb39963659c2f32441cccc56b3f430", + "reference": "9cec3b092acb39963659c2f32441cccc56b3f430", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "psr/log": "^1.0", + "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", + "zendframework/zend-stdlib": "^2.7 || ^3.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": "^5.7.15 || ^6.0.8", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-db": "^2.6", + "zendframework/zend-escaper": "^2.5", + "zendframework/zend-filter": "^2.5", + "zendframework/zend-mail": "^2.6.1", + "zendframework/zend-validator": "^2.10.1" + }, + "suggest": { + "ext-mongo": "mongo extension to use Mongo writer", + "ext-mongodb": "mongodb extension to use MongoDB writer", + "zendframework/zend-console": "Zend\\Console component to use the RequestID log processor", + "zendframework/zend-db": "Zend\\Db component to use the database log writer", + "zendframework/zend-escaper": "Zend\\Escaper component, for use in the XML log formatter", + "zendframework/zend-mail": "Zend\\Mail component to use the email log writer", + "zendframework/zend-validator": "Zend\\Validator component to block invalid log messages" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.10.x-dev", + "dev-develop": "2.11.x-dev" + }, + "zf": { + "component": "Zend\\Log", + "config-provider": "Zend\\Log\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Zend\\Log\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "component for general purpose logging", + "homepage": "https://github.com/zendframework/zend-log", + "keywords": [ + "log", + "logging", "zf2" ], - "time": "2015-06-03T14:05:47+00:00" + "time": "2018-04-09T21:59:51+00:00" }, { "name": "zendframework/zend-servicemanager", @@ -2281,31 +2530,31 @@ }, { "name": "zendframework/zend-stdlib", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/zendframework/zend-stdlib.git", - "reference": "debedcfc373a293f9250cc9aa03cf121428c8e78" + "reference": "cd164b4a18b5d1aeb69be2c26db035b5ed6925ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/debedcfc373a293f9250cc9aa03cf121428c8e78", - "reference": "debedcfc373a293f9250cc9aa03cf121428c8e78", + "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/cd164b4a18b5d1aeb69be2c26db035b5ed6925ae", + "reference": "cd164b4a18b5d1aeb69be2c26db035b5ed6925ae", "shasum": "" }, "require": { "php": "^5.6 || ^7.0" }, "require-dev": { - "athletic/athletic": "~0.1", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "^2.6.2" + "phpbench/phpbench": "^0.13", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev", - "dev-develop": "3.2-dev" + "dev-master": "3.2.x-dev", + "dev-develop": "3.3.x-dev" } }, "autoload": { @@ -2317,38 +2566,43 @@ "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-stdlib", + "description": "SPL extensions, array utilities, error handlers, and more", "keywords": [ + "ZendFramework", "stdlib", - "zf2" + "zf" ], - "time": "2016-09-13T14:38:50+00:00" + "time": "2018-04-30T13:50:40+00:00" }, { "name": "zendframework/zend-stratigility", - "version": "2.2.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/zendframework/zend-stratigility.git", - "reference": "e8c413fcba926ede63099936a5f86acf9b8156c5" + "reference": "1efae7142c64a795034fd0dbf8013aa8f531edf3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-stratigility/zipball/e8c413fcba926ede63099936a5f86acf9b8156c5", - "reference": "e8c413fcba926ede63099936a5f86acf9b8156c5", + "url": "https://api.github.com/repos/zendframework/zend-stratigility/zipball/1efae7142c64a795034fd0dbf8013aa8f531edf3", + "reference": "1efae7142c64a795034fd0dbf8013aa8f531edf3", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", + "fig/http-message-util": "^1.1", + "php": "^7.1", "psr/http-message": "^1.0", - "webimpress/http-middleware-compatibility": "^0.1.4", + "psr/http-server-middleware": "^1.0", "zendframework/zend-escaper": "^2.3" }, + "conflict": { + "zendframework/zend-diactoros": "<1.7.1" + }, "require-dev": { - "malukenho/docheader": "^0.1.5", - "phpunit/phpunit": "^5.7.22 || ^6.4.1", + "malukenho/docheader": "^0.1.6", + "phpunit/phpunit": "^7.0.1", "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-diactoros": "^1.0" + "zendframework/zend-diactoros": "^1.7.1" }, "suggest": { "psr/http-message-implementation": "Please install a psr/http-message-implementation to consume Stratigility; e.g., zendframework/zend-diactoros" @@ -2356,13 +2610,14 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev", - "dev-develop": "3.0.x-dev" + "dev-master": "3.0.x-dev", + "dev-develop": "3.1.x-dev" } }, "autoload": { "files": [ "src/functions/double-pass-middleware.php", + "src/functions/host.php", "src/functions/middleware.php", "src/functions/path.php" ], @@ -2374,45 +2629,45 @@ "license": [ "BSD-3-Clause" ], - "description": "Middleware for PHP", - "homepage": "https://github.com/zendframework/zend-stratigility", + "description": "PSR-7 middleware foundation for building and dispatching middleware pipelines", "keywords": [ "ZendFramework", "http", "middleware", + "psr-15", "psr-7", "zf" ], - "time": "2018-03-12T21:04:19+00:00" + "time": "2018-04-04T17:47:35+00:00" }, { "name": "zendframework/zend-uri", - "version": "2.5.2", + "version": "2.6.1", "source": { "type": "git", "url": "https://github.com/zendframework/zend-uri.git", - "reference": "0bf717a239432b1a1675ae314f7c4acd742749ed" + "reference": "3b6463645c6766f78ce537c70cb4fdabee1e725f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/0bf717a239432b1a1675ae314f7c4acd742749ed", - "reference": "0bf717a239432b1a1675ae314f7c4acd742749ed", + "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/3b6463645c6766f78ce537c70cb4fdabee1e725f", + "reference": "3b6463645c6766f78ce537c70cb4fdabee1e725f", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", + "php": "^5.6 || ^7.0", "zendframework/zend-escaper": "^2.5", - "zendframework/zend-validator": "^2.5" + "zendframework/zend-validator": "^2.10" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev", - "dev-develop": "2.6-dev" + "dev-master": "2.6.x-dev", + "dev-develop": "2.7.x-dev" } }, "autoload": { @@ -2424,13 +2679,13 @@ "license": [ "BSD-3-Clause" ], - "description": "a component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", - "homepage": "https://github.com/zendframework/zend-uri", + "description": "A component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", "keywords": [ + "ZendFramework", "uri", - "zf2" + "zf" ], - "time": "2016-02-17T22:38:51+00:00" + "time": "2018-04-30T13:40:08+00:00" }, { "name": "zendframework/zend-validator", @@ -2507,16 +2762,16 @@ "packages-dev": [ { "name": "filp/whoops", - "version": "2.1.14", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "c6081b8838686aa04f1e83ba7e91f78b7b2a23e6" + "reference": "181c4502d8f34db7aed7bfe88d4f87875b8e947a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/c6081b8838686aa04f1e83ba7e91f78b7b2a23e6", - "reference": "c6081b8838686aa04f1e83ba7e91f78b7b2a23e6", + "url": "https://api.github.com/repos/filp/whoops/zipball/181c4502d8f34db7aed7bfe88d4f87875b8e947a", + "reference": "181c4502d8f34db7aed7bfe88d4f87875b8e947a", "shasum": "" }, "require": { @@ -2524,9 +2779,9 @@ "psr/log": "^1.0.1" }, "require-dev": { - "mockery/mockery": "0.9.*", + "mockery/mockery": "^0.9 || ^1.0", "phpunit/phpunit": "^4.8.35 || ^5.7", - "symfony/var-dumper": "^2.6 || ^3.0" + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0" }, "suggest": { "symfony/var-dumper": "Pretty print complex values better with var-dumper available", @@ -2535,7 +2790,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -2564,29 +2819,32 @@ "throwable", "whoops" ], - "time": "2017-11-23T18:22:44+00:00" + "time": "2018-03-03T17:56:25+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.7.0", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" }, "require-dev": { "doctrine/collections": "^1.0", "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" + "phpunit/phpunit": "^7.1" }, "type": "library", "autoload": { @@ -2609,7 +2867,7 @@ "object", "object graph" ], - "time": "2017-10-19T19:58:43+00:00" + "time": "2018-06-11T23:09:50+00:00" }, { "name": "phar-io/manifest", @@ -2867,23 +3125,23 @@ }, { "name": "phpspec/prophecy", - "version": "1.7.5", + "version": "1.7.6", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401" + "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", + "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { @@ -2926,20 +3184,20 @@ "spy", "stub" ], - "time": "2018-02-19T10:16:54+00:00" + "time": "2018-04-18T13:57:24+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "5.3.0", + "version": "5.3.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1" + "reference": "c89677919c5dd6d3b3852f230a663118762218ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/661f34d0bd3f1a7225ef491a70a020ad23a057a1", - "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac", + "reference": "c89677919c5dd6d3b3852f230a663118762218ac", "shasum": "" }, "require": { @@ -2989,7 +3247,7 @@ "testing", "xunit" ], - "time": "2017-12-06T09:29:45+00:00" + "time": "2018-04-06T15:36:58+00:00" }, { "name": "phpunit/php-file-iterator", @@ -3179,16 +3437,16 @@ }, { "name": "phpunit/phpunit", - "version": "6.5.7", + "version": "6.5.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "6bd77b57707c236833d2b57b968e403df060c9d9" + "reference": "093ca5508174cd8ab8efe44fd1dde447adfdec8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6bd77b57707c236833d2b57b968e403df060c9d9", - "reference": "6bd77b57707c236833d2b57b968e403df060c9d9", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/093ca5508174cd8ab8efe44fd1dde447adfdec8f", + "reference": "093ca5508174cd8ab8efe44fd1dde447adfdec8f", "shasum": "" }, "require": { @@ -3259,20 +3517,20 @@ "testing", "xunit" ], - "time": "2018-02-26T07:01:09+00:00" + "time": "2018-07-03T06:40:40+00:00" }, { "name": "phpunit/phpunit-mock-objects", - "version": "5.0.6", + "version": "5.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf" + "reference": "3eaf040f20154d27d6da59ca2c6e28ac8fd56dce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/33fd41a76e746b8fa96d00b49a23dadfa8334cdf", - "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3eaf040f20154d27d6da59ca2c6e28ac8fd56dce", + "reference": "3eaf040f20154d27d6da59ca2c6e28ac8fd56dce", "shasum": "" }, "require": { @@ -3318,54 +3576,7 @@ "mock", "xunit" ], - "time": "2018-01-06T05:45:45+00:00" - }, - { - "name": "psr/log", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2016-10-10T12:19:37+00:00" + "time": "2018-05-29T13:50:43+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -4096,25 +4307,25 @@ }, { "name": "zfcampus/zf-development-mode", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/zfcampus/zf-development-mode.git", - "reference": "ffef6ab8cf84ee1d1a77a2b51ba2240d2707c05d" + "reference": "419004a320bab017d28f2bc5e7857dde7e19aecf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zfcampus/zf-development-mode/zipball/ffef6ab8cf84ee1d1a77a2b51ba2240d2707c05d", - "reference": "ffef6ab8cf84ee1d1a77a2b51ba2240d2707c05d", + "url": "https://api.github.com/repos/zfcampus/zf-development-mode/zipball/419004a320bab017d28f2bc5e7857dde7e19aecf", + "reference": "419004a320bab017d28f2bc5e7857dde7e19aecf", "shasum": "" }, "require": { "php": "^5.6 || ^7.0" }, "require-dev": { - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "^5.4", - "squizlabs/php_codesniffer": "^2.3.1" + "mikey179/vfsstream": "^1.6.5", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5", + "zendframework/zend-coding-standard": "~1.0.0" }, "bin": [ "bin/zf-development-mode" @@ -4122,8 +4333,8 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev", - "dev-develop": "3.2-dev" + "dev-master": "3.2.x-dev", + "dev-develop": "3.3.x-dev" } }, "autoload": { @@ -4136,12 +4347,12 @@ "BSD-3-Clause" ], "description": "Zend Framework development mode script", - "homepage": "http://github.com/zfcampus/zf-development-mode", "keywords": [ + "ZendFramework", "framework", - "zf2" + "zf" ], - "time": "2017-01-09T23:34:49+00:00" + "time": "2018-05-07T15:44:42+00:00" } ], "aliases": [], diff --git a/config/autoload/loslog.global.php b/config/autoload/loslog.global.php new file mode 100644 index 0000000..11b6289 --- /dev/null +++ b/config/autoload/loslog.global.php @@ -0,0 +1,28 @@ + [ + 'factories' => [ + LosMiddleware\LosLog\LosLog::class => LosMiddleware\LosLog\LosLogFactory::class, + LosMiddleware\LosLog\HttpLog::class => LosMiddleware\LosLog\HttpLogFactory::class, + Psr\Log\LoggerInterface::class => LosMiddleware\LosLog\LoggerFactory::class, + ], + 'delegators' => [ + ErrorHandler::class => [ + LosMiddleware\LosLog\ErrorHandlerListenerDelegatorFactory::class, + ], + ], + ], + 'loslog' => [ + 'log_dir' => 'data/logs', + 'error_logger_file' => 'error.log', + 'exception_logger_file' => 'exception.log', + 'static_logger_file' => 'static.log', + 'http_logger_file' => 'http.log', + 'log_request' => false, + 'log_response' => false, + 'full' => false, + ], +]; diff --git a/config/config.php b/config/config.php index a14929b..0803ae8 100644 --- a/config/config.php +++ b/config/config.php @@ -1,5 +1,7 @@ configureServiceManager($container); - -// Inject config -$container->setService('config', $config); - -return $container; +return new ServiceManager($dependencies); diff --git a/config/development.config.php.dist b/config/development.config.php.dist index f9e594a..d17d6d6 100644 --- a/config/development.config.php.dist +++ b/config/development.config.php.dist @@ -1,5 +1,4 @@ pipe(ErrorHandler::class); + $app->pipe(App\Middleware\PreFlightMiddleware::class); + $app->pipe(App\Middleware\EventSubscriberMiddleware::class); + $app->pipe(ServerUrlMiddleware::class); -// The error handler should be the first (most outer) middleware to catch -// all Exceptions. -$app->pipe(ErrorHandler::class); -$app->pipe(App\Middleware\PreFlightMiddleware::class); -$app->pipe(App\Middleware\EventSubscriberMiddleware::class); -//$app->pipe(LosMiddleware\BasePath\BasePath::class); -$app->pipe(ServerUrlMiddleware::class); + // Pipe more middleware here that you want to execute on every request: + // - bootstrapping + // - pre-conditions + // - modifications to outgoing responses + // + // Piped Middleware may be either callables or service names. Middleware may + // also be passed as an array; each item in the array must resolve to + // middleware eventually (i.e., callable or service name). + // + // Middleware can be attached to specific paths, allowing you to mix and match + // applications under a common domain. The handlers in each middleware + // attached this way will see a URI with the matched path segment removed. + // + // i.e., path of "/api/member/profile" only passes "/member/profile" to $apiMiddleware + // - $app->pipe('/api', $apiMiddleware); + // - $app->pipe('/docs', $apiDocMiddleware); + // - $app->pipe('/files', $filesMiddleware); -// Pipe more middleware here that you want to execute on every request: -// - bootstrapping -// - pre-conditions -// - modifications to outgoing responses -// -// Piped Middleware may be either callables or service names. Middleware may -// also be passed as an array; each item in the array must resolve to -// middleware eventually (i.e., callable or service name). -// -// Middleware can be attached to specific paths, allowing you to mix and match -// applications under a common domain. The handlers in each middleware -// attached this way will see a URI with the MATCHED PATH SEGMENT REMOVED!!! -// -// - $app->pipe('/api', $apiMiddleware); -// - $app->pipe('/docs', $apiDocMiddleware); -// - $app->pipe('/files', $filesMiddleware); + // Register the routing middleware in the middleware pipeline. + // This middleware registers the Zend\Expressive\Router\RouteResult request attribute. + $app->pipe(RouteMiddleware::class); -// Register the routing middleware in the middleware pipeline -$app->pipeRoutingMiddleware(); -$app->pipe(ImplicitHeadMiddleware::class); -$app->pipe(ImplicitOptionsMiddleware::class); -$app->pipe(UrlHelperMiddleware::class); + // The following handle routing failures for common conditions: + // - HEAD request but no routes answer that method + // - OPTIONS request but no routes answer that method + // - method not allowed + // Order here matters; the MethodNotAllowedMiddleware should be placed + // after the Implicit*Middleware. + $app->pipe(ImplicitHeadMiddleware::class); + $app->pipe(ImplicitOptionsMiddleware::class); + $app->pipe(MethodNotAllowedMiddleware::class); -// Add more middleware here that needs to introspect the routing results; this -// might include: -// -// - route-based authentication -// - route-based validation -// - etc. + // Seed the UrlHelper with the routing results: + $app->pipe(UrlHelperMiddleware::class); -// Register the dispatch middleware in the middleware pipeline -$app->pipeDispatchMiddleware(); + // Add more middleware here that needs to introspect the routing results; this + // might include: + // + // - route-based authentication + // - route-based validation + // - etc. -// At this point, if no Response is return by any middleware, the -// NotFoundHandler kicks in; alternately, you can provide other fallback -// middleware to execute. -$app->pipe(NotFoundHandler::class); + // Register the dispatch middleware in the middleware pipeline + $app->pipe(DispatchMiddleware::class); + + // At this point, if no Response is returned by any middleware, the + // NotFoundHandler kicks in; alternately, you can provide other fallback + // middleware to execute. + $app->pipe(NotFoundHandler::class); +}; diff --git a/config/routes.php b/config/routes.php index 1c630dd..c9ac947 100644 --- a/config/routes.php +++ b/config/routes.php @@ -1,31 +1,39 @@ get('/', App\Action\HomePageAction::class, 'home'); - * $app->post('/album', App\Action\AlbumCreateAction::class, 'album.create'); - * $app->put('/album/:id', App\Action\AlbumUpdateAction::class, 'album.put'); - * $app->patch('/album/:id', App\Action\AlbumUpdateAction::class, 'album.patch'); - * $app->delete('/album/:id', App\Action\AlbumDeleteAction::class, 'album.delete'); + * $app->get('/', App\Handler\HomePageHandler::class, 'home'); + * $app->post('/album', App\Handler\AlbumCreateHandler::class, 'album.create'); + * $app->put('/album/:id', App\Handler\AlbumUpdateHandler::class, 'album.put'); + * $app->patch('/album/:id', App\Handler\AlbumUpdateHandler::class, 'album.patch'); + * $app->delete('/album/:id', App\Handler\AlbumDeleteHandler::class, 'album.delete'); * * Or with multiple request methods: * - * $app->route('/contact', App\Action\ContactAction::class, ['GET', 'POST', ...], 'contact'); + * $app->route('/contact', App\Handler\ContactHandler::class, ['GET', 'POST', ...], 'contact'); * * Or handling all request methods: * - * $app->route('/contact', App\Action\ContactAction::class)->setName('contact'); + * $app->route('/contact', App\Handler\ContactHandler::class)->setName('contact'); * * or: * * $app->route( * '/contact', - * App\Action\ContactAction::class, + * App\Handler\ContactHandler::class, * Zend\Expressive\Router\Route::HTTP_METHOD_ANY, * 'contact' * ); */ - -$app->get('/', App\Action\HomePageAction::class, 'home'); -$app->get('/list', App\Action\PingAction::class, 'api.list'); -$app->post('/store/{direction:sent|received}/{hashKey}', App\Action\StoreAction::class, 'api.store'); +return function (Application $app, MiddlewareFactory $factory, ContainerInterface $container) : void { + $app->get('/', App\Action\HomePageAction::class, 'home'); + $app->get('/list', App\Action\PingAction::class, 'api.list'); + $app->post('/store/{direction:sent|received}/{hashKey}', App\Action\StoreAction::class, 'api.store'); +}; diff --git a/data/.gitignore b/data/.gitignore index 3b83889..fee2fae 100644 --- a/data/.gitignore +++ b/data/.gitignore @@ -1,2 +1,3 @@ *.db config-cache.php +logs \ No newline at end of file diff --git a/deploy.php b/deploy.php index 83a83cf..082e431 100644 --- a/deploy.php +++ b/deploy.php @@ -8,7 +8,7 @@ set('ssh_multiplexing', true); set('repository', 'ssh://gogs@gogs.ragnarok.yvan.hu:2206/yvan/sms-store.git'); set('shared_dirs', [ -// 'data/tmp', + 'data/logs', ]); set('shared_files', [ 'config/autoload/local.php', diff --git a/public/index.php b/public/index.php index 0fad61d..fd11502 100644 --- a/public/index.php +++ b/public/index.php @@ -1,9 +1,9 @@ get(\Zend\Expressive\Application::class); + $factory = $container->get(\Zend\Expressive\MiddlewareFactory::class); - // Import programmatic/declarative middleware pipeline and routing + // Execute programmatic/declarative middleware pipeline and routing // configuration statements - require 'config/pipeline.php'; - require 'config/routes.php'; + (require 'config/pipeline.php')($app, $factory, $container); + (require 'config/routes.php')($app, $factory, $container); $app->run(); -}); +})(); diff --git a/src/App/Action/AbstractAction.php b/src/App/Action/AbstractAction.php index 31746d9..d6c5382 100644 --- a/src/App/Action/AbstractAction.php +++ b/src/App/Action/AbstractAction.php @@ -2,17 +2,17 @@ namespace App\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface as ServerMiddlewareInterface; +use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\RequestHandlerInterface; use Zend\Diactoros\Response\JsonResponse; use Zend\Json\Json; -abstract class AbstractAction implements ServerMiddlewareInterface +abstract class AbstractAction implements RequestHandlerInterface { const IDENTIFIER_NAME = 'id'; - public function process(ServerRequestInterface $request, DelegateInterface $delegate) + public function handle(ServerRequestInterface $request): ResponseInterface { $requestMethod = strtoupper($request->getMethod()); $id = $request->getAttribute(static::IDENTIFIER_NAME); @@ -20,73 +20,71 @@ abstract class AbstractAction implements ServerMiddlewareInterface switch ($requestMethod) { case 'GET': return isset($id) - ? $this->get($request, $delegate) - : $this->getList($request, $delegate); + ? $this->get($request) + : $this->getList($request); case 'POST': - return $this->create($request, $delegate); + return $this->create($request); case 'PUT': - return $this->update($request, $delegate); + return $this->update($request); case 'DELETE': return isset($id) - ? $this->delete($request, $delegate) - : $this->deleteList($request, $delegate); + ? $this->delete($request) + : $this->deleteList($request); case 'HEAD': - return $this->head($request, $delegate); + return $this->head($request); case 'OPTIONS': - return $this->options($request, $delegate); + return $this->options($request); case 'PATCH': - return $this->patch($request, $delegate); - default: - return $delegate->process($request); + return $this->patch($request); } } - public function get(ServerRequestInterface $request, DelegateInterface $delegate) + public function get(ServerRequestInterface $request): ResponseInterface { return $this->createResponse(['content' => 'Method not allowed'], 405); } - public function getList(ServerRequestInterface $request, DelegateInterface $delegate) + public function getList(ServerRequestInterface $request): ResponseInterface { return $this->createResponse(['content' => 'Method not allowed'], 405); } - public function create(ServerRequestInterface $request, DelegateInterface $delegate) + public function create(ServerRequestInterface $request): ResponseInterface { return $this->createResponse(['content' => 'Method not allowed'], 405); } - public function update(ServerRequestInterface $request, DelegateInterface $delegate) + public function update(ServerRequestInterface $request): ResponseInterface { return $this->createResponse(['content' => 'Method not allowed'], 405); } - public function delete(ServerRequestInterface $request, DelegateInterface $delegate) + public function delete(ServerRequestInterface $request): ResponseInterface { return $this->createResponse(['content' => 'Method not allowed'], 405); } - public function deleteList(ServerRequestInterface $request, DelegateInterface $delegate) + public function deleteList(ServerRequestInterface $request): ResponseInterface { return $this->createResponse(['content' => 'Method not allowed'], 405); } - public function head(ServerRequestInterface $request, DelegateInterface $delegate) + public function head(ServerRequestInterface $request): ResponseInterface { return $this->createResponse(['content' => 'Method not allowed'], 405); } - public function options(ServerRequestInterface $request, DelegateInterface $delegate) + public function options(ServerRequestInterface $request): ResponseInterface { return $this->createResponse(['content' => 'Method not allowed'], 405); } - public function patch(ServerRequestInterface $request, DelegateInterface $delegate) + public function patch(ServerRequestInterface $request): ResponseInterface { return $this->createResponse(['content' => 'Method not allowed'], 405); } - final protected function createResponse($data, $status = 200) + final protected function createResponse($data, $status = 200): ResponseInterface { return new JsonResponse($data, $status); } diff --git a/src/App/Action/HomePageAction.php b/src/App/Action/HomePageAction.php index aa0cdf7..0a1a36e 100644 --- a/src/App/Action/HomePageAction.php +++ b/src/App/Action/HomePageAction.php @@ -3,12 +3,12 @@ namespace App\Action; use App\Service\KoinService; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface as ServerMiddlewareInterface; +use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\RequestHandlerInterface; use Zend\Diactoros\Response\TextResponse; -class HomePageAction implements ServerMiddlewareInterface +class HomePageAction implements RequestHandlerInterface { private $tmp; @@ -17,7 +17,12 @@ class HomePageAction implements ServerMiddlewareInterface $this->tmp = $tmp; } - public function process(ServerRequestInterface $request, DelegateInterface $delegate) + /** + * Handle the request and return a response. + * @param ServerRequestInterface $request + * @return ResponseInterface + */ + public function handle(ServerRequestInterface $request): ResponseInterface { return new TextResponse("Nuff"); } diff --git a/src/App/Action/PingAction.php b/src/App/Action/PingAction.php index c24043d..453ef0e 100644 --- a/src/App/Action/PingAction.php +++ b/src/App/Action/PingAction.php @@ -2,14 +2,14 @@ namespace App\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface as ServerMiddlewareInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Server\RequestHandlerInterface; use Zend\Diactoros\Response\JsonResponse; use Psr\Http\Message\ServerRequestInterface; -class PingAction implements ServerMiddlewareInterface +class PingAction implements RequestHandlerInterface { - public function process(ServerRequestInterface $request, DelegateInterface $delegate) + public function handle(ServerRequestInterface $request): ResponseInterface { return new JsonResponse(['ack' => time()]); } diff --git a/src/App/Action/StoreAction.php b/src/App/Action/StoreAction.php index 5ac93b0..0cabd70 100644 --- a/src/App/Action/StoreAction.php +++ b/src/App/Action/StoreAction.php @@ -5,7 +5,7 @@ namespace App\Action; use App\Entity\Sms; use App\Response\JsonCorsResponse; use App\Service\SmsStoreService; -use Interop\Http\ServerMiddleware\DelegateInterface; +use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; class StoreAction extends AbstractAction @@ -17,7 +17,7 @@ class StoreAction extends AbstractAction $this->smsStore = $smsStore; } - public function create(ServerRequestInterface $request, DelegateInterface $delegate) + public function create(ServerRequestInterface $request): ResponseInterface { $hashKey = $request->getAttribute('hashKey'); $direction = $request->getAttribute('direction'); diff --git a/src/App/Middleware/EventSubscriberMiddleware.php b/src/App/Middleware/EventSubscriberMiddleware.php index f2c3401..a164a90 100644 --- a/src/App/Middleware/EventSubscriberMiddleware.php +++ b/src/App/Middleware/EventSubscriberMiddleware.php @@ -2,23 +2,22 @@ namespace App\Middleware; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface as ServerMiddlewareInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\MiddlewareInterface as ServerMiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; class EventSubscriberMiddleware implements ServerMiddlewareInterface { - /** - * This actually does nothing, just wraps the next middleware in the pipe. - * - * @param ServerRequestInterface $request - * @param DelegateInterface $delegate - * - * @return ResponseInterface - */ - public function process(ServerRequestInterface $request, DelegateInterface $delegate) - { - return $delegate->process($request); - } + /** + * This actually does nothing, just wraps the next middleware in the pipe. + * + * @param ServerRequestInterface $request + * @param RequestHandlerInterface $handler + * @return ResponseInterface + */ + public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface + { + return $handler->handle($request); + } } diff --git a/src/App/Middleware/EventSubscriberMiddlewareFactory.php b/src/App/Middleware/EventSubscriberMiddlewareFactory.php index 3b36492..c71c95b 100644 --- a/src/App/Middleware/EventSubscriberMiddlewareFactory.php +++ b/src/App/Middleware/EventSubscriberMiddlewareFactory.php @@ -9,19 +9,19 @@ use Zend\EventManager\LazyListener; class EventSubscriberMiddlewareFactory { - public function __invoke(ContainerInterface $container) - { - $eventManager = $container->get(EventManager::class); - $eventManager->setIdentifiers([ - EventSubscriberMiddleware::class, - ]); + public function __invoke(ContainerInterface $container) + { + $eventManager = $container->get(EventManager::class); + $eventManager->setIdentifiers([ + EventSubscriberMiddleware::class, + ]); - $lazyListener = new LazyListener([ - 'listener' => KoinService::class, - 'method' => 'onReceiveSmsListener', - ], $container); - $eventManager->attach('store.sms.persisted', $lazyListener); + $lazyListener = new LazyListener([ + 'listener' => KoinService::class, + 'method' => 'onReceiveSmsListener', + ], $container); + $eventManager->attach('store.sms.persisted', $lazyListener); - return new EventSubscriberMiddleware(); - } + return new EventSubscriberMiddleware(); + } } diff --git a/src/App/Middleware/PreFlightMiddleware.php b/src/App/Middleware/PreFlightMiddleware.php index 6674105..e5188a6 100644 --- a/src/App/Middleware/PreFlightMiddleware.php +++ b/src/App/Middleware/PreFlightMiddleware.php @@ -2,10 +2,12 @@ namespace App\Middleware; -use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\MiddlewareInterface as ServerMiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; -class PreFlightMiddleware +class PreFlightMiddleware implements ServerMiddlewareInterface { const ALLOW_HEADERS = [ 'DNT', @@ -19,16 +21,24 @@ class PreFlightMiddleware 'Authorization', ]; - public function __invoke(RequestInterface $request, ResponseInterface $response, callable $next) + /** + * Set CORS headers the ugly way. + * @param ServerRequestInterface $request + * @param RequestHandlerInterface $handler + * @return ResponseInterface + * @todo replace with cors middleware tuupola? + */ + public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $requestMethod = strtoupper($request->getMethod()); if ($requestMethod == 'OPTIONS') { - return $response + $response = $request ->withHeader('Accept', 'OPTIONS,GET,POST,PUT,PATCH,DELETE') ->withHeader('Access-Control-Allow-Origin', '*') ->withHeader('Access-Control-Allow-Methods', 'OPTIONS,GET,POST,PUT,PATCH,DELETE') ->withHeader('Access-Control-Allow-Headers', implode(",", self::ALLOW_HEADERS)); + return $handler->handle($response); } - return $next($request, $response); + return $handler->handle($request); } }