diff --git a/.gitignore b/.gitignore index d7eb088..ea9e10c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ -vendor/ -phpunit.xml -clover.xml \ No newline at end of file +/vendor/ +/phpunit.xml +/clover.xml +/.php_cs.cache \ No newline at end of file diff --git a/.php_cs.dist b/.php_cs.dist index 115940d..03834ea 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -4,20 +4,24 @@ * Additional rules or rules to override. * These rules will be added to default rules or will override them if the same key already exists. */ + $additionalRules = []; -$rules = new Facile\CodingStandards\DefaultRules($additionalRules); +$rulesProvider = new Facile\CodingStandards\Rules\CompositeRulesProvider([ + new Facile\CodingStandards\Rules\DefaultRulesProvider(), + new Facile\CodingStandards\Rules\RiskyRulesProvider(), + new Facile\CodingStandards\Rules\ArrayRulesProvider($additionalRules), +]); $config = PhpCsFixer\Config::create(); -$config->setRules($rules->getRules()); - -$config->setUsingCache(false); -$config->setRiskyAllowed(false); +$config->setRules($rulesProvider->getRules()); $finder = PhpCsFixer\Finder::create(); -$finder->in(array ( - 0 => 'src/', - 0 => 'tests/', -)); + +/* + * You can set manually these paths: + */ +$autoloadPathProvider = new Facile\CodingStandards\AutoloadPathProvider(); +$finder->in($autoloadPathProvider->getPaths()); $config->setFinder($finder); diff --git a/.travis.yml b/.travis.yml index a3510d1..01f6719 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ cache: directories: - $HOME/.composer/cache - vendor - - $HOME/.local env: global: @@ -15,24 +14,34 @@ env: matrix: fast_finish: true include: - - php: 7.0 + - php: 7.1 env: - DEPS=lowest - - php: 7.0 + - php: 7.1 + env: + - DEPS=latest + - php: 7.2 env: + - DEPS=lowest + - php: 7.2 + env: + - EXECUTE_PHPSTAN_CHECK=true - EXECUTE_CS_CHECK=true - EXECUTE_TEST_SCRUTINIZER=true - DEPS=locked - - php: 7.0 + - php: 7.2 env: - DEPS=latest - - php: 7.1 + - php: 7.3 env: - DEPS=lowest - - php: 7.1 + - php: 7.3 env: - - DEPS=locked - - php: 7.1 + - DEPS=latest + - php: 7.4snapshot + env: + - DEPS=lowest + - php: 7.4snapshot env: - DEPS=latest - php: 7.2 @@ -47,8 +56,10 @@ matrix: - php: nightly env: - DEPS=latest + allow_failures: - php: nightly + - php: 7.4snapshot install: - if [[ $DEPS == 'locked' ]]; then travis_retry composer install $COMPOSER_ARGS ; fi @@ -56,6 +67,7 @@ install: - if [[ $DEPS == 'lowest' ]]; then travis_retry composer update --prefer-lowest --prefer-stable $COMPOSER_ARGS ; fi script: + - if [[ EXECUTE_PHPSTAN_CHECK == 'true' ]]; then composer phpstan ; fi - if [[ $EXECUTE_TEST_SCRUTINIZER == 'true' ]]; then ./vendor/bin/phpunit --coverage-clover coverage.clover ; fi - if [[ $EXECUTE_TEST_SCRUTINIZER != 'true' ]]; then ./vendor/bin/phpunit ; fi - if [[ $EXECUTE_CS_CHECK == 'true' ]]; then composer cs-check ; fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 00afbcb..d844b02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ # Change Log -## [0.7.2] - TBD -### Added -- Nothing +## [1.0.0] - TBD +### Changed +- Completely rewritten ## [0.7.1] - 2017-11-09 diff --git a/README.md b/README.md index 98b88d7..2124f4a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Code Coverage](https://scrutinizer-ci.com/g/facile-it/sentry-module/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/facile-it/sentry-module/?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/facile-it/sentry-module/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/facile-it/sentry-module/?branch=master) -This module allows integration with Raven Sentry Client into Zend Framework 2/3. +This module allows integration with Sentry Client into zend-framework 2/3 and zend-expressive. ## Installation @@ -22,30 +22,25 @@ php composer.phar require facile-it/sentry-module To configure an instance of the client you can do as below: ```php -//... + return [ - 'facile' => [ - 'sentry' => [ - 'dsn' => '', // Sentry Raven dsn - 'raven_options' => [ // Sentry Raven options - 'app_path' => '', - 'release' => 'release-hash', - // .... - ], - 'raven_javascript_dsn' => '', // javascript sentry dsn - 'raven_javascript_uri' => 'https://cdn.ravenjs.com/3.16.0/raven.min.js', - 'raven_javascript_options' => [], // javascript sentry options - 'inject_raven_javascript' => false, // should we inject sentry JS file and script? - 'error_handler_options' => [ // Error Handler Listener options (read below) - 'error_types' => null, // Error types to log, NULL will get value from error_reporting() function - 'skip_exceptions' => [], // Exception class names to skip when loggin exceptions + 'sentry' => [ + 'options' => [ + 'dsn' => '', + // other sentry options + // https://docs.sentry.io/error-reporting/configuration/?platform=php + ], + 'javascript' => [ + 'inject_script' => false, + 'script' => [ + 'src' => 'https://browser.sentry-cdn.com/5.6.3/bundle.min.js', + 'integrity' => 'sha384-/Cqa/8kaWn7emdqIBLk3AkFMAHBk0LObErtMhO+hr52CntkaurEnihPmqYj3uJho', + 'crossorigin' => 'anonymous', ], - 'stack_trace_options' => [ - // We clean the backtrace when loggin messages removing last stacks from our library. - // You can add more namespaces to ignore when using some other - // libraries between the real log line and our library. - // "Facile\SentryModule" is already present in module's configuration. - 'ignore_backtrace_namespaces' => [], + 'options' => [ + 'dsn' => '', + // other sentry options + // https://docs.sentry.io/error-reporting/configuration/?platform=php ], ], ], @@ -53,10 +48,12 @@ return [ //... ``` -Now you can use the client and the Raven client by retrieving it from the Service Locator. +Now you can use the client and the Hub by retrieving it from the Service Locator. ```php -$client = $this->getServiceLocator()->get(\Raven_Client::class); +use Sentry\HubInterface; + +$hub = $this->getServiceLocator()->get(HubInterface::class); ``` ### Error Handler Listener @@ -74,15 +71,12 @@ If you want to use it you should register it in your application module. namespace App; use Facile\SentryModule\Listener\ErrorHandlerListener; -use Zend\EventManager\EventInterface; use Zend\Mvc\MvcEvent; -use Raven_Client; class Module { - public function onBootstrap(EventInterface $e) + public function onBootstrap(MvcEvent $e): void { - /* @var MvcEvent $e */ $application = $e->getApplication(); $container = $application->getServiceManager(); $eventManager = $application->getEventManager(); @@ -90,14 +84,6 @@ class Module /** @var ErrorHandlerListener $errorHandlerListener */ $errorHandlerListener = $container->get(ErrorHandlerListener::class); $errorHandlerListener->attach($eventManager); - - // you can optionally register Raven_ErrorHandler - /** @var Raven_Client $client */ - $client = $container->get(Raven_Client::class); - // $errorHandler = new \Raven_ErrorHandler($client); - // $errorHandler->registerErrorHandler(); - // $errorHandler->registerExceptionHandler(); - // $errorHandler->registerShutdownFunction(); } } ``` @@ -137,6 +123,7 @@ return [ Usage: ```php + $logger->crit('Log this message'); // or with exceptions, to see the correct trace in sentry: @@ -144,8 +131,6 @@ $e = new \RuntimeException('test-exception'); $logger->crit($e->getMessage(), ['exception' => $e]); ``` -If you are interested on a PSR3 compatible log you can use [facile-it/sentry-psr-log](https://github.com/facile-it/sentry-psr-log). - ### Javascript This module can inject the javascript Raven client library and configure it for you. @@ -155,16 +140,22 @@ This module can inject the javascript Raven client library and configure it for // facile-sentry.module.local.php return [ - 'facile' => [ - 'sentry' => [ - 'raven_javascript_dsn' => '', // (public dsn to use) - 'raven_javascript_uri' => 'https://cdn.ravenjs.com/3.16.0/raven.min.js', // (default) - 'raven_javascript_options' => [ - 'release' => 'release-hash', + 'sentry' => [ + 'javascript' => [ + 'inject_script' => true, // enable it + 'options' => [ + 'dsn' => '', + // other sentry options + // https://docs.sentry.io/error-reporting/configuration/?platform=php + ], + // script options (defaults) + 'script' => [ + 'src' => 'https://browser.sentry-cdn.com/5.6.3/bundle.min.js', + 'integrity' => 'sha384-/Cqa/8kaWn7emdqIBLk3AkFMAHBk0LObErtMhO+hr52CntkaurEnihPmqYj3uJho', + 'crossorigin' => 'anonymous', ], - 'inject_raven_javascript' => true, // (default false) - ] - ] + ], + ], ]; ``` @@ -172,3 +163,14 @@ In your layout: ```php headScript() ?> ``` + +## Usage with zend-expressive + +If you want to use with zend-expressive you should initialize the Sentry client and Hub. +You can simply retrieve the HubInterface service to initialize it. + +```php +use Sentry\HubInterface; + +$container->get(HubInterface::class); +``` diff --git a/composer.json b/composer.json index a5873d8..282eb1d 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,8 @@ "zf2", "zf3", "zend", - "zend framework" + "zend framework", + "expressive" ], "authors": [ { @@ -25,6 +26,12 @@ "email": "thomas.vargiu@facile.it" } ], + "extra": { + "zf": { + "component": "Facile\\SentryModule", + "config-provider": "Facile\\SentryModule\\ConfigProvider" + } + }, "autoload": { "psr-4": { "Facile\\SentryModule\\": "src/" @@ -36,30 +43,34 @@ } }, "require": { - "php": "^7.0", - "sentry/sentry": "^1.7", - "zendframework/zend-stdlib": "^2.7.5 || ^3.0.1", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-mvc": "^2.7 || ^3.0", - "zendframework/zend-modulemanager": "^2.5.1", - "zendframework/zend-view": "^2.5.1", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "facile-it/sentry-common": "^0.2.0" + "php": "^7.1", + "ext-json": "*", + "sentry/sentry": "^2.0", + "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3" }, "require-dev": { - "phpunit/phpunit": "^6.2", + "phpunit/phpunit": "^7.5 || ^8.0", + "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", "zendframework/zend-log": "^2.9", - "zendframework/zend-router": "^2.6.2 || ^3.0", - "facile-it/facile-coding-standard": "dev-composer-plugin" + "zendframework/zend-modulemanager": "^2.5.1", + "zendframework/zend-mvc": "^2.7 || ^3.0", + "zendframework/zend-view": "^2.5.1", + "facile-it/facile-coding-standard": "^0.3.1", + "php-http/curl-client": "^2.0", + "phpstan/phpstan": "^0.11.15", + "friendsofphp/php-cs-fixer": "^2.15" }, - "suggest": { - "zendframework/zend-log:^2.9": "Install to use the log writer", - "facile-it/sentry-psr-log": "Allows psr log implementation" + "conflict": { + "container-interop/container-interop": "< 1.2", + "zendframework/zend-eventmanager": "< 2.6.2", + "zendframework/zend-log": "< 2.9", + "zendframework/zend-modulemanager": "< 2.5.1", + "zendframework/zend-mvc": "< 2.7", + "zendframework/zend-view": "< 2.5.1" }, - "extra": { - "zf": { - "module": "Facile\\SentryModule" - } + "suggest": { + "zendframework/zend-eventmanager": "Install to use the MVC error handler", + "zendframework/zend-log": "Install to use the log writer" }, "scripts": { "test": [ @@ -68,9 +79,10 @@ "ci-test": [ "@ci-phpunit" ], + "phpstan": "phpstan analyse .", "phpunit": "phpunit", "ci-phpunit": "phpunit --coverage-clover=coverage.clover", - "cs-check": "php-cs-fixer fix --dry-run --diff", - "cs-fix": "php-cs-fixer fix --diff" + "cs-check": "php-cs-fixer fix --dry-run --diff --allow-risky yes", + "cs-fix": "php-cs-fixer fix --diff --allow-risky yes" } } diff --git a/composer.lock b/composer.lock index 26f6190..6fc8287 100644 --- a/composer.lock +++ b/composer.lock @@ -1,25 +1,80 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6681462990aa0cedf8e0b98a28f449a1", + "content-hash": "008f4133324dc3c23b97776ae04cbd8a", "packages": [ + { + "name": "clue/stream-filter", + "version": "v1.4.1", + "source": { + "type": "git", + "url": "https://github.com/clue/php-stream-filter.git", + "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71", + "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "phpunit/phpunit": "^5.0 || ^4.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Clue\\StreamFilter\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@lueck.tv" + } + ], + "description": "A simple and modern approach to stream filtering in PHP", + "homepage": "https://github.com/clue/php-stream-filter", + "keywords": [ + "bucket brigade", + "callback", + "filter", + "php_user_filter", + "stream", + "stream_filter_append", + "stream_filter_register" + ], + "time": "2019-04-09T12:31:48+00:00" + }, { "name": "container-interop/container-interop", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/container-interop/container-interop.git", - "reference": "fc08354828f8fd3245f77a66b9e23a6bca48297e" + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/container-interop/container-interop/zipball/fc08354828f8fd3245f77a66b9e23a6bca48297e", - "reference": "fc08354828f8fd3245f77a66b9e23a6bca48297e", + "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", "shasum": "" }, + "require": { + "psr/container": "^1.0" + }, "type": "library", "autoload": { "psr-4": { @@ -31,34 +86,39 @@ "MIT" ], "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", - "time": "2014-12-30T15:22:37+00:00" + "homepage": "https://github.com/container-interop/container-interop", + "time": "2017-02-14T19:40:03+00:00" }, { - "name": "facile-it/sentry-common", - "version": "0.2.0", + "name": "jean85/pretty-package-versions", + "version": "1.2", "source": { "type": "git", - "url": "https://github.com/facile-it/sentry-common.git", - "reference": "9f2646e6dcaa45e83bc4b893129a0940c9a7a500" + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facile-it/sentry-common/zipball/9f2646e6dcaa45e83bc4b893129a0940c9a7a500", - "reference": "9f2646e6dcaa45e83bc4b893129a0940c9a7a500", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/75c7effcf3f77501d0e0caa75111aff4daa0dd48", + "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48", "shasum": "" }, "require": { - "php": "^7.0", - "sentry/sentry": "^1.7" + "ocramius/package-versions": "^1.2.0", + "php": "^7.0" }, "require-dev": { - "facile-it/facile-coding-standard": "dev-composer-plugin", - "phpunit/phpunit": "^6.2" + "phpunit/phpunit": "^6.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "autoload": { "psr-4": { - "Facile\\Sentry\\Common\\": "src/" + "Jean85\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -67,46 +127,54 @@ ], "authors": [ { - "name": "Thomas Vargiu", - "email": "thomas.vargiu@facile.it" + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" } ], - "description": "Sentry common library", - "homepage": "https://github.com/facile-it/sentry-common", + "description": "A wrapper for ocramius/package-versions to get pretty versions strings", "keywords": [ - "log", - "logs", - "raven", - "sentry" + "composer", + "package", + "release", + "versions" ], - "time": "2017-06-30T12:52:20+00:00" + "time": "2018-06-13T13:22:40+00:00" }, { - "name": "psr/http-message", - "version": "1.0", + "name": "ocramius/package-versions", + "version": "1.4.0", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298" + "url": "https://github.com/Ocramius/PackageVersions.git", + "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", - "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/a4d4b60d0e60da2487bd21a2c6ac089f85570dbb", + "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb", "shasum": "" }, "require": { - "php": ">=5.3.0" + "composer-plugin-api": "^1.0.0", + "php": "^7.1.0" }, - "type": "library", + "require-dev": { + "composer/composer": "^1.6.3", + "doctrine/coding-standard": "^5.0.1", + "ext-zip": "*", + "infection/infection": "^0.7.1", + "phpunit/phpunit": "^7.0.0" + }, + "type": "composer-plugin", "extra": { + "class": "PackageVersions\\Installer", "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "PackageVersions\\": "src/PackageVersions" } }, "notification-url": "https://packagist.org/downloads/", @@ -115,1075 +183,1149 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Common interface for HTTP messages", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "time": "2015-05-04T20:22:00+00:00" + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2019-02-21T12:16:21+00:00" }, { - "name": "sentry/sentry", - "version": "1.7.0", + "name": "paragonie/random_compat", + "version": "v9.99.99", "source": { "type": "git", - "url": "https://github.com/getsentry/sentry-php.git", - "reference": "f92d30467d9696606352aa06afeac0a60c4458ef" + "url": "https://github.com/paragonie/random_compat.git", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/f92d30467d9696606352aa06afeac0a60c4458ef", - "reference": "f92d30467d9696606352aa06afeac0a60c4458ef", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", "shasum": "" }, "require": { - "ext-curl": "*", - "php": "^5.3|^7.0" - }, - "conflict": { - "raven/raven": "*" + "php": "^7" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^1.8.0", - "monolog/monolog": "*", - "phpunit/phpunit": "^4.8 || ^5.0" + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" }, "suggest": { - "ext-hash": "*", - "ext-json": "*", - "ext-mbstring": "*", - "immobiliare/sentry-php": "Fork that fixes support for PHP 5.2", - "monolog/monolog": "Automatically capture Monolog events as breadcrumbs" + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." }, - "bin": [ - "bin/sentry" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } - }, - "autoload": { - "psr-0": { - "Raven_": "lib/" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "David Cramer", - "email": "dcramer@gmail.com" + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" } ], - "description": "A PHP client for Sentry (http://getsentry.com)", - "homepage": "http://getsentry.com", + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", "keywords": [ - "log", - "logging" + "csprng", + "polyfill", + "pseudorandom", + "random" ], - "time": "2017-06-07T18:13:17+00:00" + "time": "2018-07-02T15:55:56+00:00" }, { - "name": "zendframework/zend-diactoros", - "version": "1.1.0", + "name": "php-http/client-common", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-diactoros.git", - "reference": "df65f70fc36f24d51a90ad706a09cd9b74fc4dd8" + "url": "https://github.com/php-http/client-common.git", + "reference": "2b8aa3c4910afc21146a9c8f96adb266e869517a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/df65f70fc36f24d51a90ad706a09cd9b74fc4dd8", - "reference": "df65f70fc36f24d51a90ad706a09cd9b74fc4dd8", + "url": "https://api.github.com/repos/php-http/client-common/zipball/2b8aa3c4910afc21146a9c8f96adb266e869517a", + "reference": "2b8aa3c4910afc21146a9c8f96adb266e869517a", "shasum": "" }, "require": { - "php": ">=5.4", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "~1.0.0" + "php": "^7.1", + "php-http/httplug": "^2.0", + "php-http/message": "^1.6", + "php-http/message-factory": "^1.0", + "symfony/options-resolver": " ^3.4.20 || ^4.0.15 || ^4.1.9 || ^4.2.1" }, "require-dev": { - "phpunit/phpunit": "~4.6", - "squizlabs/php_codesniffer": "^2.3.1" + "doctrine/instantiator": "^1.1", + "guzzlehttp/psr7": "^1.4", + "phpspec/phpspec": "^5.1", + "phpspec/prophecy": "^1.8", + "sebastian/comparator": "^3.0" + }, + "suggest": { + "ext-json": "To detect JSON responses with the ContentTypePlugin", + "ext-libxml": "To detect XML responses with the ContentTypePlugin", + "php-http/cache-plugin": "PSR-6 Cache plugin", + "php-http/logger-plugin": "PSR-3 Logger plugin", + "php-http/stopwatch-plugin": "Symfony Stopwatch plugin" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev", - "dev-develop": "1.1-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Zend\\Diactoros\\": "src/" + "Http\\Client\\Common\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-2-Clause" + "MIT" ], - "description": "PSR HTTP Message implementations", - "homepage": "https://github.com/zendframework/zend-diactoros", + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Common HTTP Client implementations and tools for HTTPlug", + "homepage": "http://httplug.io", "keywords": [ + "client", + "common", "http", - "psr", - "psr-7" + "httplug" ], - "time": "2015-06-24T20:42:54+00:00" + "time": "2019-02-03T16:49:09+00:00" }, { - "name": "zendframework/zend-escaper", - "version": "2.5.0", + "name": "php-http/curl-client", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-escaper.git", - "reference": "a4b227d8a477f4e7e9073f8e0a7ae7dbd3104a73" + "url": "https://github.com/php-http/curl-client.git", + "reference": "e7a2a5ebcce1ff7d75eaf02b7c85634a6fac00da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/a4b227d8a477f4e7e9073f8e0a7ae7dbd3104a73", - "reference": "a4b227d8a477f4e7e9073f8e0a7ae7dbd3104a73", + "url": "https://api.github.com/repos/php-http/curl-client/zipball/e7a2a5ebcce1ff7d75eaf02b7c85634a6fac00da", + "reference": "e7a2a5ebcce1ff7d75eaf02b7c85634a6fac00da", "shasum": "" }, "require": { - "php": ">=5.3.23" + "ext-curl": "*", + "php": "^7.1", + "php-http/discovery": "^1.6", + "php-http/httplug": "^2.0", + "php-http/message": "^1.2", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "symfony/options-resolver": "^3.4 || ^4.0" + }, + "provide": { + "php-http/async-client-implementation": "1.0", + "php-http/client-implementation": "1.0" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0" + "guzzlehttp/psr7": "^1.0", + "php-http/client-integration-tests": "^2.0", + "phpunit/phpunit": "^7.5", + "zendframework/zend-diactoros": "^2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev", - "dev-develop": "2.6-dev" + "dev-master": "2.x-dev" } }, "autoload": { "psr-4": { - "Zend\\Escaper\\": "src/" + "Http\\Client\\Curl\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Михаил Красильников", + "email": "m.krasilnikov@yandex.ru" + } ], - "homepage": "https://github.com/zendframework/zend-escaper", + "description": "PSR-18 and HTTPlug Async client with cURL", + "homepage": "http://php-http.org", "keywords": [ - "escaper", - "zf2" + "curl", + "http", + "psr-18" ], - "time": "2015-06-03T14:05:37+00:00" + "time": "2019-03-05T19:59:23+00:00" }, { - "name": "zendframework/zend-eventmanager", - "version": "2.6.2", + "name": "php-http/discovery", + "version": "1.7.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-eventmanager.git", - "reference": "b4354f75f694504d32e7d080641854f830acb865" + "url": "https://github.com/php-http/discovery.git", + "reference": "e822f86a6983790aa17ab13aa7e69631e86806b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/b4354f75f694504d32e7d080641854f830acb865", - "reference": "b4354f75f694504d32e7d080641854f830acb865", + "url": "https://api.github.com/repos/php-http/discovery/zipball/e822f86a6983790aa17ab13aa7e69631e86806b6", + "reference": "e822f86a6983790aa17ab13aa7e69631e86806b6", "shasum": "" }, "require": { - "php": ">=5.5", - "zendframework/zend-stdlib": "~2.5" + "php": "^7.1" + }, + "conflict": { + "nyholm/psr7": "<1.0" }, "require-dev": { - "athletic/athletic": "dev-master", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0" + "akeneo/phpspec-skip-example-extension": "^4.0", + "php-http/httplug": "^1.0 || ^2.0", + "php-http/message-factory": "^1.0", + "phpspec/phpspec": "^5.1", + "puli/composer-plugin": "1.0.0-beta10" + }, + "suggest": { + "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories", + "puli/composer-plugin": "Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev", - "dev-develop": "3.0-dev" + "dev-master": "1.7-dev" } }, "autoload": { "psr-4": { - "Zend\\EventManager\\": "src/" + "Http\\Discovery\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "homepage": "https://github.com/zendframework/zend-eventmanager", + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Finds installed HTTPlug implementations and PSR-7 message factories", + "homepage": "http://php-http.org", "keywords": [ - "eventmanager", - "zf2" + "adapter", + "client", + "discovery", + "factory", + "http", + "message", + "psr7" ], - "time": "2016-01-12T23:08:36+00:00" + "time": "2019-06-30T09:04:27+00:00" }, { - "name": "zendframework/zend-filter", - "version": "2.6.0", + "name": "php-http/httplug", + "version": "v2.0.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-filter.git", - "reference": "8682c12e9870c431cf29cbb7010627f3fa88dec8" + "url": "https://github.com/php-http/httplug.git", + "reference": "b3842537338c949f2469557ef4ad4bdc47b58603" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-filter/zipball/8682c12e9870c431cf29cbb7010627f3fa88dec8", - "reference": "8682c12e9870c431cf29cbb7010627f3fa88dec8", + "url": "https://api.github.com/repos/php-http/httplug/zipball/b3842537338c949f2469557ef4ad4bdc47b58603", + "reference": "b3842537338c949f2469557ef4ad4bdc47b58603", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" + "php": "^7.0", + "php-http/promise": "^1.0", + "psr/http-client": "^1.0", + "psr/http-message": "^1.0" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "pear/archive_tar": "^1.4", - "phpunit/phpunit": "~4.0", - "zendframework/zend-crypt": "^2.6", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-uri": "^2.5" - }, - "suggest": { - "zendframework/zend-crypt": "Zend\\Crypt component, for encryption filters", - "zendframework/zend-i18n": "Zend\\I18n component for filters depending on i18n functionality", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for using the filter chain functionality", - "zendframework/zend-uri": "Zend\\Uri component, for the UriNormalize filter" + "henrikbjorn/phpspec-code-coverage": "^1.0", + "phpspec/phpspec": "^2.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev", - "dev-develop": "2.7-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Zend\\Filter\\": "src/" + "Http\\Client\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Eric GELOEN", + "email": "geloen.eric@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } ], - "description": "provides a set of commonly needed data filters", - "homepage": "https://github.com/zendframework/zend-filter", + "description": "HTTPlug, the HTTP client abstraction for PHP", + "homepage": "http://httplug.io", "keywords": [ - "filter", - "zf2" + "client", + "http" ], - "time": "2016-02-04T19:52:41+00:00" + "time": "2018-10-31T09:14:44+00:00" }, { - "name": "zendframework/zend-form", - "version": "2.7.0", + "name": "php-http/message", + "version": "1.8.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-form.git", - "reference": "7c46b6a2d04d12aacd9c32bb021d0d9d0354d5d5" + "url": "https://github.com/php-http/message.git", + "reference": "ce8f43ac1e294b54aabf5808515c3554a19c1e1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-form/zipball/7c46b6a2d04d12aacd9c32bb021d0d9d0354d5d5", - "reference": "7c46b6a2d04d12aacd9c32bb021d0d9d0354d5d5", + "url": "https://api.github.com/repos/php-http/message/zipball/ce8f43ac1e294b54aabf5808515c3554a19c1e1c", + "reference": "ce8f43ac1e294b54aabf5808515c3554a19c1e1c", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-hydrator": "^1.1 || ^2.1", - "zendframework/zend-inputfilter": "^2.6", - "zendframework/zend-stdlib": "^2.7 || ^3.0" + "clue/stream-filter": "^1.4", + "php": "^7.1", + "php-http/message-factory": "^1.0.2", + "psr/http-message": "^1.0" + }, + "provide": { + "php-http/message-factory-implementation": "1.0" }, "require-dev": { - "doctrine/annotations": "~1.0", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-captcha": "^2.5", - "zendframework/zend-code": "^2.6", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-filter": "^2.6", - "zendframework/zend-i18n": "^2.6", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-session": "^2.5", - "zendframework/zend-text": "^2.6", - "zendframework/zend-validator": "^2.6", - "zendframework/zend-view": "^2.6.2", - "zendframework/zendservice-recaptcha": "*" + "akeneo/phpspec-skip-example-extension": "^1.0", + "coduo/phpspec-data-provider-extension": "^1.0", + "ext-zlib": "*", + "guzzlehttp/psr7": "^1.0", + "henrikbjorn/phpspec-code-coverage": "^1.0", + "phpspec/phpspec": "^2.4", + "slim/slim": "^3.0", + "zendframework/zend-diactoros": "^1.0" }, "suggest": { - "zendframework/zend-captcha": "Zend\\Captcha component", - "zendframework/zend-code": "Zend\\Code component", - "zendframework/zend-eventmanager": "Zend\\EventManager component", - "zendframework/zend-filter": "Zend\\Filter component", - "zendframework/zend-i18n": "Zend\\I18n component", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component", - "zendframework/zend-validator": "Zend\\Validator component", - "zendframework/zend-view": "Zend\\View component", - "zendframework/zendservice-recaptcha": "ZendService\\ReCaptcha component" + "ext-zlib": "Used with compressor/decompressor streams", + "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories", + "slim/slim": "Used with Slim Framework PSR-7 implementation", + "zendframework/zend-diactoros": "Used with Diactoros Factories" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev", - "dev-develop": "2.8-dev" + "dev-master": "1.8-dev" } }, "autoload": { "psr-4": { - "Zend\\Form\\": "src/" - } + "Http\\Message\\": "src/" + }, + "files": [ + "src/filters.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } ], - "homepage": "https://github.com/zendframework/zend-form", + "description": "HTTP Message related tools", + "homepage": "http://php-http.org", "keywords": [ - "form", - "zf2" + "http", + "message", + "psr-7" ], - "time": "2016-02-22T21:41:46+00:00" + "time": "2019-08-05T06:55:08+00:00" }, { - "name": "zendframework/zend-http", - "version": "2.5.1", + "name": "php-http/message-factory", + "version": "v1.0.2", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-http.git", - "reference": "6cc6dee9a27fc07e0167d8779ab2258747108ed5" + "url": "https://github.com/php-http/message-factory.git", + "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-http/zipball/6cc6dee9a27fc07e0167d8779ab2258747108ed5", - "reference": "6cc6dee9a27fc07e0167d8779ab2258747108ed5", + "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1", + "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1", "shasum": "" }, "require": { - "php": ">=5.3.23", - "zendframework/zend-loader": "~2.5", - "zendframework/zend-stdlib": "~2.5", - "zendframework/zend-uri": "~2.5", - "zendframework/zend-validator": "~2.5" - }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-config": "~2.5" + "php": ">=5.4", + "psr/http-message": "^1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev", - "dev-develop": "2.6-dev" + "dev-master": "1.0-dev" } }, "autoload": { "psr-4": { - "Zend\\Http\\": "src/" + "Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } ], - "description": "provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", - "homepage": "https://github.com/zendframework/zend-http", + "description": "Factory interfaces for PSR-7 HTTP Message", + "homepage": "http://php-http.org", "keywords": [ + "factory", "http", - "zf2" + "message", + "stream", + "uri" ], - "time": "2015-06-03T15:32:01+00:00" + "time": "2015-12-19T14:08:53+00:00" }, { - "name": "zendframework/zend-hydrator", - "version": "1.1.0", + "name": "php-http/promise", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-hydrator.git", - "reference": "22652e1661a5a10b3f564cf7824a2206cf5a4a65" + "url": "https://github.com/php-http/promise.git", + "reference": "dc494cdc9d7160b9a09bd5573272195242ce7980" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-hydrator/zipball/22652e1661a5a10b3f564cf7824a2206cf5a4a65", - "reference": "22652e1661a5a10b3f564cf7824a2206cf5a4a65", + "url": "https://api.github.com/repos/php-http/promise/zipball/dc494cdc9d7160b9a09bd5573272195242ce7980", + "reference": "dc494cdc9d7160b9a09bd5573272195242ce7980", "shasum": "" }, - "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, "require-dev": { - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "^2.0@dev", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-filter": "^2.6", - "zendframework/zend-inputfilter": "^2.6", - "zendframework/zend-serializer": "^2.6.1", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3" - }, - "suggest": { - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0, to support aggregate hydrator usage", - "zendframework/zend-filter": "^2.6, to support naming strategy hydrator usage", - "zendframework/zend-serializer": "^2.6.1, to use the SerializableStrategy", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3, to support hydrator plugin manager usage" + "henrikbjorn/phpspec-code-coverage": "^1.0", + "phpspec/phpspec": "^2.4" }, "type": "library", "extra": { "branch-alias": { - "dev-release-1.0": "1.0-dev", - "dev-release-1.1": "1.1-dev", - "dev-master": "2.0-dev", - "dev-develop": "2.1-dev" + "dev-master": "1.1-dev" } }, "autoload": { "psr-4": { - "Zend\\Hydrator\\": "src/" + "Http\\Promise\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + }, + { + "name": "Joel Wurtz", + "email": "joel.wurtz@gmail.com" + } ], - "homepage": "https://github.com/zendframework/zend-hydrator", + "description": "Promise used for asynchronous HTTP requests", + "homepage": "http://httplug.io", "keywords": [ - "hydrator", - "zf2" + "promise" ], - "time": "2016-02-18T22:38:26+00:00" + "time": "2016-01-26T13:27:02+00:00" }, { - "name": "zendframework/zend-inputfilter", - "version": "2.6.0", + "name": "psr/container", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-inputfilter.git", - "reference": "b3b043284b7eec2ae5a3c51e1f81db06f2e167a1" + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-inputfilter/zipball/b3b043284b7eec2ae5a3c51e1f81db06f2e167a1", - "reference": "b3b043284b7eec2ae5a3c51e1f81db06f2e167a1", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-filter": "^2.6", - "zendframework/zend-stdlib": "^2.7 || ^3.0", - "zendframework/zend-validator": "^2.6" - }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "^4.5", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3" - }, - "suggest": { - "zendframework/zend-servicemanager": "To support plugin manager support" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev", - "dev-develop": "2.7-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Zend\\InputFilter\\": "src/" + "Psr\\Container\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "homepage": "https://github.com/zendframework/zend-inputfilter", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "inputfilter", - "zf2" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], - "time": "2016-02-18T19:49:24+00:00" + "time": "2017-02-14T16:28:37+00:00" }, { - "name": "zendframework/zend-loader", - "version": "2.5.0", + "name": "psr/http-client", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-loader.git", - "reference": "c5fd2f071bde071f4363def7dea8dec7393e135c" + "url": "https://github.com/php-fig/http-client.git", + "reference": "496a823ef742b632934724bf769560c2a5c7c44e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/c5fd2f071bde071f4363def7dea8dec7393e135c", - "reference": "c5fd2f071bde071f4363def7dea8dec7393e135c", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/496a823ef742b632934724bf769560c2a5c7c44e", + "reference": "496a823ef742b632934724bf769560c2a5c7c44e", "shasum": "" }, "require": { - "php": ">=5.3.23" - }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0" + "php": "^7.0", + "psr/http-message": "^1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev", - "dev-develop": "2.6-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Zend\\Loader\\": "src/" + "Psr\\Http\\Client\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } ], - "homepage": "https://github.com/zendframework/zend-loader", + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", "keywords": [ - "loader", - "zf2" + "http", + "http-client", + "psr", + "psr-18" ], - "time": "2015-06-03T14:05:47+00:00" + "time": "2018-10-30T23:29:13+00:00" }, { - "name": "zendframework/zend-modulemanager", - "version": "2.5.1", + "name": "psr/http-factory", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-modulemanager.git", - "reference": "80592b9ba35a5f91978235c458851cc3e914ae90" + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-modulemanager/zipball/80592b9ba35a5f91978235c458851cc3e914ae90", - "reference": "80592b9ba35a5f91978235c458851cc3e914ae90", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", "shasum": "" }, "require": { - "php": ">=5.3.23", - "zendframework/zend-eventmanager": "~2.5", - "zendframework/zend-stdlib": "~2.5" - }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-config": "~2.5", - "zendframework/zend-console": "~2.5", - "zendframework/zend-di": "~2.5", - "zendframework/zend-loader": "~2.5", - "zendframework/zend-mvc": "~2.5", - "zendframework/zend-servicemanager": "~2.5" - }, - "suggest": { - "zendframework/zend-config": "Zend\\Config component", - "zendframework/zend-console": "Zend\\Console component", - "zendframework/zend-loader": "Zend\\Loader component", - "zendframework/zend-mvc": "Zend\\Mvc component", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component" + "php": ">=7.0.0", + "psr/http-message": "^1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev", - "dev-develop": "2.6-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Zend\\ModuleManager\\": "src/" + "Psr\\Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "homepage": "https://github.com/zendframework/zend-modulemanager", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", "keywords": [ - "modulemanager", - "zf2" + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" ], - "time": "2015-06-03T15:32:02+00:00" + "time": "2019-04-30T12:38:16+00:00" }, { - "name": "zendframework/zend-mvc", - "version": "2.7.0", + "name": "psr/http-message", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-mvc.git", - "reference": "073d391a4996ff0ad338fff3f92cadf5aeecda9c" + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mvc/zipball/073d391a4996ff0ad338fff3f92cadf5aeecda9c", - "reference": "073d391a4996ff0ad338fff3f92cadf5aeecda9c", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "shasum": "" }, "require": { - "container-interop/container-interop": "^1.1", - "php": "^5.5 || ^7.0", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-form": "^2.7", - "zendframework/zend-hydrator": "^1.1 || ^2.1", - "zendframework/zend-psr7bridge": "^0.2", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-stdlib": "^2.7.5 || ^3.0" - }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-authentication": "^2.5.3", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-console": "^2.6", - "zendframework/zend-di": "^2.6", - "zendframework/zend-filter": "^2.6.1", - "zendframework/zend-http": "^2.5.4", - "zendframework/zend-i18n": "^2.6", - "zendframework/zend-inputfilter": "^2.6", - "zendframework/zend-json": "^2.6.1", - "zendframework/zend-log": "^2.7.1", - "zendframework/zend-modulemanager": "^2.7.1", - "zendframework/zend-serializer": "^2.6.1", - "zendframework/zend-session": "^2.6.2", - "zendframework/zend-text": "^2.6", - "zendframework/zend-uri": "^2.5", - "zendframework/zend-validator": "^2.6", - "zendframework/zend-version": "^2.5", - "zendframework/zend-view": "^2.6.3" - }, - "suggest": { - "zendframework/zend-authentication": "Zend\\Authentication component for Identity plugin", - "zendframework/zend-config": "Zend\\Config component", - "zendframework/zend-console": "Zend\\Console component", - "zendframework/zend-di": "Zend\\Di component", - "zendframework/zend-filter": "Zend\\Filter component", - "zendframework/zend-http": "Zend\\Http component", - "zendframework/zend-i18n": "Zend\\I18n component for translatable segments", - "zendframework/zend-inputfilter": "Zend\\Inputfilter component", - "zendframework/zend-json": "Zend\\Json component", - "zendframework/zend-log": "Zend\\Log component", - "zendframework/zend-modulemanager": "Zend\\ModuleManager component", - "zendframework/zend-serializer": "Zend\\Serializer component", - "zendframework/zend-session": "Zend\\Session component for FlashMessenger, PRG, and FPRG plugins", - "zendframework/zend-text": "Zend\\Text component", - "zendframework/zend-uri": "Zend\\Uri component", - "zendframework/zend-validator": "Zend\\Validator component", - "zendframework/zend-version": "Zend\\Version component", - "zendframework/zend-view": "Zend\\View component" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev", - "dev-develop": "2.8-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Zend\\Mvc\\": "src/" + "Psr\\Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } ], - "homepage": "https://github.com/zendframework/zend-mvc", + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", "keywords": [ - "mvc", - "zf2" + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" ], - "time": "2016-03-01T19:19:37+00:00" + "time": "2016-08-06T14:39:51+00:00" }, { - "name": "zendframework/zend-psr7bridge", - "version": "0.2.0", + "name": "ramsey/uuid", + "version": "3.8.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-psr7bridge.git", - "reference": "b7a819be28819a90c9d2c24656db00c880e12ed2" + "url": "https://github.com/ramsey/uuid.git", + "reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-psr7bridge/zipball/b7a819be28819a90c9d2c24656db00c880e12ed2", - "reference": "b7a819be28819a90c9d2c24656db00c880e12ed2", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3", + "reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3", "shasum": "" }, "require": { - "php": ">=5.5", - "psr/http-message": "^1.0", - "zendframework/zend-diactoros": "^1.1", - "zendframework/zend-http": "^2.5" + "paragonie/random_compat": "^1.0|^2.0|9.99.99", + "php": "^5.4 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "replace": { + "rhumsaa/uuid": "self.version" }, "require-dev": { - "phpunit/phpunit": "^4.7", + "codeception/aspect-mock": "^1.0 | ~2.0.0", + "doctrine/annotations": "~1.2.0", + "goaop/framework": "1.0.0-alpha.2 | ^1.0 | ~2.1.0", + "ircmaxell/random-lib": "^1.1", + "jakub-onderka/php-parallel-lint": "^0.9.0", + "mockery/mockery": "^0.9.9", + "moontoast/math": "^1.1", + "php-mock/php-mock-phpunit": "^0.3|^1.1", + "phpunit/phpunit": "^4.7|^5.0|^6.5", "squizlabs/php_codesniffer": "^2.3" }, + "suggest": { + "ext-ctype": "Provides support for PHP Ctype functions", + "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", + "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", + "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", + "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev", - "dev-develop": "1.1-dev" + "dev-master": "3.x-dev" } }, "autoload": { "psr-4": { - "Zend\\Psr7Bridge\\": "src/" + "Ramsey\\Uuid\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Marijn Huizendveld", + "email": "marijn.huizendveld@gmail.com" + }, + { + "name": "Thibaud Fabre", + "email": "thibaud@aztech.io" + }, + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } ], - "description": "PSR-7 <-> Zend\\Http bridge", - "homepage": "https://github.com/zendframework/zend-psr7bridge", + "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", + "homepage": "https://github.com/ramsey/uuid", "keywords": [ - "http", - "psr", - "psr-7" + "guid", + "identifier", + "uuid" ], - "time": "2015-09-28T15:47:35+00:00" + "time": "2018-07-19T23:38:55+00:00" }, { - "name": "zendframework/zend-servicemanager", - "version": "2.7.5", + "name": "sentry/sentry", + "version": "2.1.2", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-servicemanager.git", - "reference": "fb5b54db5ead533b38e311f14e9c01a79218bf2b" + "url": "https://github.com/getsentry/sentry-php.git", + "reference": "646f6ada8b89a08063e31f54ed6d260bd6879239" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/fb5b54db5ead533b38e311f14e9c01a79218bf2b", - "reference": "fb5b54db5ead533b38e311f14e9c01a79218bf2b", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/646f6ada8b89a08063e31f54ed6d260bd6879239", + "reference": "646f6ada8b89a08063e31f54ed6d260bd6879239", "shasum": "" }, "require": { - "container-interop/container-interop": "~1.0", - "php": "^5.5 || ^7.0" + "ext-json": "*", + "ext-mbstring": "*", + "jean85/pretty-package-versions": "^1.2", + "php": "^7.1", + "php-http/async-client-implementation": "^1.0", + "php-http/client-common": "^1.5|^2.0", + "php-http/discovery": "^1.6.1", + "php-http/httplug": "^1.1|^2.0", + "php-http/message": "^1.5", + "psr/http-message-implementation": "^1.0", + "ramsey/uuid": "^3.3", + "symfony/options-resolver": "^2.7|^3.0|^4.0", + "zendframework/zend-diactoros": "^1.4|^2.0" }, - "require-dev": { - "athletic/athletic": "dev-master", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-di": "~2.5", - "zendframework/zend-mvc": "~2.5" + "conflict": { + "php-http/client-common": "1.8.0", + "raven/raven": "*" }, - "suggest": { - "ocramius/proxy-manager": "ProxyManager 0.5.* to handle lazy initialization of services", - "zendframework/zend-di": "Zend\\Di component" + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.13", + "monolog/monolog": "^1.3|^2.0", + "php-http/mock-client": "^1.0", + "phpstan/phpstan": "^0.10.3", + "phpstan/phpstan-phpunit": "^0.10", + "phpunit/phpunit": "^7.0", + "symfony/phpunit-bridge": "^4.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev", - "dev-develop": "3.0-dev" + "dev-master": "2.1.x-dev" } }, "autoload": { + "files": [ + "src/Sdk.php" + ], "psr-4": { - "Zend\\ServiceManager\\": "src/" + "Sentry\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-servicemanager", + "authors": [ + { + "name": "Sentry", + "email": "accounts@sentry.io" + } + ], + "description": "A PHP SDK for Sentry (http://sentry.io)", + "homepage": "http://sentry.io", "keywords": [ - "servicemanager", - "zf2" + "crash-reporting", + "crash-reports", + "error-handler", + "error-monitoring", + "log", + "logging", + "sentry" ], - "time": "2016-02-02T14:11:46+00:00" + "time": "2019-08-22T07:37:30+00:00" }, { - "name": "zendframework/zend-stdlib", - "version": "2.7.5", + "name": "symfony/options-resolver", + "version": "v4.3.4", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-stdlib.git", - "reference": "b894a85f3ef8a52e7aa62c3c5aa245e383c70cca" + "url": "https://github.com/symfony/options-resolver.git", + "reference": "81c2e120522a42f623233968244baebd6b36cb6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/b894a85f3ef8a52e7aa62c3c5aa245e383c70cca", - "reference": "b894a85f3ef8a52e7aa62c3c5aa245e383c70cca", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/81c2e120522a42f623233968244baebd6b36cb6a", + "reference": "81c2e120522a42f623233968244baebd6b36cb6a", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-hydrator": "~1.0" - }, - "require-dev": { - "athletic/athletic": "~0.1", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-config": "~2.5", - "zendframework/zend-eventmanager": "~2.5", - "zendframework/zend-filter": "~2.5", - "zendframework/zend-inputfilter": "~2.5", - "zendframework/zend-serializer": "~2.5", - "zendframework/zend-servicemanager": "~2.5" - }, - "suggest": { - "zendframework/zend-eventmanager": "To support aggregate hydrator usage", - "zendframework/zend-filter": "To support naming strategy hydrator usage", - "zendframework/zend-serializer": "Zend\\Serializer component", - "zendframework/zend-servicemanager": "To support hydrator plugin manager usage" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-release-2.7": "2.7-dev", - "dev-master": "3.0-dev", - "dev-develop": "3.1-dev" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "Zend\\Stdlib\\": "src/" - } + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "homepage": "https://github.com/zendframework/zend-stdlib", + "description": "Symfony OptionsResolver Component", + "homepage": "https://symfony.com", "keywords": [ - "stdlib", - "zf2" + "config", + "configuration", + "options" ], - "time": "2016-02-16T18:25:48+00:00" + "time": "2019-08-08T09:29:19+00:00" }, { - "name": "zendframework/zend-uri", - "version": "2.5.1", + "name": "symfony/polyfill-ctype", + "version": "v1.12.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-uri.git", - "reference": "fe6c7f4c8d9037fe551898a538a2b6d39483f572" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "550ebaac289296ce228a706d0867afc34687e3f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/fe6c7f4c8d9037fe551898a538a2b6d39483f572", - "reference": "fe6c7f4c8d9037fe551898a538a2b6d39483f572", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", + "reference": "550ebaac289296ce228a706d0867afc34687e3f4", "shasum": "" }, "require": { - "php": ">=5.3.23", - "zendframework/zend-escaper": "~2.5", - "zendframework/zend-validator": "~2.5" + "php": ">=5.3.3" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0" + "suggest": { + "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev", - "dev-develop": "2.6-dev" + "dev-master": "1.12-dev" } }, "autoload": { "psr-4": { - "Zend\\Uri\\": "src/" - } + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "description": "a component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", - "homepage": "https://github.com/zendframework/zend-uri", + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", "keywords": [ - "uri", - "zf2" + "compatibility", + "ctype", + "polyfill", + "portable" ], - "time": "2015-06-03T15:32:03+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { - "name": "zendframework/zend-validator", - "version": "2.6.0", + "name": "zendframework/zend-diactoros", + "version": "2.1.3", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-validator.git", - "reference": "1315fead53358054e3f5fcf440c1a4cd5f0724db" + "url": "https://github.com/zendframework/zend-diactoros.git", + "reference": "279723778c40164bcf984a2df12ff2c6ec5e61c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-validator/zipball/1315fead53358054e3f5fcf440c1a4cd5f0724db", - "reference": "1315fead53358054e3f5fcf440c1a4cd5f0724db", + "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/279723778c40164bcf984a2df12ff2c6ec5e61c1", + "reference": "279723778c40164bcf984a2df12ff2c6ec5e61c1", "shasum": "" }, "require": { - "container-interop/container-interop": "^1.1", - "php": "^5.5 || ^7.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" + "php": "^7.1", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0" }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "^4.0", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-config": "^2.6", - "zendframework/zend-db": "^2.5", - "zendframework/zend-filter": "^2.6", - "zendframework/zend-http": "^2.5.4", - "zendframework/zend-i18n": "^2.6", - "zendframework/zend-math": "^2.6", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-session": "^2.5", - "zendframework/zend-uri": "^2.5" + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" }, - "suggest": { - "zendframework/zend-db": "Zend\\Db component", - "zendframework/zend-filter": "Zend\\Filter component, required by the Digits validator", - "zendframework/zend-i18n": "Zend\\I18n component to allow translation of validation error messages as well as to use the various Date validators", - "zendframework/zend-i18n-resources": "Translations of validator messages", - "zendframework/zend-math": "Zend\\Math component", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", - "zendframework/zend-session": "Zend\\Session component", - "zendframework/zend-uri": "Zend\\Uri component, required by the Uri and Sitemap\\Loc validators" + "require-dev": { + "ext-dom": "*", + "ext-libxml": "*", + "http-interop/http-factory-tests": "^0.5.0", + "php-http/psr7-integration-tests": "dev-master", + "phpunit/phpunit": "^7.0.2", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev", - "dev-develop": "2.7-dev" + "dev-master": "2.1.x-dev", + "dev-develop": "2.2.x-dev", + "dev-release-1.8": "1.8.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\\Validator\\": "src/" + "Zend\\Diactoros\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "provides a set of commonly needed validators", - "homepage": "https://github.com/zendframework/zend-validator", + "description": "PSR HTTP Message implementations", "keywords": [ - "validator", - "zf2" + "http", + "psr", + "psr-7" ], - "time": "2016-02-17T17:59:34+00:00" + "time": "2019-07-10T16:13:25+00:00" }, { - "name": "zendframework/zend-view", - "version": "2.5.1", + "name": "zendframework/zend-servicemanager", + "version": "3.4.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-view.git", - "reference": "d74c7c90df6372154cdc10c2aecf7f4c0175ad73" + "url": "https://github.com/zendframework/zend-servicemanager.git", + "reference": "a1ed6140d0d3ee803fec96582593ed024950067b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-view/zipball/d74c7c90df6372154cdc10c2aecf7f4c0175ad73", - "reference": "d74c7c90df6372154cdc10c2aecf7f4c0175ad73", + "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/a1ed6140d0d3ee803fec96582593ed024950067b", + "reference": "a1ed6140d0d3ee803fec96582593ed024950067b", "shasum": "" }, "require": { - "php": ">=5.3.23", - "zendframework/zend-eventmanager": "~2.5", - "zendframework/zend-loader": "~2.5", - "zendframework/zend-stdlib": "~2.5" + "container-interop/container-interop": "^1.2", + "php": "^5.6 || ^7.0", + "psr/container": "^1.0", + "zendframework/zend-stdlib": "^3.2.1" + }, + "provide": { + "container-interop/container-interop-implementation": "^1.2", + "psr/container-implementation": "^1.0" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-authentication": "~2.5", - "zendframework/zend-cache": "~2.5", - "zendframework/zend-config": "~2.5", - "zendframework/zend-console": "~2.5", - "zendframework/zend-escaper": "~2.5", - "zendframework/zend-feed": "~2.5", - "zendframework/zend-filter": "~2.5", - "zendframework/zend-http": "~2.5", - "zendframework/zend-i18n": "~2.5", - "zendframework/zend-json": "~2.5", - "zendframework/zend-log": "~2.5", - "zendframework/zend-modulemanager": "~2.5", - "zendframework/zend-mvc": "~2.5", - "zendframework/zend-navigation": "~2.5", - "zendframework/zend-paginator": "~2.5", - "zendframework/zend-permissions-acl": "~2.5", - "zendframework/zend-serializer": "~2.5", - "zendframework/zend-servicemanager": "~2.5", - "zendframework/zend-session": "dev-master", - "zendframework/zend-uri": "~2.5" + "mikey179/vfsstream": "^1.6.5", + "ocramius/proxy-manager": "^1.0 || ^2.0", + "phpbench/phpbench": "^0.13.0", + "phpunit/phpunit": "^5.7.25 || ^6.4.4", + "zendframework/zend-coding-standard": "~1.0.0" }, "suggest": { - "zendframework/zend-authentication": "Zend\\Authentication component", - "zendframework/zend-escaper": "Zend\\Escaper component", - "zendframework/zend-feed": "Zend\\Feed component", - "zendframework/zend-filter": "Zend\\Filter component", - "zendframework/zend-http": "Zend\\Http component", - "zendframework/zend-i18n": "Zend\\I18n component", - "zendframework/zend-json": "Zend\\Json component", - "zendframework/zend-mvc": "Zend\\Mvc component", - "zendframework/zend-navigation": "Zend\\Navigation component", - "zendframework/zend-paginator": "Zend\\Paginator component", - "zendframework/zend-permissions-acl": "Zend\\Permissions\\Acl component", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component", - "zendframework/zend-uri": "Zend\\Uri component" + "ocramius/proxy-manager": "ProxyManager 1.* to handle lazy initialization of services", + "zendframework/zend-stdlib": "zend-stdlib ^2.5 if you wish to use the MergeReplaceKey or MergeRemoveKey features in Config instances" }, - "type": "library", + "bin": [ + "bin/generate-deps-for-config-factory", + "bin/generate-factory-for-class" + ], + "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev", - "dev-develop": "2.6-dev" + "dev-master": "3.3-dev", + "dev-develop": "4.0-dev" } }, "autoload": { "psr-4": { - "Zend\\View\\": "src/" + "Zend\\ServiceManager\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "provides a system of helpers, output filters, and variable escaping", - "homepage": "https://github.com/zendframework/zend-view", + "description": "Factory-Driven Dependency Injection Container", "keywords": [ - "view", - "zf2" + "PSR-11", + "ZendFramework", + "dependency-injection", + "di", + "dic", + "service-manager", + "servicemanager", + "zf" + ], + "time": "2018-12-22T06:05:09+00:00" + }, + { + "name": "zendframework/zend-stdlib", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-stdlib.git", + "reference": "66536006722aff9e62d1b331025089b7ec71c065" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/66536006722aff9e62d1b331025089b7ec71c065", + "reference": "66536006722aff9e62d1b331025089b7ec71c065", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "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.2.x-dev", + "dev-develop": "3.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Stdlib\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" ], - "time": "2015-06-03T15:32:03+00:00" + "description": "SPL extensions, array utilities, error handlers, and more", + "keywords": [ + "ZendFramework", + "stdlib", + "zf" + ], + "time": "2018-08-28T21:34:05+00:00" } ], "packages-dev": [ { "name": "composer/semver", - "version": "1.4.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "84c47f3d8901440403217afc120683c7385aecb8" + "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/84c47f3d8901440403217afc120683c7385aecb8", - "reference": "84c47f3d8901440403217afc120683c7385aecb8", + "url": "https://api.github.com/repos/composer/semver/zipball/46d9139568ccb8d9e7cdd4539cab7347568a5e2e", + "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e", "shasum": "" }, "require": { @@ -1232,94 +1374,83 @@ "validation", "versioning" ], - "time": "2016-03-30T13:16:03+00:00" + "time": "2019-03-19T17:25:45+00:00" }, { - "name": "dflydev/markdown", - "version": "v1.0.0", + "name": "composer/xdebug-handler", + "version": "1.3.3", "source": { "type": "git", - "url": "https://github.com/dflydev/dflydev-markdown.git", - "reference": "76501a808522dbe40a5a71d272bd08d54cbae03d" + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-markdown/zipball/76501a808522dbe40a5a71d272bd08d54cbae03d", - "reference": "76501a808522dbe40a5a71d272bd08d54cbae03d", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f", + "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f", "shasum": "" }, "require": { - "php": ">=5.3" + "php": "^5.3.2 || ^7.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" }, "type": "library", "autoload": { - "psr-0": { - "dflydev\\markdown": "src" + "psr-4": { + "Composer\\XdebugHandler\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "New BSD License" + "MIT" ], "authors": [ { - "name": "Dragonfly Development Inc.", - "email": "info@dflydev.com", - "homepage": "http://dflydev.com" - }, - { - "name": "Beau Simensen", - "email": "beau@dflydev.com", - "homepage": "http://beausimensen.com" - }, - { - "name": "Michel Fortin", - "homepage": "http://michelf.com" - }, - { - "name": "John Gruber", - "homepage": "http://daringfireball.net" + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "PHP Markdown & Extra", - "homepage": "http://github.com/dflydev/dflydev-markdown", + "description": "Restarts a process without xdebug.", "keywords": [ - "markdown" + "Xdebug", + "performance" ], - "abandoned": "michelf/php-markdown", - "time": "2012-01-02T23:11:32+00:00" + "time": "2019-05-27T17:52:04+00:00" }, { "name": "doctrine/annotations", - "version": "v1.2.0", + "version": "v1.7.0", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "d9b1a37e9351ddde1f19f09a02e3d6ee92e82efd" + "reference": "fa4c4e861e809d6a1103bd620cce63ed91aedfeb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/d9b1a37e9351ddde1f19f09a02e3d6ee92e82efd", - "reference": "d9b1a37e9351ddde1f19f09a02e3d6ee92e82efd", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/fa4c4e861e809d6a1103bd620cce63ed91aedfeb", + "reference": "fa4c4e861e809d6a1103bd620cce63ed91aedfeb", "shasum": "" }, "require": { "doctrine/lexer": "1.*", - "php": ">=5.3.2" + "php": "^7.1" }, "require-dev": { "doctrine/cache": "1.*", - "phpunit/phpunit": "4.*" + "phpunit/phpunit": "^7.5@dev" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "1.7.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Annotations\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" } }, "notification-url": "https://packagist.org/downloads/", @@ -1327,16 +1458,9 @@ "MIT" ], "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/", - "role": "Creator" - }, { "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" + "email": "guilhermeblanco@gmail.com" }, { "name": "Roman Borschel", @@ -1346,11 +1470,13 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, { "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" + "email": "schmittjoh@gmail.com" } ], "description": "Docblock Annotations Parser", @@ -1360,41 +1486,43 @@ "docblock", "parser" ], - "time": "2014-07-06T15:52:21+00:00" + "time": "2019-08-08T18:11:40+00:00" }, { "name": "doctrine/instantiator", - "version": "1.0.4", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119" + "reference": "a2c590166b2133a4633738648b6b064edae0814a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119", - "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", + "reference": "a2c590166b2133a4633738648b6b064edae0814a", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "php": "^7.1" }, "require-dev": { - "athletic/athletic": "~0.1.8", + "doctrine/coding-standard": "^6.0", "ext-pdo": "*", "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "2.0.*@ALPHA" + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Instantiator\\": "src" + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1409,34 +1537,44 @@ } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ "constructor", "instantiate" ], - "time": "2014-10-13T12:58:55+00:00" + "time": "2019-03-17T17:37:11+00:00" }, { "name": "doctrine/lexer", - "version": "v1.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb" + "reference": "e17f069ede36f7534b95adec71910ed1b49c74ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/2f708a85bb3aab5d99dab8be435abd73e0b18acb", - "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e17f069ede36f7534b95adec71910ed1b49c74ea", + "reference": "e17f069ede36f7534b95adec71910ed1b49c74ea", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", @@ -1446,8 +1584,7 @@ "authors": [ { "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" + "email": "guilhermeblanco@gmail.com" }, { "name": "Roman Borschel", @@ -1455,40 +1592,43 @@ }, { "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" + "email": "schmittjoh@gmail.com" } ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ + "annotations", + "docblock", "lexer", - "parser" + "parser", + "php" ], - "time": "2013-01-12T18:59:04+00:00" + "time": "2019-07-30T19:33:28+00:00" }, { "name": "facile-it/facile-coding-standard", - "version": "dev-composer-plugin", + "version": "0.3.1", "source": { "type": "git", "url": "https://github.com/facile-it/facile-coding-standard.git", - "reference": "f15208d1ac823c7039f68bbb5e74ed2235c25083" + "reference": "2bceb1aa76d822f88ad945cbbe1330d3290466fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facile-it/facile-coding-standard/zipball/f15208d1ac823c7039f68bbb5e74ed2235c25083", - "reference": "f15208d1ac823c7039f68bbb5e74ed2235c25083", + "url": "https://api.github.com/repos/facile-it/facile-coding-standard/zipball/2bceb1aa76d822f88ad945cbbe1330d3290466fc", + "reference": "2bceb1aa76d822f88ad945cbbe1330d3290466fc", "shasum": "" }, "require": { "composer-plugin-api": "^1.1", - "friendsofphp/php-cs-fixer": "^2.4.1", - "php": "^7.0" + "ext-json": "*", + "friendsofphp/php-cs-fixer": "^2.13.0", + "php": "^7.1" }, "require-dev": { "composer/composer": "^1.3.2", + "composer/semver": "^1.4", "mikey179/vfsstream": "^1.6", "phpunit/phpunit": "^6.2" }, @@ -1511,53 +1651,58 @@ "facile", "facile.it" ], - "time": "2017-08-30T11:02:50+00:00" + "time": "2018-09-19T15:36:21+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.6.1", + "version": "v2.15.3", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "a0484335b26a05b4353f7a0691a887b7a3706fe5" + "reference": "705490b0f282f21017d73561e9498d2b622ee34c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/a0484335b26a05b4353f7a0691a887b7a3706fe5", - "reference": "a0484335b26a05b4353f7a0691a887b7a3706fe5", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/705490b0f282f21017d73561e9498d2b622ee34c", + "reference": "705490b0f282f21017d73561e9498d2b622ee34c", "shasum": "" }, "require": { "composer/semver": "^1.4", + "composer/xdebug-handler": "^1.2", "doctrine/annotations": "^1.2", "ext-json": "*", "ext-tokenizer": "*", - "gecko-packages/gecko-php-unit": "^2.0", - "php": "^5.6 || >=7.0 <7.3", - "sebastian/diff": "^1.4", - "symfony/console": "^3.2", - "symfony/event-dispatcher": "^3.0", - "symfony/filesystem": "^3.0", - "symfony/finder": "^3.0", - "symfony/options-resolver": "^3.0", + "php": "^5.6 || ^7.0", + "php-cs-fixer/diff": "^1.3", + "symfony/console": "^3.4.17 || ^4.1.6", + "symfony/event-dispatcher": "^3.0 || ^4.0", + "symfony/filesystem": "^3.0 || ^4.0", + "symfony/finder": "^3.0 || ^4.0", + "symfony/options-resolver": "^3.0 || ^4.0", "symfony/polyfill-php70": "^1.0", "symfony/polyfill-php72": "^1.4", - "symfony/process": "^3.0", - "symfony/stopwatch": "^3.0" - }, - "conflict": { - "hhvm": "*" + "symfony/process": "^3.0 || ^4.0", + "symfony/stopwatch": "^3.0 || ^4.0" }, "require-dev": { - "johnkary/phpunit-speedtrap": "^1.1", + "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0", "justinrainbow/json-schema": "^5.0", + "keradus/cli-executor": "^1.2", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.1", "php-cs-fixer/accessible-object": "^1.0", - "phpunit/phpunit": "^4.8.35 || ^5.4.3", - "satooshi/php-coveralls": "^1.0", - "symfony/phpunit-bridge": "^3.2.2" + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.1", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.1", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.1", + "phpunitgoodpractices/traits": "^1.8", + "symfony/phpunit-bridge": "^4.3", + "symfony/yaml": "^3.0 || ^4.0" }, "suggest": { "ext-mbstring": "For handling non-UTF8 characters in cache signature.", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." }, "bin": [ @@ -1569,11 +1714,15 @@ "PhpCsFixer\\": "src/" }, "classmap": [ - "tests/Test/Assert/AssertTokensTrait.php", "tests/Test/AbstractFixerTestCase.php", + "tests/Test/AbstractIntegrationCaseFactory.php", "tests/Test/AbstractIntegrationTestCase.php", + "tests/Test/Assert/AssertTokensTrait.php", "tests/Test/IntegrationCase.php", - "tests/Test/IntegrationCaseFactory.php" + "tests/Test/IntegrationCaseFactory.php", + "tests/Test/IntegrationCaseFactoryInterface.php", + "tests/Test/InternalIntegrationCaseFactory.php", + "tests/TestCase.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1581,165 +1730,241 @@ "MIT" ], "authors": [ - { - "name": "Dariusz Rumiński", - "email": "dariusz.ruminski@gmail.com" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Dariusz Rumiński", + "email": "dariusz.ruminski@gmail.com" } ], "description": "A tool to automatically fix PHP code style", - "time": "2017-09-29T15:11:27+00:00" + "time": "2019-08-31T12:51:54+00:00" }, { - "name": "gecko-packages/gecko-php-unit", - "version": "v2.0", + "name": "myclabs/deep-copy", + "version": "1.9.3", "source": { "type": "git", - "url": "https://github.com/GeckoPackages/GeckoPHPUnit.git", - "reference": "40a697ec261f3526e8196363b481b24383740c13" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GeckoPackages/GeckoPHPUnit/zipball/40a697ec261f3526e8196363b481b24383740c13", - "reference": "40a697ec261f3526e8196363b481b24383740c13", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", + "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", "shasum": "" }, "require": { - "php": "^5.3.6 || ^7.0" + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" }, "require-dev": { - "phpunit/phpunit": "4.0" + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" }, "type": "library", "autoload": { "psr-4": { - "GeckoPackages\\PHPUnit\\": "src\\PHPUnit" - } + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Additional PHPUnit tests.", - "homepage": "https://github.com/GeckoPackages", + "description": "Create deep copies (clones) of your objects", "keywords": [ - "extension", - "filesystem", - "phpunit" + "clone", + "copy", + "duplicate", + "object", + "object graph" ], - "time": "2016-11-22T11:01:27+00:00" + "time": "2019-08-09T12:45:53+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.3.0", + "name": "nette/bootstrap", + "version": "v3.0.0", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "96fbdc07635989c35c5a1912379f4c4b2ab15fd5" + "url": "https://github.com/nette/bootstrap.git", + "reference": "e1075af05c211915e03e0c86542f3ba5433df4a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/96fbdc07635989c35c5a1912379f4c4b2ab15fd5", - "reference": "96fbdc07635989c35c5a1912379f4c4b2ab15fd5", + "url": "https://api.github.com/repos/nette/bootstrap/zipball/e1075af05c211915e03e0c86542f3ba5433df4a3", + "reference": "e1075af05c211915e03e0c86542f3ba5433df4a3", "shasum": "" }, "require": { - "php": ">=5.4.0" + "nette/di": "^3.0", + "nette/utils": "^3.0", + "php": ">=7.1" }, "require-dev": { - "doctrine/collections": "1.*", - "phpunit/phpunit": "~4.1" + "latte/latte": "^2.2", + "nette/application": "^3.0", + "nette/caching": "^3.0", + "nette/database": "^3.0", + "nette/forms": "^3.0", + "nette/http": "^3.0", + "nette/mail": "^3.0", + "nette/robot-loader": "^3.0", + "nette/safe-stream": "^2.2", + "nette/security": "^3.0", + "nette/tester": "^2.0", + "tracy/tracy": "^2.6" + }, + "suggest": { + "nette/robot-loader": "to use Configurator::createRobotLoader()", + "tracy/tracy": "to use Configurator::enableTracy()" }, "type": "library", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], - "description": "Create deep copies (clones) of your objects", - "homepage": "https://github.com/myclabs/DeepCopy", + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🅱 Nette Bootstrap: the simple way to configure and bootstrap your Nette application.", + "homepage": "https://nette.org", "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "bootstrapping", + "configurator", + "nette" ], - "time": "2015-03-21T22:40:23+00:00" + "time": "2019-03-26T12:59:07+00:00" }, { - "name": "paragonie/random_compat", - "version": "v1.0.0", + "name": "nette/di", + "version": "v3.0.1", "source": { "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "a1d9f267eb8b8ad560e54e397a5ed1e3b78097d1" + "url": "https://github.com/nette/di.git", + "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/a1d9f267eb8b8ad560e54e397a5ed1e3b78097d1", - "reference": "a1d9f267eb8b8ad560e54e397a5ed1e3b78097d1", + "url": "https://api.github.com/repos/nette/di/zipball/4aff517a1c6bb5c36fa09733d4cea089f529de6d", + "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d", "shasum": "" }, "require": { - "php": ">=5.2.0" + "ext-tokenizer": "*", + "nette/neon": "^3.0", + "nette/php-generator": "^3.2.2", + "nette/robot-loader": "^3.2", + "nette/schema": "^1.0", + "nette/utils": "^3.0", + "php": ">=7.1" + }, + "conflict": { + "nette/bootstrap": "<3.0" + }, + "require-dev": { + "nette/tester": "^2.2", + "tracy/tracy": "^2.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, "autoload": { + "classmap": [ + "src/" + ], "files": [ - "lib/random.php" + "src/compatibility.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.", + "homepage": "https://nette.org", "keywords": [ - "csprng", - "pseudorandom", - "random" - ], - "time": "2015-09-07T01:49:23+00:00" + "compiled", + "di", + "dic", + "factory", + "ioc", + "nette", + "static" + ], + "time": "2019-08-07T12:11:33+00:00" }, { - "name": "phar-io/manifest", - "version": "1.0.1", + "name": "nette/finder", + "version": "v2.5.0", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + "url": "https://github.com/nette/finder.git", + "reference": "6be1b83ea68ac558aff189d640abe242e0306fe2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "url": "https://api.github.com/repos/nette/finder/zipball/6be1b83ea68ac558aff189d640abe242e0306fe2", + "reference": "6be1b83ea68ac558aff189d640abe242e0306fe2", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^1.0.1", - "php": "^5.6 || ^7.0" + "nette/utils": "^2.4 || ~3.0.0", + "php": ">=7.1" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -1749,46 +1974,59 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2017-03-05T18:14:27+00:00" + "description": "? Nette Finder: find files and directories with an intuitive API.", + "homepage": "https://nette.org", + "keywords": [ + "filesystem", + "glob", + "iterator", + "nette" + ], + "time": "2019-02-28T18:13:25+00:00" }, { - "name": "phar-io/version", - "version": "1.0.1", + "name": "nette/neon", + "version": "v3.0.0", "source": { "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + "url": "https://github.com/nette/neon.git", + "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "url": "https://api.github.com/repos/nette/neon/zipball/cbff32059cbdd8720deccf9e9eace6ee516f02eb", + "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "ext-iconv": "*", + "ext-json": "*", + "php": ">=7.0" + }, + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -1796,174 +2034,178 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Library for handling version information and constraints", - "time": "2017-03-05T17:38:23+00:00" + "description": "? Nette NEON: encodes and decodes NEON file format.", + "homepage": "http://ne-on.org", + "keywords": [ + "export", + "import", + "neon", + "nette", + "yaml" + ], + "time": "2019-02-05T21:30:40+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "2.0.0", + "name": "nette/php-generator", + "version": "v3.2.3", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "66ae84e9d7c8ea85c979cb65977bd8e608baf0c5" + "url": "https://github.com/nette/php-generator.git", + "reference": "aea6e81437bb238e5f0e5b5ce06337433908e63b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/66ae84e9d7c8ea85c979cb65977bd8e608baf0c5", - "reference": "66ae84e9d7c8ea85c979cb65977bd8e608baf0c5", + "url": "https://api.github.com/repos/nette/php-generator/zipball/aea6e81437bb238e5f0e5b5ce06337433908e63b", + "reference": "aea6e81437bb238e5f0e5b5ce06337433908e63b", "shasum": "" }, "require": { - "dflydev/markdown": "1.0.*", - "php": ">=5.3.3" + "nette/utils": "^2.4.2 || ~3.0.0", + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "3.7.*@stable" + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.2-dev" } }, "autoload": { - "psr-0": { - "phpDocumentor": [ - "src/" - ] - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "time": "2013-08-07T11:04:22+00:00" + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.3 features.", + "homepage": "https://nette.org", + "keywords": [ + "code", + "nette", + "php", + "scaffolding" + ], + "time": "2019-07-05T13:01:56+00:00" }, { - "name": "phpspec/prophecy", - "version": "v1.7.0", + "name": "nette/robot-loader", + "version": "v3.2.0", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "93d39f1f7f9326d746203c7c056f300f7f126073" + "url": "https://github.com/nette/robot-loader.git", + "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073", - "reference": "93d39f1f7f9326d746203c7c056f300f7f126073", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", + "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", - "sebastian/comparator": "^1.1|^2.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "ext-tokenizer": "*", + "nette/finder": "^2.5", + "nette/utils": "^3.0", + "php": ">=7.1" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8 || ^5.6.5" + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "3.2-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", + "description": "? Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", + "homepage": "https://nette.org", "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" + "autoload", + "class", + "interface", + "nette", + "trait" ], - "time": "2017-03-02T20:05:34+00:00" + "time": "2019-03-08T21:57:24+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "5.2.1", + "name": "nette/schema", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "dc421f9ca5082a0c0cb04afb171c765f79add85b" + "url": "https://github.com/nette/schema.git", + "reference": "6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/dc421f9ca5082a0c0cb04afb171c765f79add85b", - "reference": "dc421f9ca5082a0c0cb04afb171c765f79add85b", + "url": "https://api.github.com/repos/nette/schema/zipball/6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d", + "reference": "6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.0", - "phpunit/php-file-iterator": "^1.3", - "phpunit/php-text-template": "^1.2", - "phpunit/php-token-stream": "^1.4.11 || ^2.0", - "sebastian/code-unit-reverse-lookup": "^1.0", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0", - "theseer/tokenizer": "^1.1" + "nette/utils": "^3.0.1", + "php": ">=7.1" }, "require-dev": { - "ext-xdebug": "^2.5", - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-xdebug": "^2.5.3" + "nette/tester": "^2.2", + "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.2.x-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -1973,45 +2215,61 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", "keywords": [ - "coverage", - "testing", - "xunit" + "config", + "nette" ], - "time": "2017-04-21T08:03:57+00:00" + "time": "2019-04-03T15:53:25+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "1.4.0", + "name": "nette/utils", + "version": "v3.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb" + "url": "https://github.com/nette/utils.git", + "reference": "bd961f49b211997202bda1d0fbc410905be370d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb", - "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb", + "url": "https://api.github.com/repos/nette/utils/zipball/bd961f49b211997202bda1d0fbc410905be370d4", + "reference": "bd961f49b211997202bda1d0fbc410905be370d4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "~2.0", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize() and toAscii()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -2021,85 +2279,117 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", "keywords": [ - "filesystem", - "iterator" - ], - "time": "2015-04-02T05:19:05+00:00" + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "time": "2019-03-22T01:00:30+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.0", + "name": "nikic/php-parser", + "version": "v4.2.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "e612609022e935f3d0337c1295176505b41188c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", - "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e612609022e935f3d0337c1295176505b41188c8", + "reference": "e612609022e935f3d0337c1295176505b41188c8", "shasum": "" }, "require": { - "php": ">=5.3.3" + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, + "bin": [ + "bin/php-parse" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, "autoload": { - "classmap": [ - "Text/" - ] + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } }, "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], "license": [ "BSD-3-Clause" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Nikita Popov" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "A PHP parser written in PHP", "keywords": [ - "template" + "parser", + "php" ], - "time": "2014-01-30T17:20:04+00:00" + "time": "2019-08-12T20:17:41+00:00" }, { - "name": "phpunit/php-timer", - "version": "1.0.6", + "name": "phar-io/manifest", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d" + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/83fe1bdc5d47658b727595c14da140da92b3d66d", - "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0", + "php": "^5.6 || ^7.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -2110,46 +2400,43 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Arne Blankerts", + "role": "Developer", + "email": "arne@blankerts.de" + }, + { + "name": "Sebastian Heuer", + "role": "Developer", + "email": "sebastian@phpeople.de" + }, { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "role": "Developer", + "email": "sebastian@phpunit.de" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2015-06-13T07:35:30+00:00" + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2018-07-08T19:23:20+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "1.4.11", + "name": "phar-io/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7" + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7", - "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.2" + "php": "^5.6 || ^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -2160,77 +2447,47 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2017-02-27T10:12:30+00:00" + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" }, { - "name": "phpunit/phpunit", - "version": "6.2.0", + "name": "php-cs-fixer/diff", + "version": "v1.3.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "23bcb03e5c6a8b8067f6c2b28f6cd84b2df321cc" + "url": "https://github.com/PHP-CS-Fixer/diff.git", + "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/23bcb03e5c6a8b8067f6c2b28f6cd84b2df321cc", - "reference": "23bcb03e5c6a8b8067f6c2b28f6cd84b2df321cc", + "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756", + "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.3", - "phar-io/manifest": "^1.0.1", - "phar-io/version": "^1.0", - "php": "^7.0", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^5.2", - "phpunit/php-file-iterator": "^1.4", - "phpunit/php-text-template": "^1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "^4.0", - "sebastian/comparator": "^2.0", - "sebastian/diff": "^1.4.3 || ^2.0", - "sebastian/environment": "^3.0.2", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^1.1 || ^2.0", - "sebastian/object-enumerator": "^3.0.2", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2", - "phpunit/dbunit": "<3.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "ext-pdo": "*" + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "symfony/process": "^3.3" }, - "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "^1.1" - }, - "bin": [ - "phpunit" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.1.x-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -2241,98 +2498,115 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "name": "SpacePossum" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "sebastian/diff v2 backport support for PHP5.6", + "homepage": "https://github.com/PHP-CS-Fixer", "keywords": [ - "phpunit", - "testing", - "xunit" + "diff" ], - "time": "2017-06-02T08:02:48+00:00" + "time": "2018-02-15T16:58:55+00:00" }, { - "name": "phpunit/phpunit-mock-objects", - "version": "4.0.1", + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "eabce450df194817a7d7e27e19013569a903a2bf" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/eabce450df194817a7d7e27e19013569a903a2bf", - "reference": "eabce450df194817a7d7e27e19013569a903a2bf", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^7.0", - "phpunit/php-text-template": "^1.2", - "sebastian/exporter": "^3.0" - }, - "conflict": { - "phpunit/phpunit": "<6.0" + "php": ">=5.5" }, "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-soap": "*" + "phpunit/phpunit": "^4.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", "keywords": [ - "mock", - "xunit" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], - "time": "2017-03-03T06:30:20+00:00" + "time": "2017-09-11T18:02:19+00:00" }, { - "name": "psr/log", - "version": "1.0.0", + "name": "phpdocumentor/reflection-docblock", + "version": "4.3.1", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", "shasum": "" }, + "require": { + "php": "^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" + }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, "autoload": { - "psr-0": { - "Psr\\Log\\": "" + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] } }, "notification-url": "https://packagist.org/downloads/", @@ -2341,37 +2615,34 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "Common interface for logging libraries", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2012-12-21T11:40:51+00:00" + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2019-04-30T17:48:53+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.0", + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe", - "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" }, "require-dev": { - "phpunit/phpunit": "~5" + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" }, "type": "library", "extra": { @@ -2380,216 +2651,245 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2016-02-13T06:45:14+00:00" + "time": "2017-07-14T14:27:02+00:00" }, { - "name": "sebastian/comparator", - "version": "2.0.0", + "name": "phpspec/prophecy", + "version": "1.8.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "20f84f468cb67efee293246e6a09619b891f55f0" + "url": "https://github.com/phpspec/prophecy.git", + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/20f84f468cb67efee293246e6a09619b891f55f0", - "reference": "20f84f468cb67efee293246e6a09619b891f55f0", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76", + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/diff": "^1.2", - "sebastian/exporter": "^3.0" + "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|^3.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.8.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Prophecy\\": "src/Prophecy" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", "keywords": [ - "comparator", - "compare", - "equality" + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" ], - "time": "2017-03-03T06:26:08+00:00" + "time": "2019-06-13T12:50:23+00:00" }, { - "name": "sebastian/diff", - "version": "1.4.3", + "name": "phpstan/phpdoc-parser", + "version": "0.3.5", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/8c4ef2aefd9788238897b678a985e1d5c8df6db4", + "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "~7.1" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "consistence/coding-standard": "^3.5", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "phing/phing": "^2.16.0", + "phpstan/phpstan": "^0.10", + "phpunit/phpunit": "^6.3", + "slevomat/coding-standard": "^4.7.2", + "squizlabs/php_codesniffer": "^3.3.2", + "symfony/process": "^3.4 || ^4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "0.3-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" + "MIT" ], - "time": "2017-05-22T07:24:03+00:00" + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "time": "2019-06-07T19:13:52+00:00" }, { - "name": "sebastian/environment", - "version": "3.0.2", + "name": "phpstan/phpstan", + "version": "0.11.15", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "11e7710b7724d42c62249b0e9d3030240398949d" + "url": "https://github.com/phpstan/phpstan.git", + "reference": "1be5b3a706db16ac472a4c40ec03cf4c810b118d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/11e7710b7724d42c62249b0e9d3030240398949d", - "reference": "11e7710b7724d42c62249b0e9d3030240398949d", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1be5b3a706db16ac472a4c40ec03cf4c810b118d", + "reference": "1be5b3a706db16ac472a4c40ec03cf4c810b118d", "shasum": "" }, "require": { - "php": "^7.0" + "composer/xdebug-handler": "^1.3.0", + "jean85/pretty-package-versions": "^1.0.3", + "nette/bootstrap": "^2.4 || ^3.0", + "nette/di": "^2.4.7 || ^3.0", + "nette/robot-loader": "^3.0.1", + "nette/schema": "^1.0", + "nette/utils": "^2.4.5 || ^3.0", + "nikic/php-parser": "^4.2.3", + "php": "~7.1", + "phpstan/phpdoc-parser": "^0.3.5", + "symfony/console": "~3.2 || ~4.0", + "symfony/finder": "~3.2 || ~4.0" + }, + "conflict": { + "symfony/console": "3.4.16 || 4.1.5" }, "require-dev": { - "phpunit/phpunit": "^6.1" + "brianium/paratest": "^2.0 || ^3.0", + "consistence/coding-standard": "^3.5", + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4", + "ext-intl": "*", + "ext-mysqli": "*", + "ext-simplexml": "*", + "ext-soap": "*", + "ext-zip": "*", + "jakub-onderka/php-parallel-lint": "^1.0", + "localheinz/composer-normalize": "^1.1.0", + "phing/phing": "^2.16.0", + "phpstan/phpstan-deprecation-rules": "^0.11", + "phpstan/phpstan-php-parser": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-strict-rules": "^0.11", + "phpunit/phpunit": "^7.5.14 || ^8.0", + "slevomat/coding-standard": "^4.7.2", + "squizlabs/php_codesniffer": "^3.3.2" }, + "bin": [ + "bin/phpstan" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "0.11-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "PHPStan\\": [ + "src/", + "build/PHPStan" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" + "MIT" ], - "time": "2017-04-21T14:40:32+00:00" + "description": "PHPStan - PHP Static Analysis Tool", + "time": "2019-08-18T20:51:53+00:00" }, { - "name": "sebastian/exporter", - "version": "3.1.0", + "name": "phpunit/php-code-coverage", + "version": "7.0.7", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "7743bbcfff2a907e9ee4a25be13d0f8ec5e73800" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7743bbcfff2a907e9ee4a25be13d0f8ec5e73800", + "reference": "7743bbcfff2a907e9ee4a25be13d0f8ec5e73800", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.2", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.1.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^4.2.2", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1.3" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.2.2" + }, + "suggest": { + "ext-xdebug": "^2.7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "7.0-dev" } }, "autoload": { @@ -2602,62 +2902,45 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", "keywords": [ - "export", - "exporter" + "coverage", + "testing", + "xunit" ], - "time": "2017-04-03T13:19:02+00:00" + "time": "2019-07-25T05:31:54+00:00" }, { - "name": "sebastian/global-state", - "version": "1.1.0", + "name": "phpunit/php-file-iterator", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "23af31f402993cfd94e99cbc4b782e9a78eb0e97" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "050bedf145a257b1ff02746c31894800e5122946" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23af31f402993cfd94e99cbc4b782e9a78eb0e97", - "reference": "23af31f402993cfd94e99cbc4b782e9a78eb0e97", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", + "reference": "050bedf145a257b1ff02746c31894800e5122946", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -2672,44 +2955,36 @@ "authors": [ { "name": "Sebastian Bergmann", + "role": "lead", "email": "sebastian@phpunit.de" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", "keywords": [ - "global state" + "filesystem", + "iterator" ], - "time": "2015-06-21T15:11:22+00:00" + "time": "2018-09-13T20:33:42+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "3.0.2", + "name": "phpunit/php-text-template", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "31dd3379d16446c5d86dec32ab1ad1f378581ad8" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/31dd3379d16446c5d86dec32ab1ad1f378581ad8", - "reference": "31dd3379d16446c5d86dec32ab1ad1f378581ad8", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.0", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" + "php": ">=5.3.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -2722,37 +2997,41 @@ "authors": [ { "name": "Sebastian Bergmann", + "role": "lead", "email": "sebastian@phpunit.de" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-03-12T15:17:29+00:00" + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" }, { - "name": "sebastian/object-reflector", - "version": "1.0.0", + "name": "phpunit/php-timer", + "version": "2.1.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "2201553542d60d25db9c5b2c54330df776648008" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/2201553542d60d25db9c5b2c54330df776648008", - "reference": "2201553542d60d25db9c5b2c54330df776648008", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -2767,37 +3046,42 @@ "authors": [ { "name": "Sebastian Bergmann", + "role": "lead", "email": "sebastian@phpunit.de" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-12T15:10:22+00:00" + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2019-06-07T04:22:29+00:00" }, { - "name": "sebastian/recursion-context", - "version": "3.0.0", + "name": "phpunit/php-token-stream", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e899757bb3df5ff6e95089132f32cd59aac2220a", + "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a", "shasum": "" }, "require": { - "php": "^7.0" + "ext-tokenizer": "*", + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -2810,44 +3094,74 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2019-07-25T05:29:42+00:00" }, { - "name": "sebastian/resource-operations", - "version": "1.0.0", + "name": "phpunit/phpunit", + "version": "8.3.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "e31cce0cf4499c0ccdbbb211a3280d36ab341e36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e31cce0cf4499c0ccdbbb211a3280d36ab341e36", + "reference": "e31cce0cf4499c0ccdbbb211a3280d36ab341e36", "shasum": "" }, "require": { - "php": ">=5.6.0" + "doctrine/instantiator": "^1.2.0", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.9.1", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.2", + "phpspec/prophecy": "^1.8.1", + "phpunit/php-code-coverage": "^7.0.7", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1.2", + "sebastian/comparator": "^3.0.2", + "sebastian/diff": "^3.0.2", + "sebastian/environment": "^4.2.2", + "sebastian/exporter": "^3.1.0", + "sebastian/global-state": "^3.0.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0.1", + "sebastian/type": "^1.1.3", + "sebastian/version": "^2.0.1" + }, + "require-dev": { + "ext-pdo": "*" }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0.0" + }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "8.3-dev" } }, "autoload": { @@ -2862,203 +3176,195 @@ "authors": [ { "name": "Sebastian Bergmann", + "role": "lead", "email": "sebastian@phpunit.de" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28T20:34:47+00:00" + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2019-08-11T06:56:55+00:00" }, { - "name": "sebastian/version", - "version": "2.0.0", + "name": "psr/log", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5" + "url": "https://github.com/php-fig/log.git", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5", - "reference": "c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-02-04T12:56:52+00:00" + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2018-11-20T15:27:04+00:00" }, { - "name": "symfony/console", - "version": "v3.2.0", + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "09d0fd33560e3573185a2ea17614e37ba38716c5" + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/09d0fd33560e3573185a2ea17614e37ba38716c5", - "reference": "09d0fd33560e3573185a2ea17614e37ba38716c5", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/debug": "~2.8|~3.0", - "symfony/polyfill-mbstring": "~1.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/filesystem": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/filesystem": "", - "symfony/process": "" + "phpunit/phpunit": "^5.7 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2016-11-16T22:18:16+00:00" + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2017-03-04T06:30:41+00:00" }, { - "name": "symfony/debug", - "version": "v2.8.0", + "name": "sebastian/comparator", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "d371ecb85254a8dff7f6d843bf49d1197e7d533e" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/d371ecb85254a8dff7f6d843bf49d1197e7d533e", - "reference": "d371ecb85254a8dff7f6d843bf49d1197e7d533e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", "shasum": "" }, "require": { - "php": ">=5.3.9", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" }, "require-dev": { - "symfony/class-loader": "~2.2|~3.0.0", - "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2|~3.0.0" + "phpunit/phpunit": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2015-11-27T05:45:55+00:00" + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2018-07-12T15:12:46+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v3.0.0", + "name": "sebastian/diff", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d36355e026905fa5229e1ed7b4e9eda2e67adfcf" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d36355e026905fa5229e1ed7b4e9eda2e67adfcf", - "reference": "d36355e026905fa5229e1ed7b4e9eda2e67adfcf", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^7.1" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/dependency-injection": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" }, "type": "library", "extra": { @@ -3067,145 +3373,179 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2015-10-30T23:35:59+00:00" + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "time": "2019-02-04T06:01:07+00:00" }, { - "name": "symfony/filesystem", - "version": "v3.0.0", + "name": "sebastian/environment", + "version": "4.2.2", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "692d98d813e4ef314b9c22775c86ddbeb0f44884" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/692d98d813e4ef314b9c22775c86ddbeb0f44884", - "reference": "692d98d813e4ef314b9c22775c86ddbeb0f44884", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.2-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2015-11-23T10:41:47+00:00" + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2019-05-05T09:05:15+00:00" }, { - "name": "symfony/finder", - "version": "v3.0.0", + "name": "sebastian/exporter", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "3577eb98dba90721d1a0a3edfc6956ab8b1aecee" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "06a9a5947f47b3029d76118eb5c22802e5869687" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/3577eb98dba90721d1a0a3edfc6956ab8b1aecee", - "reference": "3577eb98dba90721d1a0a3edfc6956ab8b1aecee", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/06a9a5947f47b3029d76118eb5c22802e5869687", + "reference": "06a9a5947f47b3029d76118eb5c22802e5869687", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com", - "time": "2015-10-30T23:35:59+00:00" + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2019-08-11T12:43:14+00:00" }, { - "name": "symfony/options-resolver", - "version": "v3.0.0", + "name": "sebastian/global-state", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "8e68c053a39e26559357cc742f01a7182ce40785" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/8e68c053a39e26559357cc742f01a7182ce40785", - "reference": "8e68c053a39e26559357cc742f01a7182ce40785", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^7.2", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^8.0" + }, + "suggest": { + "ext-uopz": "*" }, "type": "library", "extra": { @@ -3214,325 +3554,283 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony OptionsResolver Component", - "homepage": "https://symfony.com", + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", "keywords": [ - "config", - "configuration", - "options" + "global state" ], - "time": "2015-11-18T13:48:51+00:00" + "time": "2019-02-01T05:30:01+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.0.0", + "name": "sebastian/object-enumerator", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "0b6a8940385311a24e060ec1fe35680e17c74497" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0b6a8940385311a24e060ec1fe35680e17c74497", - "reference": "0b6a8940385311a24e060ec1fe35680e17c74497", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2015-11-04T20:28:58+00:00" + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" }, { - "name": "symfony/polyfill-php70", - "version": "v1.0.0", + "name": "sebastian/object-reflector", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "7f7f3c9c2b9f17722e0cd64fdb4f957330c53146" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/7f7f3c9c2b9f17722e0cd64fdb4f957330c53146", - "reference": "7f7f3c9c2b9f17722e0cd64fdb4f957330c53146", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", "shasum": "" }, "require": { - "paragonie/random_compat": "~1.0", - "php": ">=5.3.3" + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" - }, - "files": [ - "bootstrap.php" - ], "classmap": [ - "Resources/stubs" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2015-11-04T20:28:58+00:00" + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.4.0", + "name": "sebastian/recursion-context", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "d3a71580c1e2cab33b6d705f0ec40e9015e14d5c" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/d3a71580c1e2cab33b6d705f0ec40e9015e14d5c", - "reference": "d3a71580c1e2cab33b6d705f0ec40e9015e14d5c", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, - "files": [ - "bootstrap.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2017-06-09T08:25:21+00:00" + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-03-03T06:23:57+00:00" }, { - "name": "symfony/process", - "version": "v3.0.0", + "name": "sebastian/resource-operations", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "01383ed02a1020759bc8ee5d975fcec04ba16fbf" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/01383ed02a1020759bc8ee5d975fcec04ba16fbf", - "reference": "01383ed02a1020759bc8ee5d975fcec04ba16fbf", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Process Component", - "homepage": "https://symfony.com", - "time": "2015-11-30T12:36:17+00:00" + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2018-10-04T04:07:39+00:00" }, { - "name": "symfony/stopwatch", - "version": "v3.0.0", + "name": "sebastian/type", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "6aeac8907e3e1340a0033b0a9ec075f8e6524800" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/6aeac8907e3e1340a0033b0a9ec075f8e6524800", - "reference": "6aeac8907e3e1340a0033b0a9ec075f8e6524800", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", + "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^7.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "role": "lead", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Stopwatch Component", - "homepage": "https://symfony.com", - "time": "2015-10-30T23:35:59+00:00" + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2019-07-02T08:10:15+00:00" }, { - "name": "theseer/tokenizer", - "version": "1.1.0", + "name": "sebastian/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" + "php": ">=5.6" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -3544,153 +3842,1584 @@ ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Sebastian Bergmann", + "role": "lead", + "email": "sebastian@phpunit.de" } ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2017-04-07T12:08:54+00:00" + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" }, { - "name": "zendframework/zend-log", - "version": "2.9.0", + "name": "symfony/console", + "version": "v4.3.4", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-log.git", - "reference": "0325ad00505b8f39d79f26e666dc851bfd25fdaa" + "url": "https://github.com/symfony/console.git", + "reference": "de63799239b3881b8a08f8481b22348f77ed7b36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-log/zipball/0325ad00505b8f39d79f26e666dc851bfd25fdaa", - "reference": "0325ad00505b8f39d79f26e666dc851bfd25fdaa", + "url": "https://api.github.com/repos/symfony/console/zipball/de63799239b3881b8a08f8481b22348f77ed7b36", + "reference": "de63799239b3881b8a08f8481b22348f77ed7b36", "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" + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3", + "symfony/process": "<3.3" }, "provide": { - "psr/log-implementation": "1.0.0" + "psr/log-implementation": "1.0" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "~4.0", - "zendframework/zend-console": "^2.6", - "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.6" + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "symfony/var-dumper": "^4.3" }, "suggest": { - "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" + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.9-dev", - "dev-develop": "2.10-dev" - }, - "zf": { - "component": "Zend\\Log", - "config-provider": "Zend\\Log\\ConfigProvider" + "dev-master": "4.3-dev" } }, "autoload": { "psr-4": { - "Zend\\Log\\": "src/" - } + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "description": "component for general purpose logging", - "homepage": "https://github.com/zendframework/zend-log", - "keywords": [ - "log", - "logging", - "zf2" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "time": "2016-06-22T22:25:25+00:00" + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2019-08-26T08:26:39+00:00" }, { - "name": "zendframework/zend-router", - "version": "2.6.2", + "name": "symfony/event-dispatcher", + "version": "v4.3.4", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-router.git", - "reference": "31b19e62bd5fa7fe3ae299a72877b76e9ce18a9d" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "429d0a1451d4c9c4abe1959b2986b88794b9b7d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-router/zipball/31b19e62bd5fa7fe3ae299a72877b76e9ce18a9d", - "reference": "31b19e62bd5fa7fe3ae299a72877b76e9ce18a9d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/429d0a1451d4c9c4abe1959b2986b88794b9b7d2", + "reference": "429d0a1451d4c9c4abe1959b2986b88794b9b7d2", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "zendframework/zend-http": "~2.5", - "zendframework/zend-servicemanager": "~2.5", - "zendframework/zend-stdlib": "^2.7.5" + "php": "^7.1.3", + "symfony/event-dispatcher-contracts": "^1.1" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-foundation": "^3.4|^4.0", + "symfony/service-contracts": "^1.1", + "symfony/stopwatch": "~3.4|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2019-08-26T08:55:16+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c61766f4440ca687de1084a5c00b08e167a2575c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c61766f4440ca687de1084a5c00b08e167a2575c", + "reference": "c61766f4440ca687de1084a5c00b08e167a2575c", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-06-20T06:46:26+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/9abbb7ef96a51f4d7e69627bc6f63307994e4263", + "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2019-08-20T14:07:54+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "86c1c929f0a4b24812e1eb109262fc3372c8e9f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/86c1c929f0a4b24812e1eb109262fc3372c8e9f2", + "reference": "86c1c929f0a4b24812e1eb109262fc3372c8e9f2", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2019-08-14T12:26:46+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", + "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/polyfill-php70", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "54b4c428a0054e254223797d2713c31e08610831" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/54b4c428a0054e254223797d2713c31e08610831", + "reference": "54b4c428a0054e254223797d2713c31e08610831", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "~1.0|~2.0|~9.99", + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php70\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "04ce3335667451138df4307d6a9b61565560199e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e", + "reference": "04ce3335667451138df4307d6a9b61565560199e", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188", + "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/process", + "version": "v4.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "e89969c00d762349f078db1128506f7f3dcc0d4a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/e89969c00d762349f078db1128506f7f3dcc0d4a", + "reference": "e89969c00d762349f078db1128506f7f3dcc0d4a", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2019-08-26T08:26:39+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v1.1.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ea7263d6b6d5f798b56a45a5b8d686725f2719a3", + "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-08-20T14:44:19+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v4.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "1e4ff456bd625be5032fac9be4294e60442e9b71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/1e4ff456bd625be5032fac9be4294e60442e9b71", + "reference": "1e4ff456bd625be5032fac9be4294e60442e9b71", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/service-contracts": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Stopwatch Component", + "homepage": "https://symfony.com", + "time": "2019-08-07T11:52:19+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "role": "Developer", + "email": "arne@blankerts.de" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2019-06-13T22:48:21+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2019-08-24T08:43:50+00:00" + }, + { + "name": "zendframework/zend-config", + "version": "3.3.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-config.git", + "reference": "012341361ae3cc97a99959e7cb7c9ebd04d49572" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-config/zipball/012341361ae3cc97a99959e7cb7c9ebd04d49572", + "reference": "012341361ae3cc97a99959e7cb7c9ebd04d49572", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^5.6 || ^7.0", + "psr/container": "^1.0", + "zendframework/zend-stdlib": "^2.7.7 || ^3.1" + }, + "conflict": { + "container-interop/container-interop": "<1.2.0" + }, + "require-dev": { + "malukenho/docheader": "^0.1.6", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-filter": "^2.7.2", + "zendframework/zend-i18n": "^2.7.4", + "zendframework/zend-servicemanager": "^2.7.8 || ^3.3" + }, + "suggest": { + "zendframework/zend-filter": "^2.7.2; install if you want to use the Filter processor", + "zendframework/zend-i18n": "^2.7.4; install if you want to use the Translator processor", + "zendframework/zend-servicemanager": "^2.7.8 || ^3.3; if you need an extensible plugin manager for use with the Config Factory" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3.x-dev", + "dev-develop": "3.4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Config\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides a nested object property based user interface for accessing this configuration data within application code", + "keywords": [ + "ZendFramework", + "config", + "zf" + ], + "time": "2019-06-08T18:58:54+00:00" + }, + { + "name": "zendframework/zend-escaper", + "version": "2.6.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-escaper.git", + "reference": "31d8aafae982f9568287cb4dce987e6aff8fd074" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/31d8aafae982f9568287cb4dce987e6aff8fd074", + "reference": "31d8aafae982f9568287cb4dce987e6aff8fd074", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "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.6.x-dev", + "dev-develop": "2.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Escaper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", + "keywords": [ + "ZendFramework", + "escaper", + "zf" + ], + "time": "2018-04-25T15:48:53+00:00" + }, + { + "name": "zendframework/zend-eventmanager", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-eventmanager.git", + "reference": "a5e2583a211f73604691586b8406ff7296a946dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd", + "reference": "a5e2583a211f73604691586b8406ff7296a946dd", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "athletic/athletic": "^0.1", + "container-interop/container-interop": "^1.1.0", + "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" + }, + "suggest": { + "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", + "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev", + "dev-develop": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\EventManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Trigger and listen to events within a PHP application", + "homepage": "https://github.com/zendframework/zend-eventmanager", + "keywords": [ + "event", + "eventmanager", + "events", + "zf2" + ], + "time": "2018-04-25T15:33:34+00:00" + }, + { + "name": "zendframework/zend-http", + "version": "2.10.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-http.git", + "reference": "4b4983178693a8fdda53b0bbee58552e2d2b1ac0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-http/zipball/4b4983178693a8fdda53b0bbee58552e2d2b1ac0", + "reference": "4b4983178693a8fdda53b0bbee58552e2d2b1ac0", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "zendframework/zend-loader": "^2.5.1", + "zendframework/zend-stdlib": "^3.2.1", + "zendframework/zend-uri": "^2.5.2", + "zendframework/zend-validator": "^2.10.1" + }, + "require-dev": { + "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.10.x-dev", + "dev-develop": "2.11.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Http\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", + "keywords": [ + "ZendFramework", + "http", + "http client", + "zend", + "zf" + ], + "time": "2019-02-19T18:58:14+00:00" + }, + { + "name": "zendframework/zend-json", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-json.git", + "reference": "21c6027f3c4a5177cbef8ed08d1037b17188a0d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-json/zipball/21c6027f3c4a5177cbef8ed08d1037b17188a0d8", + "reference": "21c6027f3c4a5177cbef8ed08d1037b17188a0d8", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-stdlib": "^2.7.7 || ^3.1" + }, + "suggest": { + "zendframework/zend-json-server": "For implementing JSON-RPC servers", + "zendframework/zend-xml2json": "For converting XML documents to JSON" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev", + "dev-develop": "3.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Json\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP", + "keywords": [ + "ZendFramework", + "json", + "zf" + ], + "time": "2019-06-18T10:54:52+00:00" + }, + { + "name": "zendframework/zend-loader", + "version": "2.6.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-loader.git", + "reference": "78f11749ea340f6ca316bca5958eef80b38f9b6c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/78f11749ea340f6ca316bca5958eef80b38f9b6c", + "reference": "78f11749ea340f6ca316bca5958eef80b38f9b6c", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "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.6.x-dev", + "dev-develop": "2.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Loader\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Autoloading and plugin loading strategies", + "keywords": [ + "ZendFramework", + "loader", + "zf" + ], + "time": "2018-04-30T15:20:54+00:00" + }, + { + "name": "zendframework/zend-log", + "version": "2.11.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-log.git", + "reference": "cb278772afdacb1924342248a069330977625ae6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-log/zipball/cb278772afdacb1924342248a069330977625ae6", + "reference": "cb278772afdacb1924342248a069330977625ae6", + "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.7", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.15", + "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-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.11.x-dev", + "dev-develop": "2.12.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": "Robust, composite logger with filtering, formatting, and PSR-3 support", + "keywords": [ + "ZendFramework", + "log", + "logging", + "zf" + ], + "time": "2019-08-23T21:28:18+00:00" + }, + { + "name": "zendframework/zend-modulemanager", + "version": "2.8.2", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-modulemanager.git", + "reference": "394df6e12248ac430a312d4693f793ee7120baa6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-modulemanager/zipball/394df6e12248ac430a312d4693f793ee7120baa6", + "reference": "394df6e12248ac430a312d4693f793ee7120baa6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "zendframework/zend-config": "^3.1 || ^2.6", + "zendframework/zend-eventmanager": "^3.2 || ^2.6.3", + "zendframework/zend-stdlib": "^3.1 || ^2.7" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0", - "zendframework/zend-console": "~2.5", - "zendframework/zend-filter": "~2.5", - "zendframework/zend-i18n": "~2.5", - "zendframework/zend-uri": "~2.5", - "zendframework/zend-validator": "~2.5" + "phpunit/phpunit": "^6.0.8 || ^5.7.15", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-console": "^2.6", + "zendframework/zend-di": "^2.6", + "zendframework/zend-loader": "^2.5", + "zendframework/zend-mvc": "^3.0 || ^2.7", + "zendframework/zend-servicemanager": "^3.0.3 || ^2.7.5" }, "suggest": { "zendframework/zend-console": "Zend\\Console component", - "zendframework/zend-filter": "Zend\\Filter component", - "zendframework/zend-i18n": "Zend\\I18n component for translatable segments", - "zendframework/zend-validator": "Zend\\Validator component" + "zendframework/zend-loader": "Zend\\Loader component if you are not using Composer autoloading for your modules", + "zendframework/zend-mvc": "Zend\\Mvc component", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev", + "dev-develop": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\ModuleManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Modular application system for zend-mvc applications", + "homepage": "https://github.com/zendframework/zend-modulemanager", + "keywords": [ + "ZendFramework", + "modulemanager", + "zf" + ], + "time": "2017-12-02T06:11:18+00:00" + }, + { + "name": "zendframework/zend-mvc", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-mvc.git", + "reference": "236e7e1e3757e988fa06530c0a3f96a148858ae8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-mvc/zipball/236e7e1e3757e988fa06530c0a3f96a148858ae8", + "reference": "236e7e1e3757e988fa06530c0a3f96a148858ae8", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.2", + "php": "^5.6 || ^7.0", + "zendframework/zend-eventmanager": "^3.2", + "zendframework/zend-http": "^2.7", + "zendframework/zend-modulemanager": "^2.8", + "zendframework/zend-router": "^3.0.2", + "zendframework/zend-servicemanager": "^3.3", + "zendframework/zend-stdlib": "^3.1", + "zendframework/zend-view": "^2.9" + }, + "require-dev": { + "http-interop/http-middleware": "^0.4.1", + "phpunit/phpunit": "^6.4.4 || ^5.7.14", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-json": "^2.6.1 || ^3.0", + "zendframework/zend-psr7bridge": "^1.0", + "zendframework/zend-stratigility": "^2.0.1" + }, + "suggest": { + "http-interop/http-middleware": "^0.4.1 to be used together with zend-stratigility", + "zendframework/zend-json": "(^2.6.1 || ^3.0) To auto-deserialize JSON body content in AbstractRestfulController extensions, when json_decode is unavailable", + "zendframework/zend-log": "^2.9.1 To provide log functionality via LogFilterManager, LogFormatterManager, and LogProcessorManager", + "zendframework/zend-mvc-console": "zend-mvc-console provides the ability to expose zend-mvc as a console application", + "zendframework/zend-mvc-i18n": "zend-mvc-i18n provides integration with zend-i18n, including a translation bridge and translatable route segments", + "zendframework/zend-mvc-plugin-fileprg": "To provide Post/Redirect/Get functionality around forms that container file uploads", + "zendframework/zend-mvc-plugin-flashmessenger": "To provide flash messaging capabilities between requests", + "zendframework/zend-mvc-plugin-identity": "To access the authenticated identity (per zend-authentication) in controllers", + "zendframework/zend-mvc-plugin-prg": "To provide Post/Redirect/Get functionality within controllers", + "zendframework/zend-paginator": "^2.7 To provide pagination functionality via PaginatorPluginManager", + "zendframework/zend-psr7bridge": "(^0.2) To consume PSR-7 middleware within the MVC workflow", + "zendframework/zend-servicemanager-di": "zend-servicemanager-di provides utilities for integrating zend-di and zend-servicemanager in your zend-mvc application", + "zendframework/zend-stratigility": "zend-stratigility is required to use middleware pipes in the MiddlewareListener" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev", + "dev-develop": "3.2-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Mvc\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Zend Framework's event-driven MVC layer, including MVC Applications, Controllers, and Plugins", + "keywords": [ + "ZendFramework", + "mvc", + "zf" + ], + "time": "2017-11-24T06:32:07+00:00" + }, + { + "name": "zendframework/zend-router", + "version": "3.3.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-router.git", + "reference": "b113a4cfd910ee4723079fa58a9bcf3198631620" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-router/zipball/b113a4cfd910ee4723079fa58a9bcf3198631620", + "reference": "b113a4cfd910ee4723079fa58a9bcf3198631620", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.2", + "php": "^5.6 || ^7.0", + "zendframework/zend-http": "^2.8.1", + "zendframework/zend-servicemanager": "^2.7.8 || ^3.3", + "zendframework/zend-stdlib": "^3.2.1" + }, + "conflict": { + "zendframework/zend-mvc": "<3.0.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.22 || ^6.4.1", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-i18n": "^2.7.4" + }, + "suggest": { + "zendframework/zend-i18n": "^2.7.4, if defining translatable HTTP path segments" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev", - "dev-develop": "2.7-dev" + "dev-master": "3.3.x-dev", + "dev-develop": "4.0.x-dev" + }, + "zf": { + "component": "Zend\\Router", + "config-provider": "Zend\\Router\\ConfigProvider" } }, "autoload": { "psr-4": { - "Zend\\Mvc\\Router\\": "src/" + "Zend\\Router\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zend-router", + "description": "Flexible routing system for HTTP and console applications", "keywords": [ + "ZendFramework", "mvc", + "routing", + "zend", + "zf" + ], + "time": "2019-02-26T20:24:12+00:00" + }, + { + "name": "zendframework/zend-uri", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-uri.git", + "reference": "b2785cd38fe379a784645449db86f21b7739b1ee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/b2785cd38fe379a784645449db86f21b7739b1ee", + "reference": "b2785cd38fe379a784645449db86f21b7739b1ee", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "zendframework/zend-escaper": "^2.5", + "zendframework/zend-validator": "^2.10" + }, + "require-dev": { + "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.7.x-dev", + "dev-develop": "2.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Uri\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "A component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", + "keywords": [ + "ZendFramework", + "uri", + "zf" + ], + "time": "2019-02-27T21:39:04+00:00" + }, + { + "name": "zendframework/zend-validator", + "version": "2.12.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-validator.git", + "reference": "64c33668e5fa2d39c6289a878f927ea2b0850c30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-validator/zipball/64c33668e5fa2d39c6289a878f927ea2b0850c30", + "reference": "64c33668e5fa2d39c6289a878f927ea2b0850c30", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.1", + "php": "^5.6 || ^7.0", + "zendframework/zend-stdlib": "^3.2.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.0.8 || ^5.7.15", + "psr/http-message": "^1.0", + "zendframework/zend-cache": "^2.6.1", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-config": "^2.6", + "zendframework/zend-db": "^2.7", + "zendframework/zend-filter": "^2.6", + "zendframework/zend-http": "^2.5.4", + "zendframework/zend-i18n": "^2.6", + "zendframework/zend-math": "^2.6", + "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", + "zendframework/zend-session": "^2.8", + "zendframework/zend-uri": "^2.5" + }, + "suggest": { + "psr/http-message": "psr/http-message, required when validating PSR-7 UploadedFileInterface instances via the Upload and UploadFile validators", + "zendframework/zend-db": "Zend\\Db component, required by the (No)RecordExists validator", + "zendframework/zend-filter": "Zend\\Filter component, required by the Digits validator", + "zendframework/zend-i18n": "Zend\\I18n component to allow translation of validation error messages", + "zendframework/zend-i18n-resources": "Translations of validator messages", + "zendframework/zend-math": "Zend\\Math component, required by the Csrf validator", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", + "zendframework/zend-session": "Zend\\Session component, ^2.8; required by the Csrf validator", + "zendframework/zend-uri": "Zend\\Uri component, required by the Uri and Sitemap\\Loc validators" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.12.x-dev", + "dev-develop": "2.13.x-dev" + }, + "zf": { + "component": "Zend\\Validator", + "config-provider": "Zend\\Validator\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Zend\\Validator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides a set of commonly needed validators", + "homepage": "https://github.com/zendframework/zend-validator", + "keywords": [ + "validator", + "zf2" + ], + "time": "2019-01-30T14:26:10+00:00" + }, + { + "name": "zendframework/zend-view", + "version": "2.11.2", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-view.git", + "reference": "4f5cb653ed4c64bb8d9bf05b294300feb00c67f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-view/zipball/4f5cb653ed4c64bb8d9bf05b294300feb00c67f2", + "reference": "4f5cb653ed4c64bb8d9bf05b294300feb00c67f2", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", + "zendframework/zend-json": "^2.6.1 || ^3.0", + "zendframework/zend-loader": "^2.5", + "zendframework/zend-stdlib": "^2.7 || ^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.15 || ^6.0.8", + "zendframework/zend-authentication": "^2.5", + "zendframework/zend-cache": "^2.6.1", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-config": "^2.6", + "zendframework/zend-console": "^2.6", + "zendframework/zend-escaper": "^2.5", + "zendframework/zend-feed": "^2.7", + "zendframework/zend-filter": "^2.6.1", + "zendframework/zend-http": "^2.5.4", + "zendframework/zend-i18n": "^2.6", + "zendframework/zend-log": "^2.7", + "zendframework/zend-modulemanager": "^2.7.1", + "zendframework/zend-mvc": "^2.7.14 || ^3.0", + "zendframework/zend-navigation": "^2.5", + "zendframework/zend-paginator": "^2.5", + "zendframework/zend-permissions-acl": "^2.6", + "zendframework/zend-router": "^3.0.1", + "zendframework/zend-serializer": "^2.6.1", + "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", + "zendframework/zend-session": "^2.8.1", + "zendframework/zend-uri": "^2.5" + }, + "suggest": { + "zendframework/zend-authentication": "Zend\\Authentication component", + "zendframework/zend-escaper": "Zend\\Escaper component", + "zendframework/zend-feed": "Zend\\Feed component", + "zendframework/zend-filter": "Zend\\Filter component", + "zendframework/zend-http": "Zend\\Http component", + "zendframework/zend-i18n": "Zend\\I18n component", + "zendframework/zend-mvc": "Zend\\Mvc component", + "zendframework/zend-mvc-plugin-flashmessenger": "zend-mvc-plugin-flashmessenger component, if you want to use the FlashMessenger view helper with zend-mvc versions 3 and up", + "zendframework/zend-navigation": "Zend\\Navigation component", + "zendframework/zend-paginator": "Zend\\Paginator component", + "zendframework/zend-permissions-acl": "Zend\\Permissions\\Acl component", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component", + "zendframework/zend-uri": "Zend\\Uri component" + }, + "bin": [ + "bin/templatemap_generator.php" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.11.x-dev", + "dev-develop": "2.12.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\View\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides a system of helpers, output filters, and variable escaping", + "homepage": "https://github.com/zendframework/zend-view", + "keywords": [ + "view", "zf2" ], - "time": "2016-02-16T19:56:35+00:00" + "time": "2019-02-19T17:40:15+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "facile-it/facile-coding-standard": 20 - }, - "prefer-stable": true, - "prefer-lowest": true, + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, "platform": { - "php": "^7.0" + "php": "^7.1", + "ext-json": "*" }, "platform-dev": [] } diff --git a/config/module.config.php b/config/module.config.php deleted file mode 100644 index fa8fb39..0000000 --- a/config/module.config.php +++ /dev/null @@ -1,49 +0,0 @@ - [ - 'sentry' => [ - 'raven_javascript_dsn' => '', - 'raven_javascript_uri' => 'https://cdn.ravenjs.com/3.16.0/raven.min.js', - 'raven_javascript_options' => [], - 'inject_raven_javascript' => false, - 'error_handler_options' => [ - 'error_types' => null, - 'skip_exceptions' => [], - ], - 'stack_trace_options' => [ - 'ignore_backtrace_namespaces' => [ - __NAMESPACE__, - 'Facile\\Sentry\\Common', - 'Facile\\Sentry\\Log', - 'Zend\\Log', - ], - ], - ], - ], - 'service_manager' => [ - 'aliases' => [ - Common\Sanitizer\SanitizerInterface::class => Common\Sanitizer\Sanitizer::class, - ], - 'factories' => [ - Raven_Client::class => Service\RavenClientFactory::class, - Listener\ErrorHandlerListener::class => Listener\ErrorHandlerListenerFactory::class, - Options\Configuration::class => Service\ConfigurationFactory::class, - Options\ConfigurationInterface::class => Service\ConfigurationFactory::class, - Common\Sanitizer\Sanitizer::class => InvokableFactory::class, - Common\StackTrace\StackTraceInterface::class => Service\StackTraceFactory::class, - Common\Sender\SenderInterface::class => Service\SenderFactory::class, - ], - ], - 'log_writers' => [ - 'factories' => [ - Log\Writer\Sentry::class => Log\Writer\SentryFactory::class, - ], - ], -]; diff --git a/config/sentry.config.local.php.dist b/config/sentry.config.local.php.dist deleted file mode 100644 index 3f8b1b6..0000000 --- a/config/sentry.config.local.php.dist +++ /dev/null @@ -1,21 +0,0 @@ - [ - 'sentry' => [ - 'dsn' => '', - 'raven_options' => [], // Raven client options - 'raven_javascript_dsn' => '', - 'raven_javascript_uri' => 'https://cdn.ravenjs.com/3.16.0/raven.min.js', - 'raven_javascript_options' => [], - 'inject_raven_javascript' => true, - 'error_handler_options' => [ - 'error_types' => null, - 'skip_exceptions' => [], - ], - 'stack_trace_options' => [ - 'ignore_backtrace_namespaces' => [], - ], - ], - ], -]; diff --git a/phpstan.neon b/phpstan.neon new file mode 100644 index 0000000..7de002a --- /dev/null +++ b/phpstan.neon @@ -0,0 +1,7 @@ +parameters: + level: max + fileExtensions: + - php + excludes_analyse: + - %currentWorkingDirectory%/vendor/* + - %currentWorkingDirectory%/tests/* diff --git a/phpunit.xml.dist b/phpunit.xml.dist index c4fb45c..455ce5b 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -2,6 +2,7 @@ diff --git a/src/ConfigProvider.php b/src/ConfigProvider.php new file mode 100644 index 0000000..915a30c --- /dev/null +++ b/src/ConfigProvider.php @@ -0,0 +1,51 @@ + $this->getDependencies(), + 'sentry' => [ + 'options' => [ + 'dsn' => '', + ], + 'javascript' => [ + 'inject_script' => false, + 'script' => [ + 'src' => 'https://browser.sentry-cdn.com/5.6.3/bundle.min.js', + 'integrity' => 'sha384-/Cqa/8kaWn7emdqIBLk3AkFMAHBk0LObErtMhO+hr52CntkaurEnihPmqYj3uJho', + 'crossorigin' => 'anonymous', + ], + 'options' => [ + 'dsn' => '', + ], + ], + ], + 'log_writers' => [ + 'factories' => [ + Log\Writer\Sentry::class => InvokableFactory::class, + ], + ], + ]; + } + + public function getDependencies(): array + { + return [ + 'factories' => [ + ClientInterface::class => Service\ClientConfigFactory::class, + HubInterface::class => Service\HubFactory::class, + Listener\ErrorHandlerListener::class => Listener\ErrorHandlerListenerFactory::class, + ], + ]; + } +} diff --git a/src/Exception/RuntimeException.php b/src/Exception/RuntimeException.php deleted file mode 100644 index 5300c97..0000000 --- a/src/Exception/RuntimeException.php +++ /dev/null @@ -1,9 +0,0 @@ -ravenClient = $client; - $this->options = $options; + $this->hub = $hub; } - /** - * Attach one or more listeners. - * - * Implementors may add an optional $priority argument; the EventManager - * implementation will pass this to the aggregate. - * - * @param EventManagerInterface $events - * @param int $priority - */ - public function attach(EventManagerInterface $events, $priority = 1) + public function attach(EventManagerInterface $events, $priority = 1): void { $this->listeners[] = $events->attach(MvcEvent::EVENT_DISPATCH_ERROR, [$this, 'handleError'], $priority); $this->listeners[] = $events->attach(MvcEvent::EVENT_RENDER_ERROR, [$this, 'handleError'], $priority); } - /** - * @param MvcEvent $event - */ - public function handleError(MvcEvent $event) + public function handleError(MvcEvent $event): void { $exception = $event->getParam('exception'); if (! $exception instanceof \Throwable) { return; } - if (in_array(get_class($exception), $this->options->getSkipExceptions(), true)) { - return; - } - - $errorTypes = (int) ($this->options->getErrorTypes() ?? error_reporting()); - if ($exception instanceof \ErrorException && 0 === ($errorTypes & $exception->getSeverity())) { - return; - } - - $this->ravenClient->captureException($exception); + $this->hub->captureException($exception); } } diff --git a/src/Listener/ErrorHandlerListenerFactory.php b/src/Listener/ErrorHandlerListenerFactory.php index 017f2d3..d5397ab 100644 --- a/src/Listener/ErrorHandlerListenerFactory.php +++ b/src/Listener/ErrorHandlerListenerFactory.php @@ -1,23 +1,18 @@ get(Raven_Client::class); - /** @var ConfigurationInterface $configuration */ - $configuration = $container->get(ConfigurationInterface::class); - - $options = $configuration->getErrorHandlerOptions(); + $hub = $container->get(HubInterface::class); - return new ErrorHandlerListener($client, $options); + return new ErrorHandlerListener($hub); } } diff --git a/src/Log/Writer/Sentry.php b/src/Log/Writer/Sentry.php index 3989eb7..741abba 100644 --- a/src/Log/Writer/Sentry.php +++ b/src/Log/Writer/Sentry.php @@ -4,36 +4,37 @@ namespace Facile\SentryModule\Log\Writer; -use Facile\Sentry\Common\Sender\SenderInterface; +use Facile\SentryModule\Exception; +use Sentry\Severity; +use Sentry\State\Hub; +use Sentry\State\HubInterface; +use Sentry\State\Scope; use Traversable; -use Zend\Log\Writer\AbstractWriter; use Zend\Log\Logger; -use Raven_Client; -use Facile\SentryModule\Exception; +use Zend\Log\Writer\AbstractWriter; -/** - * Class Sentry. - */ final class Sentry extends AbstractWriter { - /** - * @var SenderInterface - */ - private $sender; + /** @var HubInterface|null */ + private $hub; - /** - * @var array - */ - protected $priorityMap = [ - Logger::EMERG => Raven_Client::FATAL, - Logger::ALERT => Raven_Client::ERROR, - Logger::CRIT => Raven_Client::ERROR, - Logger::ERR => Raven_Client::ERROR, - Logger::WARN => Raven_Client::WARNING, - Logger::NOTICE => Raven_Client::INFO, - Logger::INFO => Raven_Client::INFO, - Logger::DEBUG => Raven_Client::DEBUG, - ]; + private function getSeverityFromLevel(int $level): Severity + { + switch ($level) { + case Logger::DEBUG: + return Severity::debug(); + case Logger::WARN: + return Severity::warning(); + case Logger::ERR: + return Severity::error(); + case Logger::CRIT: + case Logger::ALERT: + case Logger::EMERG: + return Severity::fatal(); + default: + return Severity::info(); + } + } /** * Sentry constructor. @@ -48,14 +49,16 @@ public function __construct($options = null) parent::__construct($options); if ($options instanceof Traversable) { - $options = iterator_to_array($options); + $options = \iterator_to_array($options); } - if (! is_array($options) || ! array_key_exists('sender', $options) || ! $options['sender'] instanceof SenderInterface) { - throw new Exception\InvalidArgumentException('No sender specified in options'); + $hub = $options['hub'] ?? null; + + if (null !== $hub && ! $hub instanceof HubInterface) { + throw new Exception\InvalidArgumentException('Invalid Sentry Hub'); } - $this->sender = $options['sender']; + $this->hub = $hub; } /** @@ -63,18 +66,38 @@ public function __construct($options = null) * * @param array $event log data event */ - protected function doWrite(array $event) + protected function doWrite(array $event): void { - $priority = $this->priorityMap[$event['priority']]; - $message = $event['message']; + $hub = $this->hub ?: Hub::getCurrent(); + $context = $event['extra'] ?? []; if ($context instanceof Traversable) { - $context = iterator_to_array($context); - } elseif (! is_array($context)) { + $context = \iterator_to_array($context); + } elseif (! \is_array($context)) { $context = []; } - $this->sender->send($priority, (string) $message, $context); + $payload = [ + 'level' => $this->getSeverityFromLevel($event['priority']), + 'message' => $event['message'], + ]; + + $exception = $context['exception'] ?? null; + + if ($exception instanceof \Throwable) { + $payload['exception'] = $exception; + unset($context['exception']); + } + + $hub->withScope(static function (Scope $scope) use ($hub, $event, $context, $payload): void { + $scope->setExtra('zend.priority', $event['priority']); + + foreach ($context as $key => $value) { + $scope->setExtra((string) $key, $value); + } + + $hub->captureEvent($payload); + }); } } diff --git a/src/Log/Writer/SentryFactory.php b/src/Log/Writer/SentryFactory.php deleted file mode 100644 index 760da2d..0000000 --- a/src/Log/Writer/SentryFactory.php +++ /dev/null @@ -1,77 +0,0 @@ -get($senderServiceName); - - return new Sentry($options); - } - - /** - * Create service. - * - * @param ServiceLocatorInterface $serviceLocator - * - * @return Sentry - */ - public function createService(ServiceLocatorInterface $serviceLocator): Sentry - { - if ($serviceLocator instanceof AbstractPluginManager) { - $serviceLocator = $serviceLocator->getServiceLocator(); - } - - return $this($serviceLocator, Sentry::class, $this->creationOptions ?: []); - } - - /** - * zend-servicemanager v2 support for invocation options. - * - * @param array $options - */ - public function setCreationOptions(array $options) - { - $this->creationOptions = $options; - } -} diff --git a/src/Module.php b/src/Module.php index ef570b7..a7cbc44 100644 --- a/src/Module.php +++ b/src/Module.php @@ -1,64 +1,56 @@ getDependencies(); + unset($config['dependencies']); + + return $config; } - /** - * Listen to the bootstrap event. - * - * @param EventInterface $e - * - * @return void - * - * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException - * @throws \Zend\ServiceManager\Exception\InvalidServiceException - * @throws \RuntimeException - * @throws \Interop\Container\Exception\NotFoundException - * @throws \Interop\Container\Exception\ContainerException - */ - public function onBootstrap(EventInterface $e) + public function onBootstrap(MvcEvent $e): void { - /* @var MvcEvent $e */ $application = $e->getApplication(); $container = $application->getServiceManager(); - /** @var ConfigurationInterface $configuration */ - $configuration = $container->get(ConfigurationInterface::class); + // Get the Hub to initialize it + $container->get(HubInterface::class); + + /** @var array $appConfig */ + $appConfig = $container->get('config'); + $config = $appConfig['sentry']['javascript'] ?? []; + $options = $config['options'] ?? []; - if ($configuration->shouldInjectRavenJavascript()) { - /** @var \Zend\View\HelperPluginManager $viewHelperManager */ - $viewHelperManager = $container->get('ViewHelperManager'); - /** @var \Zend\View\Helper\HeadScript $headScriptHelper */ - $headScriptHelper = $viewHelperManager->get('HeadScript'); - $jsScript = $configuration->getRavenJavascriptUri(); - if (! empty($jsScript)) { - $headScriptHelper->appendFile($jsScript); - } - $headScriptHelper->appendScript( - sprintf( - 'Raven.config(\'%s\', %s).install();', - $configuration->getRavenJavascriptDsn(), - json_encode($configuration->getRavenJavascriptOptions()) - ) - ); + if (! ($config['inject_script'] ?? false)) { + return; } + + /** @var HelperPluginManager $viewHelperManager */ + $viewHelperManager = $container->get('ViewHelperManager'); + /** @var HeadScript $headScriptHelper */ + $headScriptHelper = $viewHelperManager->get('HeadScript'); + if ($config['script']['src'] ?? null) { + $headScriptHelper->appendFile($config['script']['src'], 'text/javascript', $config['script']); + } + + $headScriptHelper->appendScript( + \sprintf( + 'Sentry.init(%s);', + \json_encode($options) + ) + ); } } diff --git a/src/Options/Configuration.php b/src/Options/Configuration.php deleted file mode 100644 index cc3c71b..0000000 --- a/src/Options/Configuration.php +++ /dev/null @@ -1,185 +0,0 @@ -errorHandlerOptions = $this->errorHandlerOptions ?: new ErrorHandlerOptions(); - $this->stackTraceOptions = $this->stackTraceOptions ?: new StackTraceOptions(); - } - - /** - * @return ErrorHandlerOptionsInterface - */ - public function getErrorHandlerOptions(): ErrorHandlerOptionsInterface - { - return $this->errorHandlerOptions; - } - - /** - * @param ErrorHandlerOptionsInterface $errorHandlerOptions - */ - public function setErrorHandlerOptions(ErrorHandlerOptionsInterface $errorHandlerOptions) - { - $this->errorHandlerOptions = $errorHandlerOptions; - } - - /** - * @return StackTraceOptionsInterface - */ - public function getStackTraceOptions(): StackTraceOptionsInterface - { - return $this->stackTraceOptions; - } - - /** - * @param StackTraceOptionsInterface $stackTraceOptions - */ - public function setStackTraceOptions(StackTraceOptionsInterface $stackTraceOptions) - { - $this->stackTraceOptions = $stackTraceOptions; - } - - /** - * @return string - */ - public function getDsn(): string - { - return $this->dsn; - } - - /** - * @param string $dsn - */ - public function setDsn(string $dsn) - { - $this->dsn = $dsn; - } - - /** - * @return array - */ - public function getRavenOptions(): array - { - return $this->ravenOptions; - } - - /** - * @param array $ravenOptions - */ - public function setRavenOptions(array $ravenOptions) - { - $this->ravenOptions = $ravenOptions; - } - - /** - * @return string - */ - public function getRavenJavascriptDsn(): string - { - return $this->ravenJavascriptDsn; - } - - /** - * @param string $ravenJavascriptDsn - */ - public function setRavenJavascriptDsn(string $ravenJavascriptDsn) - { - $this->ravenJavascriptDsn = $ravenJavascriptDsn; - } - - /** - * @return string - */ - public function getRavenJavascriptUri(): string - { - return $this->ravenJavascriptUri; - } - - /** - * @param string $ravenJavascriptUri - */ - public function setRavenJavascriptUri(string $ravenJavascriptUri) - { - $this->ravenJavascriptUri = $ravenJavascriptUri; - } - - /** - * @return array - */ - public function getRavenJavascriptOptions(): array - { - return $this->ravenJavascriptOptions; - } - - /** - * @param array $ravenJavascriptOptions - */ - public function setRavenJavascriptOptions(array $ravenJavascriptOptions) - { - $this->ravenJavascriptOptions = $ravenJavascriptOptions; - } - - /** - * @return bool - */ - public function shouldInjectRavenJavascript(): bool - { - return $this->injectRavenJavascript; - } - - /** - * @param bool $injectRavenJavascript - */ - public function setInjectRavenJavascript(bool $injectRavenJavascript) - { - $this->injectRavenJavascript = $injectRavenJavascript; - } -} diff --git a/src/Options/ConfigurationInterface.php b/src/Options/ConfigurationInterface.php deleted file mode 100644 index 6c705a4..0000000 --- a/src/Options/ConfigurationInterface.php +++ /dev/null @@ -1,47 +0,0 @@ -skipExceptions; - } - - /** - * @param string[] $skipExceptions - * @throws \Facile\SentryModule\Exception\InvalidArgumentException - */ - public function setSkipExceptions(array $skipExceptions) - { - if (in_array(false, array_map('is_string', $skipExceptions), true)) { - throw new InvalidArgumentException('Invalid value in skip_exceptions'); - } - - if (in_array(false, array_map('class_exists', $skipExceptions), true)) { - throw new InvalidArgumentException('A string in skip_exceptions values is not a class'); - } - - $this->skipExceptions = $skipExceptions; - } - - /** - * @return int|null - */ - public function getErrorTypes() - { - return $this->errorTypes; - } - - /** - * @param int|null $errorTypes - * @throws \Facile\SentryModule\Exception\InvalidArgumentException - */ - public function setErrorTypes($errorTypes) - { - if (null !== $errorTypes && ! is_int($errorTypes)) { - throw new InvalidArgumentException('Invalid errorTypes value'); - } - - $this->errorTypes = $errorTypes; - } -} diff --git a/src/Options/ErrorHandlerOptionsInterface.php b/src/Options/ErrorHandlerOptionsInterface.php deleted file mode 100644 index 0b2a98a..0000000 --- a/src/Options/ErrorHandlerOptionsInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -ignoreBacktraceNamespaces; - } - - /** - * @param string[] $ignoreBacktraceNamespaces - */ - public function setIgnoreBacktraceNamespaces(array $ignoreBacktraceNamespaces) - { - $this->ignoreBacktraceNamespaces = $ignoreBacktraceNamespaces; - } -} diff --git a/src/Options/StackTraceOptionsInterface.php b/src/Options/StackTraceOptionsInterface.php deleted file mode 100644 index ab41255..0000000 --- a/src/Options/StackTraceOptionsInterface.php +++ /dev/null @@ -1,12 +0,0 @@ -callbacks = $callbacks; - } - - /** - * @param array $data - * - * @return array - */ - public function __invoke(array $data): array - { - foreach ($this->callbacks as $callback) { - $data = $callback($data); - } - - return $data; - } -} diff --git a/src/SendCallback/CallbackInterface.php b/src/SendCallback/CallbackInterface.php deleted file mode 100644 index 4d7241e..0000000 --- a/src/SendCallback/CallbackInterface.php +++ /dev/null @@ -1,15 +0,0 @@ -get('config')['sentry']; + + $options = \array_filter( + $config['options'] ?? [], + static function ($value) { + return null !== $value; + } + ); + + $resolves = [ + 'before_breadcrumbs', + 'before_send', + ]; + + $options = \array_merge( + $options, + \array_map( + static function (string $value) use ($container): callable { + return $container->get($value); + }, + \array_intersect_key($options, \array_flip($resolves)) + ) + ); + + $builder = ClientBuilder::create($options); + + if (\is_string($config['transport'] ?? null)) { + $builder->setTransport($container->get($config['transport'])); + } + + if (\is_string($config['http_client'] ?? null)) { + $builder->setHttpClient($container->get($config['http_client'])); + } + + if (\is_string($config['message_factory'] ?? null)) { + $builder->setMessageFactory($container->get($config['message_factory'])); + } + + if (\is_string($config['uri_factory'] ?? null)) { + $builder->setUriFactory($container->get($config['uri_factory'])); + } + + if (\is_string($config['representation_serializer'] ?? null)) { + $builder->setRepresentationSerializer($container->get($config['representation_serializer'])); + } + + if (\is_string($config['serializer'] ?? null)) { + $builder->setSerializer($container->get($config['serializer'])); + } + + return $builder->getClient(); + } +} diff --git a/src/Service/ConfigurationFactory.php b/src/Service/ConfigurationFactory.php deleted file mode 100644 index f546e51..0000000 --- a/src/Service/ConfigurationFactory.php +++ /dev/null @@ -1,102 +0,0 @@ -get('config'); - - $configuration = $config['facile']['sentry'] ?? []; - $ravenOptions = $configuration['raven_options'] ?? []; - - if (! array_key_exists('logger', $ravenOptions)) { - $ravenOptions['logger'] = 'SentryModule'; - } - - if (array_key_exists('send_callback', $ravenOptions)) { - $ravenOptions['send_callback'] = $this->buildCallbackChain($container, $ravenOptions['send_callback']); - } - - if (array_key_exists('transport', $ravenOptions)) { - $transport = $ravenOptions['transport']; - if (is_string($transport)) { - $transport = $container->get($transport); - } - $ravenOptions['transport'] = $transport; - } - - $configuration['raven_options'] = $ravenOptions; - - $configuration['error_handler_options'] = new ErrorHandlerOptions( - $configuration['error_handler_options'] ?? [] - ); - - $configuration['stack_trace_options'] = new StackTraceOptions( - $configuration['stack_trace_options'] ?? [] - ); - - return new Configuration($configuration); - } - - - /** - * @param ContainerInterface $container - * @param array|string|callable $callbackOptions - * - * @return CallbackChain - * @throws \Facile\SentryModule\Exception\InvalidArgumentException - */ - private function buildCallbackChain(ContainerInterface $container, $callbackOptions): CallbackChain - { - if (null === $callbackOptions) { - return new CallbackChain(); - } - - $callbackOptions = (array) $callbackOptions; - $callbacks = []; - - foreach ($callbackOptions as $callbackItem) { - if (is_string($callbackItem) && $container->has($callbackItem)) { - $callbackItem = $container->get($callbackItem); - } - if (! $this->isValidCallback($container, $callbackItem)) { - throw new InvalidArgumentException('Invalid callback'); - } - - $callbacks[] = $callbackItem; - } - - return new CallbackChain($callbacks); - } - - /** - * @param ContainerInterface $container - * @param callable|string $callbackItem - * @return bool - * @throws \Facile\SentryModule\Exception\InvalidArgumentException - */ - private function isValidCallback(ContainerInterface $container, $callbackItem): bool - { - return is_callable($callbackItem) || (is_string($callbackItem) && $container->has($callbackItem)); - } -} diff --git a/src/Service/HubFactory.php b/src/Service/HubFactory.php new file mode 100644 index 0000000..b712a2b --- /dev/null +++ b/src/Service/HubFactory.php @@ -0,0 +1,21 @@ +get(ClientInterface::class); + Hub::getCurrent()->bindClient($client); + + return Hub::getCurrent(); + } +} diff --git a/src/Service/RavenClientFactory.php b/src/Service/RavenClientFactory.php deleted file mode 100644 index 51ab25d..0000000 --- a/src/Service/RavenClientFactory.php +++ /dev/null @@ -1,20 +0,0 @@ -get(ConfigurationInterface::class); - $options = $configuration->getRavenOptions(); - - return new \Raven_Client($configuration->getDsn(), $options); - } - -} diff --git a/src/Service/SenderFactory.php b/src/Service/SenderFactory.php deleted file mode 100644 index 07a426b..0000000 --- a/src/Service/SenderFactory.php +++ /dev/null @@ -1,26 +0,0 @@ -get(Raven_Client::class); - /** @var SanitizerInterface $sanitizer */ - $sanitizer = $container->get(SanitizerInterface::class); - /** @var StackTraceInterface $stackTrace */ - $stackTrace = $container->get(StackTraceInterface::class); - - return new Sender($client, $sanitizer, $stackTrace); - } -} diff --git a/src/Service/StackTraceFactory.php b/src/Service/StackTraceFactory.php deleted file mode 100644 index 2cdab48..0000000 --- a/src/Service/StackTraceFactory.php +++ /dev/null @@ -1,33 +0,0 @@ -get(Raven_Client::class); - /** @var ConfigurationInterface $configuration */ - $configuration = $container->get(ConfigurationInterface::class); - - $serializer = $container->has(\Raven_Serializer::class) ? $container->get(\Raven_Serializer::class) : null; - $reprSerializer = $container->has(\Raven_ReprSerializer::class) ? $container->get(\Raven_ReprSerializer::class) : null; - - $stackTrace = new StackTrace( - $client, - $serializer, - $reprSerializer, - $configuration->getStackTraceOptions()->getIgnoreBacktraceNamespaces() - ); - - return $stackTrace; - } -} diff --git a/tests/ConfigProviderTest.php b/tests/ConfigProviderTest.php new file mode 100644 index 0000000..8b934f3 --- /dev/null +++ b/tests/ConfigProviderTest.php @@ -0,0 +1,27 @@ +assertIsCallable($provider); + $this->assertIsArray($provider()); + $this->assertSame($provider->getDependencies(), $provider()['dependencies']); + } + + public function testGetDependencies(): void + { + $provider = new ConfigProvider(); + + $this->assertIsArray($provider->getDependencies()); + } +} diff --git a/tests/Listener/ErrorHandlerListenerFactoryTest.php b/tests/Listener/ErrorHandlerListenerFactoryTest.php index 39d3b05..391f136 100644 --- a/tests/Listener/ErrorHandlerListenerFactoryTest.php +++ b/tests/Listener/ErrorHandlerListenerFactoryTest.php @@ -1,26 +1,23 @@ prophesize(ContainerInterface::class); - $client = $this->prophesize(\Raven_Client::class); - $configuration = $this->prophesize(ConfigurationInterface::class); - $errorHandlerOptions = $this->prophesize(ErrorHandlerOptionsInterface::class); + $hub = $this->prophesize(HubInterface::class); - $container->get(\Raven_Client::class)->shouldBeCalled()->willReturn($client->reveal()); - $container->get(ConfigurationInterface::class)->shouldBeCalled()->willReturn($configuration->reveal()); - $configuration->getErrorHandlerOptions()->shouldBeCalled()->willReturn($errorHandlerOptions->reveal()); + $container->get(HubInterface::class)->shouldBeCalled()->willReturn($hub->reveal()); $factory = new ErrorHandlerListenerFactory(); $result = $factory($container->reveal()); diff --git a/tests/Listener/ErrorHandlerListenerTest.php b/tests/Listener/ErrorHandlerListenerTest.php index d3b8fe9..f7d5a25 100644 --- a/tests/Listener/ErrorHandlerListenerTest.php +++ b/tests/Listener/ErrorHandlerListenerTest.php @@ -1,21 +1,23 @@ prophesize(Raven_Client::class); - $options = $this->prophesize(ErrorHandlerOptionsInterface::class); + $hub = $this->prophesize(HubInterface::class); - $listener = new ErrorHandlerListener($client->reveal(), $options->reveal()); + $listener = new ErrorHandlerListener($hub->reveal()); $eventManager = $this->prophesize(EventManagerInterface::class); $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, [$listener, 'handleError'], -100) @@ -26,106 +28,44 @@ public function testAttach() $listener->attach($eventManager->reveal(), -100); } - public function testHandleErrorWithException() + public function testHandleErrorWithException(): void { $exception = $this->prophesize(\Exception::class); $event = $this->prophesize(MvcEvent::class); - $client = $this->prophesize(Raven_Client::class); - $options = $this->prophesize(ErrorHandlerOptionsInterface::class); + $hub = $this->prophesize(HubInterface::class); - $listener = new ErrorHandlerListener($client->reveal(), $options->reveal()); + $listener = new ErrorHandlerListener($hub->reveal()); - $options->getSkipExceptions()->shouldBeCalled()->willReturn([]); - $options->getErrorTypes()->shouldBeCalled()->willReturn(0); $event->getParam('exception')->willReturn($exception->reveal()); - $client->captureException($exception->reveal())->shouldBeCalled(); + $hub->captureException($exception->reveal())->shouldBeCalled(); $listener->handleError($event->reveal()); } - public function testHandleErrorWithSkippedException() - { - $exception = new \InvalidArgumentException('message'); - $event = $this->prophesize(MvcEvent::class); - $client = $this->prophesize(Raven_Client::class); - $options = $this->prophesize(ErrorHandlerOptionsInterface::class); - - $listener = new ErrorHandlerListener($client->reveal(), $options->reveal()); - - $options->getSkipExceptions()->shouldBeCalled()->willReturn([ - \InvalidArgumentException::class, - ]); - $options->getErrorTypes()->shouldNotBeCalled()->willReturn(0); - $event->getParam('exception')->willReturn($exception); - $client->captureException($exception)->shouldNotBeCalled(); - - $listener->handleError($event->reveal()); - } - - public function testHandleErrorWithError() + public function testHandleErrorWithError(): void { $exception = $this->prophesize(\Error::class); $event = $this->prophesize(MvcEvent::class); - $client = $this->prophesize(Raven_Client::class); - $options = $this->prophesize(ErrorHandlerOptionsInterface::class); + $hub = $this->prophesize(HubInterface::class); - $listener = new ErrorHandlerListener($client->reveal(), $options->reveal()); + $listener = new ErrorHandlerListener($hub->reveal()); - $options->getSkipExceptions()->shouldBeCalled()->willReturn([]); - $options->getErrorTypes()->shouldBeCalled()->willReturn(0); $event->getParam('exception')->willReturn($exception->reveal()); - $client->captureException($exception->reveal())->shouldBeCalled(); - - $listener->handleError($event->reveal()); - } - - public function testHandleErrorWithErrorException() - { - $exception = new \ErrorException('message', 0, E_WARNING); - $event = $this->prophesize(MvcEvent::class); - $client = $this->prophesize(Raven_Client::class); - $options = $this->prophesize(ErrorHandlerOptionsInterface::class); - - $listener = new ErrorHandlerListener($client->reveal(), $options->reveal()); - - $options->getSkipExceptions()->shouldBeCalled()->willReturn([]); - $options->getErrorTypes()->shouldBeCalled()->willReturn(E_ALL); - $event->getParam('exception')->willReturn($exception); - $client->captureException($exception)->shouldBeCalled(); - - $listener->handleError($event->reveal()); - } - - public function testHandleErrorWithNotHandledErrorException() - { - $exception = new \ErrorException('message', 0, E_WARNING); - $event = $this->prophesize(MvcEvent::class); - $client = $this->prophesize(Raven_Client::class); - $options = $this->prophesize(ErrorHandlerOptionsInterface::class); - - $listener = new ErrorHandlerListener($client->reveal(), $options->reveal()); - - $options->getSkipExceptions()->shouldBeCalled()->willReturn([]); - $options->getErrorTypes()->shouldBeCalled()->willReturn(E_ALL & ~E_WARNING); - $event->getParam('exception')->willReturn($exception); - $client->captureException($exception)->shouldNotBeCalled(); + $hub->captureException($exception->reveal())->shouldBeCalled(); $listener->handleError($event->reveal()); } - public function testHandleErrorWithInvalidException() + public function testHandleErrorWithInvalidException(): void { $exception = $this->prophesize(\stdClass::class); $event = $this->prophesize(MvcEvent::class); - $client = $this->prophesize(Raven_Client::class); - $options = $this->prophesize(ErrorHandlerOptionsInterface::class); + $hub = $this->prophesize(HubInterface::class); - $listener = new ErrorHandlerListener($client->reveal(), $options->reveal()); + $listener = new ErrorHandlerListener($hub->reveal()); - $options->getSkipExceptions()->shouldNotBeCalled()->willReturn([]); - $options->getErrorTypes()->shouldNotBeCalled()->willReturn(0); $event->getParam('exception')->willReturn($exception->reveal()); - $client->captureException($exception->reveal())->shouldNotBeCalled(); + $hub->captureException(Argument::cetera())->shouldNotBeCalled(); $listener->handleError($event->reveal()); } diff --git a/tests/Log/Writer/SentryFactoryTest.php b/tests/Log/Writer/SentryFactoryTest.php deleted file mode 100644 index f47e6c3..0000000 --- a/tests/Log/Writer/SentryFactoryTest.php +++ /dev/null @@ -1,45 +0,0 @@ -prophesize(AbstractPluginManager::class); - $container = $this->prophesize(ServiceManager::class); - $sender = $this->prophesize(SenderInterface::class); - - $pluginManager->getServiceLocator()->willReturn($container->reveal()); - - $container->get('sender')->shouldBeCalledTimes(1)->willReturn($sender->reveal()); - - $factory = new SentryFactory(); - $factory->setCreationOptions(['sender' => 'sender']); - $service = $factory->createService($pluginManager->reveal()); - - static::assertInstanceOf(Sentry::class, $service); - } - - public function testFactoryWithNoSender() - { - $pluginManager = $this->prophesize(AbstractPluginManager::class); - $container = $this->prophesize(ServiceManager::class); - $sender = $this->prophesize(SenderInterface::class); - - $pluginManager->getServiceLocator()->willReturn($container->reveal()); - - $container->get(SenderInterface::class)->shouldBeCalledTimes(1)->willReturn($sender->reveal()); - - $factory = new SentryFactory(); - $service = $factory->createService($pluginManager->reveal()); - - static::assertInstanceOf(Sentry::class, $service); - } -} diff --git a/tests/Log/Writer/SentryTest.php b/tests/Log/Writer/SentryTest.php index 0ec37b0..7a1e02c 100644 --- a/tests/Log/Writer/SentryTest.php +++ b/tests/Log/Writer/SentryTest.php @@ -1,34 +1,47 @@ expectException(InvalidArgumentException::class); - - $writer = new Sentry(new ArrayObject()); - } - - public function testWrite() - { - $sender = $this->prophesize(SenderInterface::class); + $hub = $this->prophesize(HubInterface::class); $options = new ArrayObject([ - 'sender' => $sender->reveal(), + 'hub' => $hub->reveal(), ]); $writer = new Sentry($options); - $sender->send(\Raven_Client::ERROR, 'message', ['foo' => 'bar']) + $scope = new Scope(); + + $hub->withScope(Argument::allOf( + Argument::type('callable') + ))->will(function ($args) use ($scope): void { + $args[0]($scope); + }); + + $hub->captureEvent(Argument::allOf( + Argument::withEntry('message', 'message'), + Argument::withEntry('level', Severity::error()), + Argument::that(function (array $payload) { + return $payload['message'] === 'message'; + }) + )) ->shouldBeCalled(); $event = [ - 'priority' => \Zend\Log\Logger::ERR, + 'priority' => Logger::ERR, 'message' => 'message', 'extra' => [ 'foo' => 'bar', @@ -36,41 +49,75 @@ public function testWrite() ]; $writer->write($event); + + $this->assertSame(Logger::ERR, $scope->getExtra()['zend.priority']); + $this->assertSame('bar', $scope->getExtra()['foo']); } - public function testWriteWithTraversableExtra() + public function testWriteWithTraversableExtra(): void { - $sender = $this->prophesize(SenderInterface::class); - $options = [ - 'sender' => $sender->reveal(), - ]; + $hub = $this->prophesize(HubInterface::class); + $options = new ArrayObject([ + 'hub' => $hub->reveal(), + ]); $writer = new Sentry($options); - $sender->send(\Raven_Client::ERROR, 'message', ['foo' => 'bar']) + $scope = new Scope(); + + $hub->withScope(Argument::allOf( + Argument::type('callable') + ))->will(function ($args) use ($scope): void { + $args[0]($scope); + }); + + $hub->captureEvent(Argument::allOf( + Argument::withEntry('message', 'message'), + Argument::withEntry('level', Severity::error()), + Argument::that(function (array $payload) { + return $payload['message'] === 'message'; + }) + )) ->shouldBeCalled(); $event = [ - 'priority' => \Zend\Log\Logger::ERR, + 'priority' => Logger::ERR, 'message' => 'message', 'extra' => new ArrayObject(['foo' => 'bar']), ]; $writer->write($event); + + $this->assertSame(Logger::ERR, $scope->getExtra()['zend.priority']); + $this->assertSame('bar', $scope->getExtra()['foo']); } - public function testWriteWithInvalidExtra() + public function testWriteWithInvalidExtra(): void { - $sender = $this->prophesize(SenderInterface::class); - $options = [ - 'sender' => $sender->reveal(), - ]; + $hub = $this->prophesize(HubInterface::class); + $options = new ArrayObject([ + 'hub' => $hub->reveal(), + ]); $writer = new Sentry($options); - $sender->send(\Raven_Client::ERROR, 'message', []) + $scope = new Scope(); + + $hub->withScope(Argument::allOf( + Argument::type('callable') + ))->will(function ($args) use ($scope): void { + $args[0]($scope); + }); + + $hub->captureEvent(Argument::allOf( + Argument::withEntry('message', 'message'), + Argument::withEntry('level', Severity::error()), + Argument::that(function (array $payload) { + return $payload['message'] === 'message'; + }) + )) ->shouldBeCalled(); $event = [ - 'priority' => \Zend\Log\Logger::ERR, + 'priority' => Logger::ERR, 'message' => 'message', 'extra' => false, ]; diff --git a/tests/ModuleTest.php b/tests/ModuleTest.php index 1530465..e88f5f2 100644 --- a/tests/ModuleTest.php +++ b/tests/ModuleTest.php @@ -1,89 +1,89 @@ prophesize(MvcEvent::class); - $application = $this->prophesize(Application::class); - $container = $this->prophesize(ContainerInterface::class); - $configuration = $this->prophesize(ConfigurationInterface::class); - - $event->getApplication()->willReturn($application->reveal()); - $application->getServiceManager()->willReturn($container->reveal()); - $container->get(ConfigurationInterface::class)->willReturn($configuration->reveal()); - $configuration->shouldInjectRavenJavascript()->shouldBeCalled()->willReturn(false); - $container->get('ViewHelperManager')->shouldNotBeCalled(); - $module = new Module(); - $module->onBootstrap($event->reveal()); + + $this->assertIsArray($module->getConfig()); + $this->assertArrayHasKey('service_manager', $module->getConfig()); + $this->assertArrayNotHasKey('dependencies', $module->getConfig()); } - public function testOnBootstrapWithEnabledJS() + public function testOnBootstrapWithDisableJS(): void { - $expectedScript = <<