diff --git a/.circleci/config.yml b/.circleci/config.yml index cf56175f..472a466b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,11 +1,19 @@ version: 2.1 +variables: + composer_cache_version: &composer_cache_version v2 + orbs: - eq: equisoft/build-tools@0.0.4 + eq: equisoft/build-tools@0.0.15 workflows: version: 2 build_and_deploy: jobs: - eq/phpunit: + cache-version: *composer_cache_version checkout: true + - eq/psalm : + extra-build-args : --no-diff + composer-cache-version: *composer_cache_version + checkout : true diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..4c0fc569 --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ +BASE_DIR := $(dir $(realpath $(firstword $(MAKEFILE_LIST)))) +OS_TYPE := $(shell uname -s) +USER_ID := $(shell id -u) +GROUP_ID := $(shell id -g) +MKDIR_P = mkdir -p +DOCKER_PHP = docker run -it --rm \ + -v $(BASE_DIR):/home/circleci/project \ + -v ~/.cache:/home/circleci/.cache --user "${USER_ID}:${GROUP_ID}" \ + --workdir /home/circleci/project \ + -e HOME=/home/circleci \ + ghcr.io/kronostechnologies/php:7.2-node + +.PHONY: all setup check psalm test + +all: setup check test + +setup: + @composer install + +check: psalm + +psalm: + @${DOCKER_PHP} ./vendor/bin/psalm $(PSALM_ARGS) + +test: + @./vendor/bin/phpunit diff --git a/composer.json b/composer.json index 6d56a7e3..e93a1054 100644 --- a/composer.json +++ b/composer.json @@ -35,6 +35,12 @@ "sentry/sentry": "<2.0", "graylog2/gelf-php": "~1.5", "fluent/logger": "^1.0", - "phpunit/phpunit": "^8.0" - } + "phpunit/phpunit": "^8.5", + "vimeo/psalm": "^4.6" + }, + "config": { + "platform": { + "php": "7.2" + } + } } diff --git a/composer.lock b/composer.lock index efd7f7fc..f782b077 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "563b6336ec2578e6b3557702a5aaac2e", + "content-hash": "f7339392b37fadb6ebe25289d20f095f", "packages": [ { "name": "psr/log", - "version": "1.1.0", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { @@ -26,7 +26,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -51,46 +51,50 @@ "psr", "psr-3" ], - "time": "2018-11-20T15:27:04+00:00" + "time": "2020-03-23T09:12:05+00:00" } ], "packages-dev": [ { - "name": "doctrine/instantiator", - "version": "1.2.0", + "name": "amphp/amp", + "version": "v2.5.2", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "a2c590166b2133a4633738648b6b064edae0814a" + "url": "https://github.com/amphp/amp.git", + "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", - "reference": "a2c590166b2133a4633738648b6b064edae0814a", + "url": "https://api.github.com/repos/amphp/amp/zipball/efca2b32a7580087adb8aabbff6be1dc1bb924a9", + "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6.0.9 | ^7", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } + "Amp\\": "lib" + }, + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -98,107 +102,145 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "http://amphp.org/amp", "keywords": [ - "constructor", - "instantiate" + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } ], - "time": "2019-03-17T17:37:11+00:00" + "time": "2021-01-10T17:06:37+00:00" }, { - "name": "fluent/logger", - "version": "v1.0.1", + "name": "amphp/byte-stream", + "version": "v1.8.0", "source": { "type": "git", - "url": "https://github.com/fluent/fluent-logger-php.git", - "reference": "c5a19ba8eb5e15f9ade72afeffba6b6e7eb51155" + "url": "https://github.com/amphp/byte-stream.git", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fluent/fluent-logger-php/zipball/c5a19ba8eb5e15f9ade72afeffba6b6e7eb51155", - "reference": "c5a19ba8eb5e15f9ade72afeffba6b6e7eb51155", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", "shasum": "" }, "require": { - "php": ">=5.3.0" + "amphp/amp": "^2", + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "~4.3", - "phpunit/phpunit-mock-objects": "2.3.0" + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "autoload": { "psr-4": { - "Fluent\\Logger\\": "src/" - } + "Amp\\ByteStream\\": "lib" + }, + "files": [ + "lib/functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache" + "MIT" ], "authors": [ { - "name": "Shuhei Tanuma", - "email": "chobieee@gmail.com" - }, - { - "name": "Sotaro Karasawa", - "email": "sotarok@crocos.co.jp" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "DQNEO", - "email": "dqneoo@gmail.com" + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "a logging library for Fluentd", - "homepage": "http://github.com/fluent/fluent-logger-php", + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", "keywords": [ - "log", - "logging" - ], - "time": "2017-02-15T07:14:53+00:00" + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "time": "2020-06-29T18:35:05+00:00" }, { - "name": "graylog2/gelf-php", - "version": "1.6.2", + "name": "composer/package-versions-deprecated", + "version": "1.11.99.1", "source": { "type": "git", - "url": "https://github.com/bzikarsky/gelf-php.git", - "reference": "2344540be1db5e882990d527588649e065efbde0" + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bzikarsky/gelf-php/zipball/2344540be1db5e882990d527588649e065efbde0", - "reference": "2344540be1db5e882990d527588649e065efbde0", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", "shasum": "" }, "require": { - "paragonie/constant_time_encoding": "^1|^2", - "php": ">=5.3.9", - "psr/log": "~1.0" + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" }, - "provide": { - "psr/log-implementation": "~1.0" + "replace": { + "ocramius/package-versions": "1.11.99" }, "require-dev": { - "phpunit/phpunit": "~4.8.36", - "squizlabs/php_codesniffer": "~2.0" + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" }, - "type": "library", + "type": "composer-plugin", "extra": { + "class": "PackageVersions\\Installer", "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Gelf\\": "src/Gelf" + "PackageVersions\\": "src/PackageVersions" } }, "notification-url": "https://packagist.org/downloads/", @@ -207,56 +249,61 @@ ], "authors": [ { - "name": "Benjamin Zikarsky", - "email": "benjamin@zikarsky.de" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" }, { - "name": "gelf-php contributors", - "homepage": "https://github.com/bzikarsky/gelf-php/contributors" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" } ], - "description": "A php implementation to send log-messages to a GELF compatible backend like Graylog2.", - "time": "2018-12-17T07:48:16+00:00" + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-11T10:22:58+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "6.3.3", + "name": "composer/semver", + "version": "3.2.4", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" + "url": "https://github.com/composer/semver.git", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", "shasum": "" }, "require": { - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", - "php": ">=5.5" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.0" - }, - "suggest": { - "psr/log": "Required for using the Log middleware" + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.3-dev" + "dev-main": "3.x-dev" } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { - "GuzzleHttp\\": "src/" + "Composer\\Semver\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -265,57 +312,70 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", + "description": "Semver library that offers utilities, version constraint parsing and validation.", "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" + "semantic", + "semver", + "validation", + "versioning" + ], + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } ], - "time": "2018-04-22T15:46:56+00:00" + "time": "2020-11-13T08:59:24+00:00" }, { - "name": "guzzlehttp/promises", - "version": "v1.3.1", + "name": "composer/xdebug-handler", + "version": "1.4.5", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "f28d44c286812c714741478d968104c5e604a1d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", + "reference": "f28d44c286812c714741478d968104c5e604a1d4", "shasum": "" }, "require": { - "php": ">=5.5.0" + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, "autoload": { "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "Composer\\XdebugHandler\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -323,55 +383,95 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "Guzzle promises library", + "description": "Restarts a process without Xdebug.", "keywords": [ - "promise" + "Xdebug", + "performance" + ], + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } ], - "time": "2016-12-20T10:07:11+00:00" + "time": "2020-11-13T08:04:11+00:00" }, { - "name": "guzzlehttp/psr7", - "version": "1.5.2", + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "9f83dded91781a01c63574e387eaa769be769115" + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/9f83dded91781a01c63574e387eaa769be769115", - "reference": "9f83dded91781a01c63574e387eaa769be769115", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5" - }, - "provide": { - "psr/http-message-implementation": "1.0" + "php": ">=5.3.2" }, "require-dev": { - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5-dev" + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" } }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "time": "2019-12-04T15:06:13+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "type": "library", "autoload": { "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -379,162 +479,1330 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" } ], - "description": "PSR-7 message implementation that also provides common utility methods", + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" + "constructor", + "instantiate" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } ], - "time": "2018-12-04T20:46:45+00:00" + "time": "2020-11-10T18:47:58+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.9.1", + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.2.0", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72" + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", - "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/06f0b06043c7438959dbdeed8bb3f699a19be22e", + "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e", "shasum": "" }, "require": { - "php": "^7.1" - }, - "replace": { - "myclabs/deep-copy": "self.version" + "netresearch/jsonmapper": "^1.0 || ^2.0", + "php": "^7.1 || ^8.0", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^7.0 || ^8.0" }, "type": "library", "autoload": { "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] + "AdvancedJsonRpc\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "ISC" ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } ], - "time": "2019-04-07T13:18:21+00:00" + "description": "A more advanced JSONRPC implementation", + "time": "2021-01-10T17:48:47+00:00" }, { - "name": "paragonie/constant_time_encoding", - "version": "v2.2.3", + "name": "felixfbecker/language-server-protocol", + "version": "1.5.1", "source": { "type": "git", - "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb" + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/55af0dc01992b4d0da7f6372e2eac097bbbaffdb", - "reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730", "shasum": "" }, "require": { - "php": "^7" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^6|^7", - "vimeo/psalm": "^1|^2" + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "autoload": { "psr-4": { - "ParagonIE\\ConstantTime\\": "src/" + "LanguageServerProtocol\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "ISC" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "time": "2021-02-22T14:02:09+00:00" + }, + { + "name": "fluent/logger", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/fluent/fluent-logger-php.git", + "reference": "c5a19ba8eb5e15f9ade72afeffba6b6e7eb51155" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fluent/fluent-logger-php/zipball/c5a19ba8eb5e15f9ade72afeffba6b6e7eb51155", + "reference": "c5a19ba8eb5e15f9ade72afeffba6b6e7eb51155", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.3", + "phpunit/phpunit-mock-objects": "2.3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fluent\\Logger\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache" + ], + "authors": [ + { + "name": "Shuhei Tanuma", + "email": "chobieee@gmail.com" + }, + { + "name": "Sotaro Karasawa", + "email": "sotarok@crocos.co.jp" + }, + { + "name": "DQNEO", + "email": "dqneoo@gmail.com" + } + ], + "description": "a logging library for Fluentd", + "homepage": "http://github.com/fluent/fluent-logger-php", + "keywords": [ + "log", + "logging" + ], + "time": "2017-02-15T07:14:53+00:00" + }, + { + "name": "graylog2/gelf-php", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/bzikarsky/gelf-php.git", + "reference": "16cab667fa01e6e298af1ec3279fe08d43e40a96" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bzikarsky/gelf-php/zipball/16cab667fa01e6e298af1ec3279fe08d43e40a96", + "reference": "16cab667fa01e6e298af1ec3279fe08d43e40a96", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1|^2", + "php": ">=5.6", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7|^6.5|^7.5", + "squizlabs/php_codesniffer": "^3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Gelf\\": "src/Gelf" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Benjamin Zikarsky", + "email": "benjamin@zikarsky.de" + }, + { + "name": "gelf-php contributors", + "homepage": "https://github.com/bzikarsky/gelf-php/contributors" + } + ], + "description": "A php implementation to send log-messages to a GELF compatible backend like Graylog2.", + "time": "2021-02-04T09:05:55+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.5", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.6.1", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17.0" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2020-06-16T21:01:06+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "time": "2021-03-07T09:25:29+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "time": "2020-09-30T07:37:11+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.10.2", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2020-11-13T09:40:50+00:00" + }, + { + "name": "netresearch/jsonmapper", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.6" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JsonMapper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "description": "Map nested JSON structures onto PHP classes", + "time": "2020-04-16T18:48:43+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.10.4", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2020-12-20T10:01:03+00:00" + }, + { + "name": "openlss/lib-array2xml", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/nullivex/lib-array2xml.git", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "LSS": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Bryan Tong", + "email": "bryan@nullivex.com", + "homepage": "https://www.nullivex.com" + }, + { + "name": "Tony Butler", + "email": "spudz76@gmail.com", + "homepage": "https://www.nullivex.com" + } + ], + "description": "Array2XML conversion library credit to lalit.org", + "homepage": "https://www.nullivex.com", + "keywords": [ + "array", + "array conversion", + "xml", + "xml conversion" + ], + "time": "2019-03-29T20:06:56+00:00" + }, + { + "name": "paragonie/constant_time_encoding", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c", + "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c", + "shasum": "" + }, + "require": { + "php": "^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7|^8|^9", + "vimeo/psalm": "^1|^2|^3|^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", "homepage": "https://paragonie.com", "role": "Maintainer" }, { - "name": "Steve 'Sc00bz' Thomas", - "email": "steve@tobtu.com", - "homepage": "https://www.tobtu.com", - "role": "Original Developer" + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "time": "2020-12-06T15:14:20+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "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", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2020-06-27T14:33:11+00:00" + }, + { + "name": "phar-io/version", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "bae7c545bef187884426f042434e561ab1ddb182" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", + "reference": "bae7c545bef187884426f042434e561ab1ddb182", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "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", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2021-02-23T14:00:09+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.2.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2020-09-03T19:13:55+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2020-09-17T18:55:26+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.12.2", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "245710e971a030f42e08f4912863805570f23d39" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", + "reference": "245710e971a030f42e08f4912863805570f23d39", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.1", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2020-12-19T10:15:11+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "7.0.14", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bb7c9a210c72e4709cdde67f8b7362f672f2225c", + "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c", + "shasum": "" + }, + "require": { + "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.1 || ^4.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": { + "phpunit/phpunit": "^8.2.2" + }, + "suggest": { + "ext-xdebug": "^2.7.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", "keywords": [ - "base16", - "base32", - "base32_decode", - "base32_encode", - "base64", - "base64_decode", - "base64_encode", - "bin2hex", - "encoding", - "hex", - "hex2bin", - "rfc4648" + "coverage", + "testing", + "xunit" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2019-01-03T20:26:31+00:00" + "time": "2020-12-02T13:39:03+00:00" }, { - "name": "phar-io/manifest", - "version": "1.0.3", + "name": "phpunit/php-file-iterator", + "version": "2.0.3", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/4b49fb70f067272b659ef0174ff9ca40fdaa6357", + "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:25:21+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "2.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:20:02+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "3.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "472b687829041c24b25f475e14c2f38a09edf1c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/472b687829041c24b25f475e14c2f38a09edf1c2", + "reference": "472b687829041c24b25f475e14c2f38a09edf1c2", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "abandoned": true, + "time": "2020-11-30T08:38:46+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "8.5.14", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c25f79895d27b6ecd5abfa63de1606b786a461a3", + "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3", "shasum": "" }, "require": { + "doctrine/instantiator": "^1.3.1", "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.0", + "phar-io/manifest": "^2.0.1", + "phar-io/version": "^3.0.2", + "php": ">=7.2", + "phpspec/prophecy": "^1.10.3", + "phpunit/php-code-coverage": "^7.0.12", + "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.3", + "sebastian/exporter": "^3.1.2", + "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.5-dev" } }, "autoload": { @@ -546,92 +1814,92 @@ "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "funding": [ { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "url": "https://phpunit.de/donate.html", + "type": "custom" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "url": "https://github.com/sebastianbergmann", + "type": "github" } ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" + "time": "2021-01-17T07:37:30+00:00" }, { - "name": "phar-io/version", - "version": "2.0.1", + "name": "psr/container", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + "url": "https://github.com/php-fig/container.git", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Container\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "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", - "role": "Developer" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2021-03-05T17:36:06+00:00" }, { - "name": "phpdocumentor/reflection-common", + "name": "psr/http-message", "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "shasum": "" }, "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" + "php": ">=5.3.0" }, "type": "library", "extra": { @@ -641,9 +1909,7 @@ }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] + "Psr\\Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -652,218 +1918,272 @@ ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" ], - "time": "2017-09-11T18:02:19+00:00" + "time": "2016-08-06T14:39:51+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.1", + "name": "ralouphie/getallheaders", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c" + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", - "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", "shasum": "" }, "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" + "php": ">=5.6" }, "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "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" + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:15:22+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", + "name": "sebastian/comparator", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", + "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": ">=7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" } ], - "time": "2017-07-14T14:27:02+00:00" + "time": "2020-11-30T08:04:30+00:00" }, { - "name": "phpspec/prophecy", - "version": "1.8.0", + "name": "sebastian/diff", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "php": ">=7.1" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "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" + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2018-08-05T17:53:17+00:00" + "time": "2020-11-30T07:59:04+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "7.0.3", + "name": "sebastian/environment", + "version": "4.2.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "0317a769a81845c390e19684d9ba25d7f6aa4707" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/0317a769a81845c390e19684d9ba25d7f6aa4707", - "reference": "0317a769a81845c390e19684d9ba25d7f6aa4707", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", "shasum": "" }, "require": { - "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.0.1", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.1", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^8.0" + "phpunit/phpunit": "^7.5" }, "suggest": { - "ext-xdebug": "^2.6.1" + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0-dev" + "dev-master": "4.2-dev" } }, "autoload": { @@ -878,43 +2198,50 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", "keywords": [ - "coverage", - "testing", - "xunit" + "Xdebug", + "environment", + "hhvm" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2019-02-26T07:38:26+00:00" + "time": "2020-11-30T07:53:42+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "2.0.2", + "name": "sebastian/exporter", + "version": "3.1.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.0", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -929,36 +2256,71 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "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": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", "keywords": [ - "filesystem", - "iterator" + "export", + "exporter" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2018-09-13T20:33:42+00:00" + "time": "2020-11-30T07:47:53+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "sebastian/global-state", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/474fb9edb7ab891665d3bfc6317f42a0a150454b", + "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b", "shasum": "" }, "require": { - "php": ">=5.3.3" + "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": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -971,41 +2333,48 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", "keywords": [ - "template" + "global state" ], - "time": "2015-06-21T13:50:34+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:43:24+00:00" }, { - "name": "phpunit/php-timer", - "version": "2.1.1", + "name": "sebastian/object-enumerator", + "version": "3.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "8b389aebe1b8b0578430bda0c7c95a829608e059" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b389aebe1b8b0578430bda0c7c95a829608e059", - "reference": "8b389aebe1b8b0578430bda0c7c95a829608e059", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -1020,42 +2389,43 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2019-02-20T10:12:59+00:00" + "time": "2020-11-30T07:40:27+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "3.0.1", + "name": "sebastian/object-reflector", + "version": "1.1.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18", - "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.1" + "php": ">=7.0" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -1073,68 +2443,40 @@ "email": "sebastian@phpunit.de" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2018-10-30T05:52:18+00:00" + "time": "2020-11-30T07:37:18+00:00" }, { - "name": "phpunit/phpunit", - "version": "8.1.3", + "name": "sebastian/recursion-context", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "2a676677982b484ee36b54961f570c02eabbe7e1" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2a676677982b484ee36b54961f570c02eabbe7e1", - "reference": "2a676677982b484ee36b54961f570c02eabbe7e1", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.7", - "phar-io/manifest": "^1.0.2", - "phar-io/version": "^2.0", - "php": "^7.2", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^7.0", - "phpunit/php-file-iterator": "^2.0.1", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1", - "sebastian/comparator": "^3.0", - "sebastian/diff": "^3.0", - "sebastian/environment": "^4.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^3.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0", - "sebastian/version": "^2.0.1" + "php": ">=7.0" }, "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0" + "phpunit/phpunit": "^6.0" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "8.1-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -1149,133 +2491,148 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2019-04-19T15:52:00+00:00" + "time": "2020-11-30T07:34:24+00:00" }, { - "name": "psr/http-message", - "version": "1.0.1", + "name": "sebastian/resource-operations", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2016-08-06T14:39:51+00:00" + "time": "2020-11-30T07:30:19+00:00" }, { - "name": "ralouphie/getallheaders", - "version": "2.0.5", + "name": "sebastian/type", + "version": "1.1.4", "source": { "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/5601c8a83fbba7ef674a7369456d12f1e0d0eafa", - "reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", "shasum": "" }, "require": { - "php": ">=5.3" + "php": ">=7.2" }, "require-dev": { - "phpunit/phpunit": "~3.7.0", - "satooshi/php-coveralls": ">=1.0" + "phpunit/phpunit": "^8.2" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, "autoload": { - "files": [ - "src/getallheaders.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "A polyfill for getallheaders.", - "time": "2016-02-11T07:05:27+00:00" + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:25:11+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "name": "sebastian/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "php": ">=5.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -1290,45 +2647,59 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "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" + "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": "sebastian/comparator", - "version": "3.0.2", + "name": "sentry/sentry", + "version": "1.11.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "url": "https://github.com/getsentry/sentry-php.git", + "reference": "159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe", + "reference": "159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe", "shasum": "" }, "require": { - "php": "^7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "ext-curl": "*", + "php": "^5.3|^7.0" + }, + "conflict": { + "raven/raven": "*" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "friendsofphp/php-cs-fixer": "^1.8.0", + "monolog/monolog": "^1.0", + "phpunit/phpunit": "^4.8.35 || ^5.7" + }, + "suggest": { + "ext-hash": "*", + "ext-json": "*", + "ext-mbstring": "*", + "monolog/monolog": "Automatically capture Monolog events as breadcrumbs" }, + "bin": [ + "bin/sentry" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.11.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "Raven_": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1336,536 +2707,752 @@ ], "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": "David Cramer", + "email": "dcramer@gmail.com" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", + "description": "A PHP client for Sentry (http://getsentry.com)", + "homepage": "http://getsentry.com", "keywords": [ - "comparator", - "compare", - "equality" + "log", + "logging" ], - "time": "2018-07-12T15:12:46+00:00" + "time": "2020-02-12T18:38:11+00:00" }, { - "name": "sebastian/diff", - "version": "3.0.2", + "name": "symfony/console", + "version": "v4.4.20", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "url": "https://github.com/symfony/console.git", + "reference": "c98349bda966c70d6c08b4cd8658377c94166492" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/symfony/console/zipball/c98349bda966c70d6c08b4cd8658377c94166492", + "reference": "c98349bda966c70d6c08b4cd8658377c94166492", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, + "type": "library", "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2019-02-04T06:01:07+00:00" + "time": "2021-02-22T18:44:15+00:00" }, { - "name": "sebastian/environment", - "version": "4.2.2", + "name": "symfony/polyfill-ctype", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", "shasum": "" }, "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5" + "php": ">=7.1" }, "suggest": { - "ext-posix": "*" + "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", "keywords": [ - "Xdebug", - "environment", - "hhvm" + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2019-05-05T09:05:15+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "sebastian/exporter", - "version": "3.1.0", + "name": "symfony/polyfill-intl-idn", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "2d63434d922daf7da8dd863e7907e67ee3031483" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483", + "reference": "2d63434d922daf7da8dd863e7907e67ee3031483", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + }, + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" + "name": "Laurent Bassin", + "email": "laurent@bassin.info" }, { - "name": "Volker Dusch", - "email": "github@wallbash.com" + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" }, { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "url": "https://github.com/fabpot", + "type": "github" }, { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2017-04-03T13:19:02+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "sebastian/global-state", - "version": "3.0.0", + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", "shasum": "" }, "require": { - "php": "^7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^8.0" + "php": ">=7.1" }, "suggest": { - "ext-uopz": "*" + "ext-intl": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "files": [ + "bootstrap.php" + ], "classmap": [ - "src/" + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", "keywords": [ - "global state" + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" ], - "time": "2019-02-01T05:30:01+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "3.0.3", + "name": "symfony/polyfill-mbstring", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.1" }, - "require-dev": { - "phpunit/phpunit": "^6.0" + "suggest": { + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "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" + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-22T09:19:47+00:00" }, { - "name": "sebastian/object-reflector", - "version": "1.1.1", + "name": "symfony/polyfill-php72", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", "shasum": "" }, "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "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" + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "sebastian/recursion-context", - "version": "3.0.0", + "name": "symfony/polyfill-php73", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], "classmap": [ - "src/" + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "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" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "sebastian/resource-operations", - "version": "2.0.1", + "name": "symfony/polyfill-php80", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], "classmap": [ - "src/" + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "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" + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-07T16:49:33+00:00" }, { - "name": "sebastian/version", - "version": "2.0.1", + "name": "symfony/service-contracts", + "version": "v1.1.9", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "url": "https://github.com/symfony/service-contracts.git", + "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b776d18b303a39f56c63747bcb977ad4b27aca26", + "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.1.3", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "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" + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-07-06T13:19:58+00:00" }, { - "name": "sentry/sentry", - "version": "1.10.0", + "name": "theseer/tokenizer", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/getsentry/sentry-php.git", - "reference": "b2b8ffe1560b9fb0110b02993594a4b04a511959" + "url": "https://github.com/theseer/tokenizer.git", + "reference": "75a63c33a8577608444246075ea0af0d052e452a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/b2b8ffe1560b9fb0110b02993594a4b04a511959", - "reference": "b2b8ffe1560b9fb0110b02993594a4b04a511959", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", + "reference": "75a63c33a8577608444246075ea0af0d052e452a", "shasum": "" }, "require": { - "ext-curl": "*", - "php": "^5.3|^7.0" - }, - "conflict": { - "raven/raven": "*" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^1.8.0", - "monolog/monolog": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7" - }, - "suggest": { - "ext-hash": "*", - "ext-json": "*", - "ext-mbstring": "*", - "monolog/monolog": "Automatically capture Monolog events as breadcrumbs" + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" }, - "bin": [ - "bin/sentry" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10.x-dev" - } - }, "autoload": { - "psr-0": { - "Raven_": "lib/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1873,50 +3460,102 @@ ], "authors": [ { - "name": "David Cramer", - "email": "dcramer@gmail.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" } ], - "description": "A PHP client for Sentry (http://getsentry.com)", - "homepage": "http://getsentry.com", - "keywords": [ - "log", - "logging" + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } ], - "time": "2018-11-09T12:27:19+00:00" + "time": "2020-07-12T23:59:07+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.11.0", + "name": "vimeo/psalm", + "version": "4.6.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "82ebae02209c21113908c229e9883c419720738a" + "url": "https://github.com/vimeo/psalm.git", + "reference": "bca09d74adc704c4eaee36a3c3e9d379e290fc3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a", - "reference": "82ebae02209c21113908c229e9883c419720738a", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/bca09d74adc704c4eaee36a3c3e9d379e290fc3b", + "reference": "bca09d74adc704c4eaee36a3c3e9d379e290fc3b", "shasum": "" }, "require": { - "php": ">=5.3.3" + "amphp/amp": "^2.1", + "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.8.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.1", + "dnoegel/php-xdg-base-dir": "^0.1.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "felixfbecker/advanced-json-rpc": "^3.0.3", + "felixfbecker/language-server-protocol": "^1.5", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.10.1", + "openlss/lib-array2xml": "^1.0", + "php": "^7.1|^8", + "sebastian/diff": "^3.0 || ^4.0", + "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", + "webmozart/path-util": "^2.3" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "amphp/amp": "^2.4.2", + "bamarni/composer-bin-plugin": "^1.2", + "brianium/paratest": "^4.0||^6.0", + "ext-curl": "*", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpdocumentor/reflection-docblock": "^5", + "phpmyadmin/sql-parser": "5.1.0||dev-master", + "phpspec/prophecy": ">=1.9.0", + "phpunit/phpunit": "^9.0", + "psalm/plugin-phpunit": "^0.13", + "slevomat/coding-standard": "^6.3.11", + "squizlabs/php_codesniffer": "^3.5", + "symfony/process": "^4.3", + "weirdan/prophecy-shim": "^1.0 || ^2.0" }, "suggest": { - "ext-ctype": "For best performance" + "ext-igbinary": "^2.0.5" }, + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" + "Psalm\\": "src/Psalm/" }, "files": [ - "bootstrap.php" + "src/functions.php", + "src/spl_object_id.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1925,81 +3564,83 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" + "name": "Matthew Brown" } ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", + "description": "A static analysis tool for finding errors in PHP applications", "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" + "code", + "inspection", + "php" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2021-02-26T02:24:18+00:00" }, { - "name": "theseer/tokenizer", - "version": "1.1.2", + "name": "webmozart/assert", + "version": "1.9.1", "source": { "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8" + "url": "https://github.com/webmozarts/assert.git", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/1c42705be2b6c1de5904f8afacef5895cab44bf8", - "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^5.3.3 || ^7.0 || ^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Webmozart\\Assert\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-04-04T09:56:43+00:00" + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2020-07-08T17:02:28+00:00" }, { - "name": "webmozart/assert", - "version": "1.4.0", + "name": "webmozart/path-util", + "version": "2.3.0", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + "url": "https://github.com/webmozart/path-util.git", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" + "php": ">=5.3.3", + "webmozart/assert": "~1.0" }, "require-dev": { "phpunit/phpunit": "^4.6", @@ -2008,12 +3649,12 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "2.3-dev" } }, "autoload": { "psr-4": { - "Webmozart\\Assert\\": "src/" + "Webmozart\\PathUtil\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2026,13 +3667,8 @@ "email": "bschussek@gmail.com" } ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2018-12-25T11:19:39+00:00" + "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "time": "2015-12-17T08:42:14+00:00" } ], "aliases": [], @@ -2043,5 +3679,9 @@ "platform": { "php": ">=7.2" }, - "platform-dev": [] + "platform-dev": [], + "platform-overrides": { + "php": "7.2" + }, + "plugin-api-version": "1.1.0" } diff --git a/psalm.xml b/psalm.xml new file mode 100644 index 00000000..30258a70 --- /dev/null +++ b/psalm.xml @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/src/Adaptor/FileFactory.php b/src/Adaptor/FileFactory.php index 831f3b92..a6a30b6d 100644 --- a/src/Adaptor/FileFactory.php +++ b/src/Adaptor/FileFactory.php @@ -4,13 +4,13 @@ class FileFactory { - public function createFileAdaptor($filename) + public function createFileAdaptor($filename): File { return new File($filename); } - public function createTTYAdaptor($filename) + public function createTTYAdaptor($filename): TTY { return new TTY($filename); } -} \ No newline at end of file +} diff --git a/src/Builder/Strategy/CustomWriter.php b/src/Builder/Strategy/CustomWriter.php index f7bdf0ff..c3cb6d64 100644 --- a/src/Builder/Strategy/CustomWriter.php +++ b/src/Builder/Strategy/CustomWriter.php @@ -9,7 +9,7 @@ class CustomWriter { /** * @param $classname - * @return \Kronos\Log\Builder\Strategy + * @return Strategy * @throws InvalidCustomWriter * @throws \ReflectionException */ @@ -18,12 +18,14 @@ public function getStrategyForClassname($classname) if (class_exists($classname)) { $reflection = new \ReflectionClass($classname); if ($reflection->implementsInterface(Strategy::class)) { - return $reflection->newInstance(); - } else { - throw new InvalidCustomWriter("$classname must implement " . Strategy::class); + $instance = $reflection->newInstance(); + /** @var Strategy $instance */ + return $instance; } - } else { - throw new InvalidCustomWriter("$classname class does not exists"); + + throw new InvalidCustomWriter("$classname must implement " . Strategy::class); } + + throw new InvalidCustomWriter("$classname class does not exists"); } -} \ No newline at end of file +} diff --git a/src/Builder/Strategy/ExceptionTraceHelper.php b/src/Builder/Strategy/ExceptionTraceHelper.php index f7dc3509..c530a53d 100644 --- a/src/Builder/Strategy/ExceptionTraceHelper.php +++ b/src/Builder/Strategy/ExceptionTraceHelper.php @@ -75,9 +75,9 @@ public function getExceptionTraceBuilderForSettings($settings) } return $traceBuilder; - } else { - return null; } + + return null; } public function getPreviousExceptionTraceBuilderForSettings($settings) diff --git a/src/Builder/Strategy/Graylog.php b/src/Builder/Strategy/Graylog.php index 17ffa414..6289d20d 100644 --- a/src/Builder/Strategy/Graylog.php +++ b/src/Builder/Strategy/Graylog.php @@ -26,7 +26,7 @@ public function buildFromArray(array $settings) $hostname = $settings[self::HOSTNAME]; $port = isset($settings[self::PORT]) ? $settings[self::PORT] : 12201; - $chunkSize = isset($settings[self::CHUNK_SIZE]) ? $settings[self::CHUNK_SIZE] : null; + $chunkSize = isset($settings[self::CHUNK_SIZE]) ? $settings[self::CHUNK_SIZE] : 0; $application = isset($settings[self::APPLICATION]) ? $settings[self::APPLICATION] : null; $outputVerboseLevel = isset($settings[self::OUTPUT_VERBOSE_LEVEL]) ? $settings[self::OUTPUT_VERBOSE_LEVEL] : false; diff --git a/src/Factory/Writer.php b/src/Factory/Writer.php index bed60d37..d07ef1c6 100644 --- a/src/Factory/Writer.php +++ b/src/Factory/Writer.php @@ -18,19 +18,19 @@ class Writer { /** - * @var SyslogAdaptor; + * @var SyslogAdaptor|null */ private $syslog_adaptor; /** - * @var FileFactory; + * @var FileFactory|null */ private $file_factory; /** - * @var ContextStringifier + * @var ContextStringifier|null */ - private $context_stringifier = null; + private $context_stringifier; /** * @param $filename @@ -124,8 +124,8 @@ public function createLogDNAWriter( TraceBuilder $exceptionTraceBuilder = null, TraceBuilder $previousExceptionTraceBuilder = null ) { - return new LogDNA($hostname, $application, $ingestionKey, $exceptionTraceBuilder, - $previousExceptionTraceBuilder); + return new LogDNA($hostname, $application, $ingestionKey, [], null, + $exceptionTraceBuilder, $previousExceptionTraceBuilder); } /** diff --git a/src/Formatter/Exception/LineAssembler.php b/src/Formatter/Exception/LineAssembler.php index 43a6dfd8..fcbd8330 100644 --- a/src/Formatter/Exception/LineAssembler.php +++ b/src/Formatter/Exception/LineAssembler.php @@ -35,7 +35,7 @@ class LineAssembler private $shrinkNamespaces = false; /** - * @var NamespaceShrinker + * @var NamespaceShrinker|null */ private $namespaceShrinker; @@ -181,7 +181,7 @@ public function buildExceptionString() { $traceLine = ''; - if (is_numeric($this->line_nb) && !is_null($this->line_nb)) { + if (is_numeric($this->line_nb)) { $traceLine .= "#" . $this->line_nb . ' '; } @@ -196,7 +196,7 @@ public function buildExceptionString() $file = $pathinfo['dirname'] . DIRECTORY_SEPARATOR . $pathinfo['filename']; } - if ($this->shrinkPaths) { + if ($this->shrinkPaths && $this->namespaceShrinker) { $file = $this->namespaceShrinker->shrinkUsingSeparator($file, DIRECTORY_SEPARATOR); } @@ -208,7 +208,7 @@ public function buildExceptionString() } if (!empty($this->class)) { - if ($this->shrinkNamespaces) { + if ($this->shrinkNamespaces && $this->namespaceShrinker) { $traceLine .= $this->namespaceShrinker->shrink($this->class); } else { $traceLine .= $this->class; diff --git a/src/Traits/ExceptionTraceBuilderAwareTrait.php b/src/Traits/ExceptionTraceBuilderAwareTrait.php index 66b6b488..1cb87c4c 100644 --- a/src/Traits/ExceptionTraceBuilderAwareTrait.php +++ b/src/Traits/ExceptionTraceBuilderAwareTrait.php @@ -11,12 +11,12 @@ trait ExceptionTraceBuilderAwareTrait { /** - * @return TraceBuilder + * @return TraceBuilder|null */ abstract function getExceptionTraceBuilder(); /** - * @return TraceBuilder + * @return TraceBuilder|null */ abstract function getPreviousExceptionTraceBuilder(); @@ -40,8 +40,8 @@ protected function getExceptionContext(Throwable $exception): array 'message' => $exception->getMessage() ]; - if ($this->getExceptionTraceBuilder()) { - $context['stacktrace'] = $this->getExceptionTraceBuilder()->getTraceAsString($exception); + if ($exceptionTraceBuilder = $this->getExceptionTraceBuilder()) { + $context['stacktrace'] = $exceptionTraceBuilder->getTraceAsString($exception); } $previous = $exception->getPrevious(); @@ -58,8 +58,8 @@ protected function getPreviousExceptionContext(Throwable $exception): array 'message' => $exception->getMessage() ]; - if ($this->getPreviousExceptionTraceBuilder()) { - $context['stacktrace'] = $this->getPreviousExceptionTraceBuilder()->getTraceAsString($exception); + if ($previousExceptionTraceBuilder = $this->getPreviousExceptionTraceBuilder()) { + $context['stacktrace'] = $previousExceptionTraceBuilder->getTraceAsString($exception); } $previous = $exception->getPrevious(); diff --git a/src/Writer/Console.php b/src/Writer/Console.php index 2d297f7c..19b3d945 100644 --- a/src/Writer/Console.php +++ b/src/Writer/Console.php @@ -4,6 +4,7 @@ use Kronos\Log\Adaptor\File as FileAdaptor; use Kronos\Log\Adaptor\FileFactory; +use Kronos\Log\Adaptor\TTY; use Kronos\Log\Enumeration\AnsiBackgroundColor; use Kronos\Log\Enumeration\AnsiTextColor; use Kronos\Log\Traits\PrependDateTime; @@ -25,22 +26,22 @@ class Console extends \Kronos\Log\AbstractWriter const PREVIOUS_EXCEPTION_TITLE_LINE = "Previous exception: '{message}' in '{file}' at line {line}"; /** - * @var FileAdaptor + * @var TTY */ private $stdout; /** - * @var FileAdaptor + * @var TTY */ private $stderr; /** - * @var TraceBuilder + * @var TraceBuilder|null */ private $exceptionTraceBuilder; /** - * @var TraceBuilder + * @var TraceBuilder|null */ private $previousExceptionTraceBuilder; diff --git a/src/Writer/File.php b/src/Writer/File.php index bc997edf..02f24a10 100644 --- a/src/Writer/File.php +++ b/src/Writer/File.php @@ -27,17 +27,17 @@ class File extends \Kronos\Log\AbstractWriter private $file_adaptor; /** - * @var \Kronos\Log\Formatter\ContextStringifier + * @var ContextStringifier */ - private $context_stringifier = null; + private $context_stringifier; /** - * @var TraceBuilder + * @var TraceBuilder|null */ private $exceptionTraceBuilder; /** - * @var TraceBuilder + * @var TraceBuilder|null */ private $previousExceptionTraceBuilder; diff --git a/src/Writer/Fluentd.php b/src/Writer/Fluentd.php index 27f533b4..5139623d 100644 --- a/src/Writer/Fluentd.php +++ b/src/Writer/Fluentd.php @@ -41,7 +41,7 @@ class Fluentd extends AbstractWriter protected $logger; /** - * @var \Kronos\Log\Factory\Fluentd|null + * @var \Kronos\Log\Factory\Fluentd */ protected $factory; @@ -51,12 +51,12 @@ class Fluentd extends AbstractWriter protected $wrapContextInMeta; /** - * @var TraceBuilder + * @var TraceBuilder|null */ private $exceptionTraceBuilder; /** - * @var TraceBuilder + * @var TraceBuilder|null */ private $previousExceptionTraceBuilder; @@ -223,7 +223,7 @@ public function setContextStringifier(ContextStringifier $contextStringifier) } /** - * @return TraceBuilder + * @return TraceBuilder|null */ public function getExceptionTraceBuilder() { @@ -231,7 +231,7 @@ public function getExceptionTraceBuilder() } /** - * @param TraceBuilder $exceptionTraceBuilder + * @param TraceBuilder|null $exceptionTraceBuilder */ public function setExceptionTraceBuilder($exceptionTraceBuilder) { @@ -239,7 +239,7 @@ public function setExceptionTraceBuilder($exceptionTraceBuilder) } /** - * @return TraceBuilder + * @return TraceBuilder|null */ public function getPreviousExceptionTraceBuilder() { diff --git a/src/Writer/LogDNA.php b/src/Writer/LogDNA.php index ebc8155a..a08c84a2 100644 --- a/src/Writer/LogDNA.php +++ b/src/Writer/LogDNA.php @@ -45,12 +45,12 @@ class LogDNA extends AbstractWriter private $guzzleClient; /** - * @var TraceBuilder + * @var TraceBuilder|null */ private $exceptionTraceBuilder; /** - * @var TraceBuilder + * @var TraceBuilder|null */ private $previousExceptionTraceBuilder; @@ -217,7 +217,7 @@ private function recursiveMerge($base, $addition) } /** - * @return TraceBuilder + * @return TraceBuilder|null */ public function getExceptionTraceBuilder() { @@ -225,7 +225,7 @@ public function getExceptionTraceBuilder() } /** - * @return TraceBuilder + * @return TraceBuilder|null */ public function getPreviousExceptionTraceBuilder() { diff --git a/tests/Builder/Strategy/ConsoleTest.php b/tests/Builder/Strategy/ConsoleTest.php index 7a698d01..5ee04e77 100644 --- a/tests/Builder/Strategy/ConsoleTest.php +++ b/tests/Builder/Strategy/ConsoleTest.php @@ -6,6 +6,7 @@ use Kronos\Log\Builder\Strategy\ExceptionTraceHelper; use Kronos\Log\Factory\Writer; use Kronos\Log\Formatter\Exception\TraceBuilder; +use PHPUnit\Framework\MockObject\MockObject; class ConsoleTest extends \PHPUnit\Framework\TestCase { @@ -18,17 +19,17 @@ class ConsoleTest extends \PHPUnit\Framework\TestCase private $strategy; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Writer */ private $factory; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&ExceptionTraceHelper */ private $exceptionTraceHelper; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&\Kronos\Log\Writer\Console */ private $writer; diff --git a/tests/Builder/Strategy/ExceptionTraceHelperTest.php b/tests/Builder/Strategy/ExceptionTraceHelperTest.php index ad8f3aef..96762ec3 100644 --- a/tests/Builder/Strategy/ExceptionTraceHelperTest.php +++ b/tests/Builder/Strategy/ExceptionTraceHelperTest.php @@ -5,23 +5,20 @@ use Kronos\Log\Builder\Strategy\ExceptionTraceHelper; use Kronos\Log\Factory\Formatter; use Kronos\Log\Formatter\Exception\TraceBuilder; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; -class ExceptionTraceHelperTest extends \PHPUnit\Framework\TestCase +class ExceptionTraceHelperTest extends TestCase { const TOP_LINES = 4; const LOWER_THAN_ONE = -1; const BOTTOM_LINES = 2; const BASE_PATH = '/base/path/'; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Formatter */ private $factory; - /** - * @var \PHPUnit\Framework\MockObject\MockObject - */ - private $traceBuilder; - /** * @var ExceptionTraceHelper */ @@ -350,7 +347,7 @@ public function test_LowerThanOneBottomLines_getPreviousExceptionTraceBuilderFor } /** - * @return \PHPUnit\Framework\MockObject\MockObject + * @return MockObject */ private function givenTraceBuilder() { diff --git a/tests/Builder/Strategy/FileTest.php b/tests/Builder/Strategy/FileTest.php index 6faadb88..f4711e5f 100644 --- a/tests/Builder/Strategy/FileTest.php +++ b/tests/Builder/Strategy/FileTest.php @@ -7,6 +7,7 @@ use Kronos\Log\Exception\RequiredSetting; use Kronos\Log\Factory\Writer; use Kronos\Log\Formatter\Exception\TraceBuilder; +use PHPUnit\Framework\MockObject\MockObject; class FileTest extends \PHPUnit\Framework\TestCase { @@ -20,17 +21,17 @@ class FileTest extends \PHPUnit\Framework\TestCase private $strategy; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Writer */ private $factory; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&ExceptionTraceHelper */ private $exceptionTraceHelper; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&\Kronos\Log\Writer\File */ private $writer; diff --git a/tests/Builder/Strategy/LogDNATest.php b/tests/Builder/Strategy/LogDNATest.php index f554c1e6..66e76381 100644 --- a/tests/Builder/Strategy/LogDNATest.php +++ b/tests/Builder/Strategy/LogDNATest.php @@ -7,6 +7,7 @@ use Kronos\Log\Exception\RequiredSetting; use Kronos\Log\Factory\Writer; use Kronos\Log\Formatter\Exception\TraceBuilder; +use PHPUnit\Framework\MockObject\MockObject; class LogDNATest extends \PHPUnit\Framework\TestCase { @@ -24,17 +25,17 @@ class LogDNATest extends \PHPUnit\Framework\TestCase private $strategy; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Writer */ private $factory; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&ExceptionTraceHelper */ private $exceptionTraceHelper; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&\Kronos\Log\Writer\LogDNA */ private $writer; diff --git a/tests/Builder/Strategy/MemoryTest.php b/tests/Builder/Strategy/MemoryTest.php index 5043c01a..aff7385a 100644 --- a/tests/Builder/Strategy/MemoryTest.php +++ b/tests/Builder/Strategy/MemoryTest.php @@ -4,6 +4,7 @@ use Kronos\Log\Builder\Strategy\Memory; use Kronos\Log\Factory\Writer; +use PHPUnit\Framework\MockObject\MockObject; class MemoryTest extends \PHPUnit\Framework\TestCase { @@ -16,12 +17,12 @@ class MemoryTest extends \PHPUnit\Framework\TestCase private $strategy; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Writer */ private $factory; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&\Kronos\Log\Writer\Memory */ private $writer; diff --git a/tests/Builder/Strategy/SelectorTest.php b/tests/Builder/Strategy/SelectorTest.php index 5ff58c34..8c3a449b 100644 --- a/tests/Builder/Strategy/SelectorTest.php +++ b/tests/Builder/Strategy/SelectorTest.php @@ -15,6 +15,7 @@ use Kronos\Log\Exception\UnsupportedType; use Kronos\Log\Factory\Strategy; use Kronos\Log\Writer\Sentry; +use PHPUnit\Framework\MockObject\MockObject; class SelectorTest extends \PHPUnit\Framework\TestCase { @@ -27,12 +28,12 @@ class SelectorTest extends \PHPUnit\Framework\TestCase private $selector; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Strategy */ private $factory; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Console */ private $strategy; diff --git a/tests/Builder/Strategy/SentryTest.php b/tests/Builder/Strategy/SentryTest.php index b4a1b451..697dcd45 100644 --- a/tests/Builder/Strategy/SentryTest.php +++ b/tests/Builder/Strategy/SentryTest.php @@ -6,6 +6,7 @@ use Kronos\Log\Exception\InvalidSetting; use Kronos\Log\Exception\RequiredSetting; use Kronos\Log\Factory\Writer; +use PHPUnit\Framework\MockObject\MockObject; class SentryTest extends \PHPUnit\Framework\TestCase { @@ -22,17 +23,17 @@ class SentryTest extends \PHPUnit\Framework\TestCase private $strategy; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Writer */ private $factory; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&\Kronos\Log\Writer\Syslog */ private $writer; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&\Raven_Client */ private $ravenClient; diff --git a/tests/Builder/Strategy/SyslogTest.php b/tests/Builder/Strategy/SyslogTest.php index af056350..bef59941 100644 --- a/tests/Builder/Strategy/SyslogTest.php +++ b/tests/Builder/Strategy/SyslogTest.php @@ -5,6 +5,7 @@ use Kronos\Log\Builder\Strategy\Syslog; use Kronos\Log\Exception\RequiredSetting; use Kronos\Log\Factory\Writer; +use PHPUnit\Framework\MockObject\MockObject; class SyslogTest extends \PHPUnit\Framework\TestCase { @@ -19,12 +20,12 @@ class SyslogTest extends \PHPUnit\Framework\TestCase private $strategy; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Writer */ private $factory; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&\Kronos\Log\Writer\Syslog */ private $writer; diff --git a/tests/Builder/Strategy/TriggerErrorTest.php b/tests/Builder/Strategy/TriggerErrorTest.php index f7fa4c41..f70a247a 100644 --- a/tests/Builder/Strategy/TriggerErrorTest.php +++ b/tests/Builder/Strategy/TriggerErrorTest.php @@ -5,6 +5,7 @@ use Kronos\Log\Builder\Strategy\TriggerError; use Kronos\Log\Factory\Writer; use Kronos\Log\Writer\TriggerError AS TriggerErrorWriter; +use PHPUnit\Framework\MockObject\MockObject; class TriggerErrorTest extends \PHPUnit\Framework\TestCase { @@ -13,17 +14,17 @@ class TriggerErrorTest extends \PHPUnit\Framework\TestCase const FILENAME_VALUE = 'filename'; /** - * @var File + * @var TriggerError */ private $strategy; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Writer */ private $factory; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&TriggerErrorWriter */ private $writer; diff --git a/tests/BuilderTest.php b/tests/BuilderTest.php index dbe11393..0454b70d 100644 --- a/tests/BuilderTest.php +++ b/tests/BuilderTest.php @@ -7,6 +7,7 @@ use Kronos\Log\Exception\NoWriter; use Kronos\Log\Factory\Logger as LoggerFactory; use Kronos\Log\Logger; +use PHPUnit\Framework\MockObject\MockObject; class BuilderTest extends \PHPUnit\Framework\TestCase { @@ -20,27 +21,27 @@ class BuilderTest extends \PHPUnit\Framework\TestCase private $builder; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&LoggerFactory */ private $loggerFactory; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Builder\Strategy\Selector */ private $selector; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Logger */ private $logger; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Builder\Strategy */ private $strategy; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&AbstractWriter */ private $writer; diff --git a/tests/Formatter/Exception/LineAssemblerBuilderTest.php b/tests/Formatter/Exception/LineAssemblerBuilderTest.php index 6ce47b4c..f6f4a74c 100644 --- a/tests/Formatter/Exception/LineAssemblerBuilderTest.php +++ b/tests/Formatter/Exception/LineAssemblerBuilderTest.php @@ -15,7 +15,7 @@ class LineAssemblerBuilderTest extends TestCase const INCLUDE_ARGS = true; /** - * @var Factory|MockObject + * @var Factory&MockObject */ private $factory; diff --git a/tests/Formatter/Exception/TraceBuilderTest.php b/tests/Formatter/Exception/TraceBuilderTest.php index 9042f931..855fc0bc 100644 --- a/tests/Formatter/Exception/TraceBuilderTest.php +++ b/tests/Formatter/Exception/TraceBuilderTest.php @@ -12,7 +12,7 @@ class TraceBuilderTest extends \PHPUnit\Framework\TestCase { const PATH_TO_FILE = "/path/to/file/"; /** - * @var MockObject|LineAssemblerBuilder + * @var MockObject&LineAssemblerBuilder */ private $lineAssemblerBuilder; diff --git a/tests/LoggerTest.php b/tests/LoggerTest.php index 7355dc0d..decc09cc 100644 --- a/tests/LoggerTest.php +++ b/tests/LoggerTest.php @@ -3,6 +3,8 @@ namespace Kronos\Tests\Log; use Kronos\Log\Logger; +use Kronos\Log\WriterInterface; +use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LogLevel; class LoggerTest extends \PHPUnit\Framework\TestCase @@ -18,18 +20,18 @@ class LoggerTest extends \PHPUnit\Framework\TestCase /** - * @var \Kronos\Log\Logger + * @var Logger */ private $logger; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&WriterInterface */ private $writer; public function setUp(): void { - $this->writer = $this->createMock(\Kronos\Log\WriterInterface::class); + $this->writer = $this->createMock(WriterInterface::class); $this->logger = new Logger(); $this->logger->addWriter($this->writer); @@ -38,7 +40,7 @@ public function setUp(): void public function test_LoggerWithWriter_Log_ShouldAskWriteCanLogLevel() { $this->writer - ->expects($this->once()) + ->expects(self::once()) ->method('canLogLevel') ->with(self::ANY_LOG_LEVEL); @@ -57,7 +59,7 @@ public function test_LoggerWithWriterThatCanLog_Log_ShouldTellWriterToLog() public function test_LoggerWithWritterThatCannotLog_Log_ShouldNotCallLogOnWriter() { $this->writer->method('canLogLevel')->willReturn(false); - $this->writer->expects($this->never())->method('log'); + $this->writer->expects(self::never())->method('log'); $this->logger->log(self::ANY_LOG_LEVEL, self::A_MESSAGE); } @@ -112,8 +114,8 @@ public function test_WriterThrowException_Log_ShouldCatchExceptionAndTriggerErro $this->logger->log(self::ANY_LOG_LEVEL, self::A_MESSAGE, [self::A_CONTEXT_KEY => self::A_CONTEXT_VALUE]); - $this->assertEquals(1, $errorHandled); - $this->assertTrue($handledTriggedError); + self::assertEquals(1, $errorHandled); + self::assertTrue($handledTriggedError); } finally { // making sure that no matter what happens in my test, PHPUnit error handler is put back @@ -129,7 +131,7 @@ private function givenWriterCanLog() private function expectsWriterLogToBeCalledWith($level, $message, $context) { $this->writer - ->expects($this->once()) + ->expects(self::once()) ->method('log') ->with($level, $message, $context); } diff --git a/tests/Writer/ConsoleTest.php b/tests/Writer/ConsoleTest.php index af77c4ef..ff66dfd9 100644 --- a/tests/Writer/ConsoleTest.php +++ b/tests/Writer/ConsoleTest.php @@ -10,6 +10,7 @@ use Kronos\Log\Formatter\Exception\TraceBuilder; use Kronos\Log\Writer\Console; use \Kronos\Log\Logger; +use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LogLevel; use Exception; use PHPUnit_Framework_MockObject_MockObject; @@ -42,27 +43,27 @@ class ConsoleTest extends \PHPUnit\Framework\TestCase private $writer; /** - * @var FileFactory|PHPUnit_Framework_MockObject_MockObject + * @var FileFactory&MockObject */ private $fileFactory; /** - * @var TTY|PHPUnit_Framework_MockObject_MockObject + * @var TTY&MockObject */ private $stdout; /** - * @var TTY|PHPUnit_Framework_MockObject_MockObject + * @var TTY&MockObject */ private $stderr; /** - * @var TraceBuilder|PHPUnit_Framework_MockObject_MockObject + * @var TraceBuilder&MockObject */ private $exceptionTraceBuilder; /** - * @var TraceBuilder|PHPUnit_Framework_MockObject_MockObject + * @var TraceBuilder&MockObject */ private $previousExceptionTraceBuilder; @@ -75,7 +76,7 @@ public function setUp(): void public function test_NewConsole_Constructor_ShouldCreateAdaptorForStdoutAndStderr() { $this->fileFactory - ->expects($this->exactly(2)) + ->expects(self::exactly(2)) ->method('createTTYAdaptor') ->withConsecutive( [Console::STDOUT], @@ -118,7 +119,7 @@ public function test_ConsolePrependingLogLevelAndDateTime_LogWithLevelBelowError { $this->givenFactoryReturnFileAdaptors(); $this->expectsWriteToBeCalled($this->stdout, - $this->matchesRegularExpression('/' . self::DATETIME_REGEX . '' . self::INTERPOLATED_MESSAGE_WITH_LOG_LEVEL . '/')); + self::matchesRegularExpression('/' . self::DATETIME_REGEX . '' . self::INTERPOLATED_MESSAGE_WITH_LOG_LEVEL . '/')); $this->writer = new Console($this->fileFactory); $this->writer->setPrependLogLevel(); $this->writer->setPrependDateTime(); @@ -153,7 +154,7 @@ public function test_ContextContainingExceptionAndLogLevelLowerThanError_Log_Sho [self::INTERPOLATED_MESSAGE], ]); $this->expectsWriteToBeCalledWithConsecutive($this->stderr, [ - [$this->matches(self::EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::EXCEPTION_TITLE_LINE_FORMAT)], [''] ]); $writer = new Console($this->fileFactory); @@ -172,8 +173,8 @@ public function test_ContextContainingExceptionAndLogLevelIsErrorAndTraceBuilder $this->exceptionTraceBuilder = $this->createMock(TraceBuilder::class); $this->expectsWriteToBeCalledWithConsecutive($this->stderr, [ [self::INTERPOLATED_MESSAGE, AnsiTextColor::WHITE, AnsiBackgroundColor::RED], - [$this->matches(self::EXCEPTION_TITLE_LINE_FORMAT)], - [$this->anything()], + [self::matches(self::EXCEPTION_TITLE_LINE_FORMAT)], + [self::anything()], [''] // Because we can't mock exceptions, can't be sure it's really the stacktrace... ]); $exception = new Exception(self::EXCEPTION_MESSAGE); @@ -195,7 +196,7 @@ public function test_ContextContainingExceptionAndLogLevelIsErrorAndNoTraceBuild $this->givenFactoryReturnFileAdaptors(); $this->expectsWriteToBeCalledWithConsecutive($this->stderr, [ [self::INTERPOLATED_MESSAGE, AnsiTextColor::WHITE, AnsiBackgroundColor::RED], - [$this->matches(self::EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::EXCEPTION_TITLE_LINE_FORMAT)], [''] ]); $exception = new Exception(self::EXCEPTION_MESSAGE); @@ -218,9 +219,9 @@ public function test_ContextContainingExceptionWithPreviousExceptionAndLogLevelI $exception = new \Exception(self::EXCEPTION_MESSAGE, 0, $previous_exception); $this->expectsWriteToBeCalledWithConsecutive($this->stderr, [ [self::INTERPOLATED_MESSAGE, AnsiTextColor::WHITE, AnsiBackgroundColor::RED], - [$this->matches(self::EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::EXCEPTION_TITLE_LINE_FORMAT)], [''], - [$this->matches(self::PREVIOUS_EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::PREVIOUS_EXCEPTION_TITLE_LINE_FORMAT)], [$previous_exception->getTraceAsString()], [''] ]); @@ -245,9 +246,9 @@ public function test_ContextContainingExceptionWithPreviousExceptionAndLogLevelI $exception = new \Exception(self::EXCEPTION_MESSAGE, 0, $previous_exception); $this->expectsWriteToBeCalledWithConsecutive($this->stderr, [ [self::INTERPOLATED_MESSAGE, AnsiTextColor::WHITE, AnsiBackgroundColor::RED], - [$this->matches(self::EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::EXCEPTION_TITLE_LINE_FORMAT)], [''], - [$this->matches(self::PREVIOUS_EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::PREVIOUS_EXCEPTION_TITLE_LINE_FORMAT)], [''] ]); @@ -267,49 +268,49 @@ private function givenFactoryReturnFileAdaptors() $this->fileFactory ->method('createTTYAdaptor') - ->will($this->returnValueMap([ + ->will(self::returnValueMap([ [Console::STDOUT, $this->stdout], [Console::STDERR, $this->stderr], ])); } /** - * @param TTY|PHPUnit_Framework_MockObject_MockObject $file + * @param TTY&MockObject $file * @param $message * @param null $text_color * @param null $background_color */ private function expectsWriteToBeCalled($file, $message, $text_color = null, $background_color = null) { - $file->expects($this->once())->method('write')->with($message, $text_color, $background_color); + $file->expects(self::once())->method('write')->with($message, $text_color, $background_color); } /** - * @param TTY|PHPUnit_Framework_MockObject_MockObject $file + * @param TTY&MockObject $file * @param $with */ private function expectsSetForceAnsiColorSupportToBeCalled($file, $with) { - $file->expects($this->once())->method('setForceAnsiColorSupport')->with($with); + $file->expects(self::once())->method('setForceAnsiColorSupport')->with($with); } /** - * @param TTY|PHPUnit_Framework_MockObject_MockObject $file + * @param TTY&MockObject $file * @param $with */ private function expectsSetForceNoAnsiColorSupportToBeCalled($file, $with) { - $file->expects($this->once())->method('setForceNoAnsiColorSupport')->with($with); + $file->expects(self::once())->method('setForceNoAnsiColorSupport')->with($with); } /** - * @param TTY|PHPUnit_Framework_MockObject_MockObject $file + * @param TTY&MockObject $file * @param array $consecutive_args */ private function expectsWriteToBeCalledWithConsecutive($file, array $consecutive_args) { $method = $file - ->expects($this->exactly(count($consecutive_args))) + ->expects(self::exactly(count($consecutive_args))) ->method('write'); call_user_func_array([$method, 'withConsecutive'], $consecutive_args); } diff --git a/tests/Writer/FileTest.php b/tests/Writer/FileTest.php index d16e1c92..912334f2 100644 --- a/tests/Writer/FileTest.php +++ b/tests/Writer/FileTest.php @@ -6,6 +6,7 @@ use Kronos\Log\Formatter\ContextStringifier; use Kronos\Log\Formatter\Exception\TraceBuilder; use Kronos\Log\Writer\File; +use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LogLevel; use \Kronos\Log\Logger; @@ -34,22 +35,22 @@ class FileTest extends \PHPUnit\Framework\TestCase const STRINGIFIED_CONTEXT = 'stringified context'; /** - * @var File|\PHPUnit\Framework\MockObject\MockObject + * @var File&MockObject */ private $adaptor; /** - * @var FileFactory|\PHPUnit\Framework\MockObject\MockObject + * @var FileFactory&MockObject */ private $factory; /** - * @var ExceptionTraceBuilder|\PHPUnit\Framework\MockObject\MockObject + * @var TraceBuilder&MockObject */ private $exceptionTraceBuilder; /** - * @var ExceptionTraceBuilder|\PHPUnit\Framework\MockObject\MockObject + * @var TraceBuilder&MockObject */ private $previousExceptionTraceBuilder; @@ -59,13 +60,13 @@ public function setUp(): void $this->factory = $this->createMock(\Kronos\Log\Adaptor\FileFactory::class); - $this->exceptionTraceBuilder = $this->getMockBuilder(\Kronos\Log\Formatter\Exception\TraceBuilder::class)->disableOriginalConstructor()->getMock(); + $this->exceptionTraceBuilder = $this->getMockBuilder(TraceBuilder::class)->disableOriginalConstructor()->getMock(); } public function test_NewWriter_Constructor_ShouldCreateNewFile() { $this->factory - ->expects($this->once()) + ->expects(self::once()) ->method('createFileAdaptor') ->with(self::A_FILENAME); @@ -85,7 +86,7 @@ public function test_WriterPrependingLogLevelAndDateTime_Log_ShouldCallWriteWith ) { $this->givenFactoryReturnAdaptor(); - $this->expectsWriteToByCalledOnceWith($this->matchesRegularExpression('/' . self::DATETIME_REGEX . '' . self::INTERPOLATED_MESSAGE_WITH_LOG_LEVEL . '/')); + $this->expectsWriteToByCalledOnceWith(self::matchesRegularExpression('/' . self::DATETIME_REGEX . '' . self::INTERPOLATED_MESSAGE_WITH_LOG_LEVEL . '/')); $writer = new File(self::A_FILENAME, $this->factory); $writer->setPrependLogLevel(); $writer->setPrependDateTime(); @@ -111,7 +112,7 @@ public function test_ContextContainingExceptionAndLogLevelLowerThanError_Log_Sho $this->givenFactoryReturnAdaptor(); $this->expectsWriteToBeCalledWithConsecutive([ [self::INTERPOLATED_MESSAGE], - [$this->matches(self::EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::EXCEPTION_TITLE_LINE_FORMAT)], [''] ]); $writer = new File(self::A_FILENAME, $this->factory); @@ -129,7 +130,7 @@ public function test_ContextContainingExceptionAndLogLevelIsErrorAndNoTraceBuild $exception = new \Exception(self::EXCEPTION_MESSAGE); $this->expectsWriteToBeCalledWithConsecutive([ [self::INTERPOLATED_MESSAGE], - [$this->matches(self::EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::EXCEPTION_TITLE_LINE_FORMAT)], [''] ]); $writer = new File(self::A_FILENAME, $this->factory); @@ -150,9 +151,9 @@ public function test_ContextContainingExceptionWithPreviousExceptionAndLogLevelI $exception = new \Exception(self::EXCEPTION_MESSAGE, 0, $previous_exception); $this->expectsWriteToBeCalledWithConsecutive([ [self::INTERPOLATED_MESSAGE], - [$this->matches(self::EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::EXCEPTION_TITLE_LINE_FORMAT)], [''], - [$this->matches(self::PREVIOUS_EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::PREVIOUS_EXCEPTION_TITLE_LINE_FORMAT)], [$previous_exception->getTraceAsString()], [''] ]); @@ -177,9 +178,9 @@ public function test_ContextContainingExceptionWithPreviousExceptionAndLogLevelI $exception = new \Exception(self::EXCEPTION_MESSAGE, 0, $previous_exception); $this->expectsWriteToBeCalledWithConsecutive([ [self::INTERPOLATED_MESSAGE], - [$this->matches(self::EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::EXCEPTION_TITLE_LINE_FORMAT)], [''], - [$this->matches(self::PREVIOUS_EXCEPTION_TITLE_LINE_FORMAT)], + [self::matches(self::PREVIOUS_EXCEPTION_TITLE_LINE_FORMAT)], [''] ]); @@ -197,7 +198,7 @@ public function test_Writer_SetContextStringify_ShouldExcludeExceptionKey() $this->givenFactoryReturnAdaptor(); $context_stringifier = $this->createMock(ContextStringifier::class); $context_stringifier - ->expects($this->once()) + ->expects(self::once()) ->method('excludeKey') ->with(Logger::EXCEPTION_CONTEXT); $writer = new File(self::A_FILENAME, $this->factory); @@ -214,7 +215,7 @@ public function test_WriterWithContextStringifier_Log_ShouldWriteStringifiedVers $this->expectsContextToBeIncludedInWriter(); $context_stringifier = $this->createMock(ContextStringifier::class); $context_stringifier - ->expects($this->once()) + ->expects(self::once()) ->method('stringify') ->with($context) ->willReturn(self::STRINGIFIED_CONTEXT); @@ -246,7 +247,7 @@ public function test_PopulatedContextWithStringifier_Log_WillWrite() ]; $given_stringifier = $this->createMock(ContextStringifier::class); $given_stringifier - ->expects($this->once()) + ->expects(self::once()) ->method('stringify') ->with($given_context) ->willReturn(self::STRINGIFIED_CONTEXT); @@ -267,7 +268,7 @@ private function givenFactoryReturnAdaptor() private function expectsWriteToBeCalledOnce() { $this->adaptor - ->expects($this->once()) + ->expects(self::once()) ->method('write'); } @@ -283,7 +284,7 @@ private function expectsContextToBeIncludedInWriter() private function expectsWriteToByCalledOnceWith($line) { $this->adaptor - ->expects($this->once()) + ->expects(self::once()) ->method('write') ->with($line); } @@ -291,7 +292,7 @@ private function expectsWriteToByCalledOnceWith($line) private function expectsWriteToBeCalledWithConsecutive(array $consecutive_args) { $method = $this->adaptor - ->expects($this->exactly(count($consecutive_args))) + ->expects(self::exactly(count($consecutive_args))) ->method('write'); call_user_func_array([$method, 'withConsecutive'], $consecutive_args); } diff --git a/tests/Writer/FluentdTest.php b/tests/Writer/FluentdTest.php index 794dd9b7..89fd0c44 100644 --- a/tests/Writer/FluentdTest.php +++ b/tests/Writer/FluentdTest.php @@ -7,17 +7,18 @@ use Fluent\Logger\FluentLogger; use Kronos\Log\Writer\Fluentd; use Kronos\Log\Factory\Fluentd\FluentBitJsonPacker; +use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LogLevel; class FluentdTest extends \PHPUnit\Framework\TestCase { /** - * @var \Kronos\Log\Factory\Fluentd|\PHPUnit\Framework\MockObject\MockObject + * @var \Kronos\Log\Factory\Fluentd&MockObject */ private $factory; /** - * @var FluentLogger|\PHPUnit\Framework\MockObject\MockObject + * @var FluentLogger&MockObject */ private $logger; diff --git a/tests/Writer/GraylogTest.php b/tests/Writer/GraylogTest.php index 320e41c1..e819ca02 100644 --- a/tests/Writer/GraylogTest.php +++ b/tests/Writer/GraylogTest.php @@ -9,27 +9,28 @@ use Gelf\Transport\UdpTransport; use Kronos\Log\Factory\Writer; use Kronos\Log\Writer\Graylog; +use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LogLevel; class GraylogTest extends \PHPUnit\Framework\TestCase { /** - * @var \Kronos\Log\Factory\Graylog|\PHPUnit\Framework\MockObject\MockObject + * @var \Kronos\Log\Factory\Graylog&MockObject */ private $factory; /** - * @var Logger|\PHPUnit\Framework\MockObject\MockObject + * @var Logger&MockObject */ private $logger; /** - * @var Publisher|\PHPUnit\Framework\MockObject\MockObject + * @var Publisher&MockObject */ private $publisher; /** - * @var UdpTransport|\PHPUnit\Framework\MockObject\MockObject + * @var UdpTransport&MockObject */ private $transport; @@ -63,7 +64,7 @@ public function test_uninitializedWithHostParamsSet_log_CreatesUdpTransportMatch $this->factory->method('createLogger')->willReturn($this->logger); $this->factory->method('createPublisher')->willReturn($this->publisher); - $this->factory->expects($this->once()) + $this->factory->expects(self::once()) ->method('createUdpTransport') ->with($givenHostname, $givenPort, $givenChunkSize) ->willReturn($this->transport); @@ -77,7 +78,7 @@ public function test_unitializedWithHostParamsSet_log_BuildsLogger() $this->factory->method('createUdpTransport')->willReturn($this->transport); $this->factory->method('createPublisher')->willReturn($this->publisher); - $this->factory->expects($this->once())->method('createLogger')->with($this->publisher)->willReturn($this->logger); + $this->factory->expects(self::once())->method('createLogger')->with($this->publisher)->willReturn($this->logger); $this->writer->log(LogLevel::INFO, 'anything'); } @@ -88,7 +89,7 @@ public function test_initialized_logTwice_DoesNotInitializeTwice() $this->factory->method('createUdpTransport')->willReturn($this->transport); $this->factory->method('createPublisher')->willReturn($this->publisher); - $this->factory->expects($this->once())->method('createLogger')->willReturn($this->logger); + $this->factory->expects(self::once())->method('createLogger')->willReturn($this->logger); $this->writer->log(LogLevel::INFO, 'anything'); $this->writer->log(LogLevel::INFO, 'anything'); @@ -102,7 +103,7 @@ public function test_logWithValidLevel_RemapsLevelToNumeric() $this->factory->method('createUdpTransport')->willReturn($this->transport); $this->factory->method('createPublisher')->willReturn($this->publisher); - $this->logger->expects($this->once())->method('log')->with(2, $this->anything(), $this->anything()); + $this->logger->expects(self::once())->method('log')->with(2, self::anything(), self::anything()); $this->writer->log($givenLevel, 'Something broke!'); } @@ -115,7 +116,7 @@ public function test_logWithMessage_PassesMessageToLogger() $this->factory->method('createUdpTransport')->willReturn($this->transport); $this->factory->method('createPublisher')->willReturn($this->publisher); - $this->logger->expects($this->once())->method('log')->with($this->anything(), $givenMessage, $this->anything()); + $this->logger->expects(self::once())->method('log')->with(self::anything(), $givenMessage, self::anything()); $this->writer->log(LogLevel::INFO, $givenMessage); } @@ -128,7 +129,7 @@ public function test_applicationUnset_logWithAdditionalContext_PassesContextToLo $this->factory->method('createUdpTransport')->willReturn($this->transport); $this->factory->method('createPublisher')->willReturn($this->publisher); - $this->logger->expects($this->once())->method('log')->with($this->anything(), $this->anything(), $givenContext); + $this->logger->expects(self::once())->method('log')->with(self::anything(), self::anything(), $givenContext); $this->writer->log(LogLevel::INFO, 'Something happened.', $givenContext); } @@ -141,7 +142,7 @@ public function test_applicationSet_log_AppendsApplicationToContext() $this->factory->method('createUdpTransport')->willReturn($this->transport); $this->factory->method('createPublisher')->willReturn($this->publisher); - $this->logger->expects($this->once())->method('log')->with($this->anything(), $this->anything(), + $this->logger->expects(self::once())->method('log')->with(self::anything(), self::anything(), ['_app' => $givenApplication]); $this->writer->log(LogLevel::INFO, 'Something happened.'); @@ -155,7 +156,7 @@ public function test_applicationSetWithCustomContext_log_AppendsApplicationToCon $this->factory->method('createUdpTransport')->willReturn($this->transport); $this->factory->method('createPublisher')->willReturn($this->publisher); - $this->logger->expects($this->once())->method('log')->with($this->anything(), $this->anything(), + $this->logger->expects(self::once())->method('log')->with(self::anything(), self::anything(), ['_app' => $givenApplication, 'customContextValue' => 123]); $this->writer->log(LogLevel::INFO, 'Something happened.', ['customContextValue' => 123]); @@ -168,7 +169,7 @@ public function test_outputVerboseLevelSet_log_AppendsVerboseLevelToContext() $this->factory->method('createUdpTransport')->willReturn($this->transport); $this->factory->method('createPublisher')->willReturn($this->publisher); - $this->logger->expects($this->once())->method('log')->with($this->anything(), $this->anything(), + $this->logger->expects(self::once())->method('log')->with(self::anything(), self::anything(), ['levelVerbose' => LogLevel::INFO]); $this->writer->log(LogLevel::INFO, 'Something happened.'); @@ -181,7 +182,7 @@ public function test_outputVerboseLevelSetWithCustomContext_log_AppendsVerboseLe $this->factory->method('createUdpTransport')->willReturn($this->transport); $this->factory->method('createPublisher')->willReturn($this->publisher); - $this->logger->expects($this->once())->method('log')->with($this->anything(), $this->anything(), + $this->logger->expects(self::once())->method('log')->with(self::anything(), self::anything(), ['customContextValue' => 123, 'levelVerbose' => LogLevel::INFO]); $this->writer->log(LogLevel::INFO, 'Something happened.', ['customContextValue' => 123]); @@ -200,8 +201,8 @@ public function test_exceptionWhenLogging_log_ReturnsFalse() $h = true; }, E_USER_WARNING); $retVal = $this->writer->log(LogLevel::INFO, "Anything"); - $this->assertTrue($h); + self::assertTrue($h); - $this->assertFalse($retVal); + self::assertFalse($retVal); } } diff --git a/tests/Writer/LogDNATest.php b/tests/Writer/LogDNATest.php index 79514f3b..f73b7890 100644 --- a/tests/Writer/LogDNATest.php +++ b/tests/Writer/LogDNATest.php @@ -6,6 +6,7 @@ use Kronos\Log\Formatter\Exception\TraceBuilder; use Kronos\Log\Writer\LogDNA; use Kronos\Log\Factory; +use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LogLevel; class LogDNATest extends \PHPUnit\Framework\TestCase @@ -38,29 +39,29 @@ class LogDNATest extends \PHPUnit\Framework\TestCase private $writer; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&Factory\Guzzle */ private $factory; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&\GuzzleHttp\Client */ private $client; /** - * @var \PHPUnit\Framework\MockObject\MockObject|TraceBuilder + * @var MockObject&TraceBuilder */ private $exceptionTraceBuilder; /** - * @var \PHPUnit\Framework\MockObject\MockObject|TraceBuilder + * @var MockObject&TraceBuilder */ private $previousExceptionTraceBuilder; /** - * @var \PHPUnit\Framework\MockObject\MockObject + * @var MockObject&ContextStringifier */ - private $context_stringifier; + private $contextStringifier; public function setUp(): void { @@ -72,7 +73,7 @@ public function setUp(): void $this->factory = $this->createMock(Factory\Guzzle::class); $this->factory->method('createClient')->willReturn($this->client); - $this->context_stringifier = $this->createMock(ContextStringifier::class); + $this->contextStringifier = $this->createMock(ContextStringifier::class); } public function test_constructor_ShouldCreateGuzzleClient() @@ -90,7 +91,7 @@ public function test_constructor_ShouldCreateGuzzleClient() ]); $this->writer = new LogDNA(self::HOSTNAME, self::APPLICATION, self::INGESTION_KEY, [], $this->factory, - $this->exceptionTraceBuilder, $this->previousExceptionTraceBuilder, $this->context_stringifier); + $this->exceptionTraceBuilder, $this->previousExceptionTraceBuilder, $this->contextStringifier); } public function test_guzzleOptions_constructor_ShouldCreateGuzzleClientWithMergedOptions() @@ -121,12 +122,12 @@ public function test_guzzleOptions_constructor_ShouldCreateGuzzleClientWithMerge $this->writer = new LogDNA(self::HOSTNAME, self::APPLICATION, self::INGESTION_KEY, $guzzleOptions, $this->factory, $this->exceptionTraceBuilder, $this->previousExceptionTraceBuilder, - $this->context_stringifier); + $this->contextStringifier); } public function test_Context_log_ShouldStringifyContext() { - $this->context_stringifier + $this->contextStringifier ->expects(self::once()) ->method('stringifyArray') ->with(self::CONTEXT); @@ -220,7 +221,7 @@ public function test_MacAddress_log_ShouldPutMacAddressInUri() public function test_ExceptionInContext_log_ShouldReplaceExceptionWithMessage() { $exception = new TestableException('exception message'); - $this->context_stringifier + $this->contextStringifier ->expects(self::once()) ->method('stringifyArray') ->with([ @@ -242,7 +243,7 @@ public function test_ExceptionInContextAndTraceBuilder_log_ShouldReplaceExceptio ->method('getTraceAsString') ->with($exception) ->willReturn(self::EXCEPTION_TRACE); - $this->context_stringifier + $this->contextStringifier ->expects(self::once()) ->method('stringifyArray') ->with([ @@ -259,7 +260,7 @@ public function test_ExceptionWithPreviousExceptionInContext_log_ShouldIncludePr { $previousException = new TestableException('previous exception message'); $exception = new TestableException('exception message', 0, $previousException); - $this->context_stringifier + $this->contextStringifier ->expects(self::once()) ->method('stringifyArray') ->with([ @@ -286,7 +287,7 @@ public function test_ExceptionWithPreviousExceptionInContextAndTraceBuilder_log_ ->method('getTraceAsString') ->with($previousException) ->willReturn(self::EXCEPTION_TRACE); - $this->context_stringifier + $this->contextStringifier ->expects(self::once()) ->method('stringifyArray') ->with([ @@ -305,7 +306,7 @@ public function test_ExceptionWithPreviousExceptionInContextAndTraceBuilder_log_ public function test_ExceptionStringInContext_log_ShouldKeepExceptionText() { $this->givenWriter(); - $this->context_stringifier + $this->contextStringifier ->expects(self::once()) ->method('stringifyArray') ->with([ @@ -331,7 +332,7 @@ public function test_GuzzleClientThrowException_log_ShouldDoNothing() private function givenWriter() { $this->writer = new LogDNA(self::HOSTNAME, self::APPLICATION, self::INGESTION_KEY, [], $this->factory, - null, null, $this->context_stringifier); + null, null, $this->contextStringifier); } private function givenWriterWithExceptionTraceBuilder() @@ -339,7 +340,7 @@ private function givenWriterWithExceptionTraceBuilder() $this->exceptionTraceBuilder = $this->createMock(TraceBuilder::class); $this->writer = new LogDNA(self::HOSTNAME, self::APPLICATION, self::INGESTION_KEY, [], $this->factory, - $this->exceptionTraceBuilder, null, $this->context_stringifier); + $this->exceptionTraceBuilder, null, $this->contextStringifier); } private function givenWriterWithPreviousExceptionTraceBuilder() @@ -347,7 +348,7 @@ private function givenWriterWithPreviousExceptionTraceBuilder() $this->previousExceptionTraceBuilder = $this->createMock(TraceBuilder::class); $this->writer = new LogDNA(self::HOSTNAME, self::APPLICATION, self::INGESTION_KEY, [], $this->factory, - null, $this->previousExceptionTraceBuilder, $this->context_stringifier); + null, $this->previousExceptionTraceBuilder, $this->contextStringifier); } private function buildUriRegex($uri) @@ -357,7 +358,7 @@ private function buildUriRegex($uri) protected function givenStringifiedContext() { - $this->context_stringifier + $this->contextStringifier ->method('stringifyArray') ->willReturn(self::STINGIFYIED_CONTEXT); }