diff --git a/.gitignore b/.gitignore index 2e20404..0cdc741 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ data vendor -composer.lock phing*.phar -*.bat \ No newline at end of file +*.bat +.idea +.phpunit.result.cache diff --git a/.travis.yml b/.travis.yml index c1600db..79427ac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,21 +1,21 @@ language: php php: - - 5.6 - - 7 - - 7.1 - 7.2 + - 7.3 + - 7.4 + - 8 before_script: - composer update --prefer-source script: - ./vendor/bin/phpunit - - ./vendor/bin/phpcs --standard=PSR2 --ignore="test/Bootstrap.php" ./src/ ./test/ + - ./vendor/bin/phpcs --standard=PSR2 --ignore="test/Bootstrap.php" ./src/ ./tests/ after_script: - - if [ $TRAVIS_PHP_VERSION != '7' ] && [ $TRAVIS_PHP_VERSION != '7.1' ] && [ $TRAVIS_PHP_VERSION != '7.2' ]; then wget https://scrutinizer-ci.com/ocular.phar; fi - - if [ $TRAVIS_PHP_VERSION != '7' ] && [ $TRAVIS_PHP_VERSION != '7.1' ] && [ $TRAVIS_PHP_VERSION != '7.2' ]; then php ocular.phar code-coverage:upload --format=php-clover ./build/logs/clover.xml; fi + - if [ $TRAVIS_PHP_VERSION != '7.3' ] && [ $TRAVIS_PHP_VERSION != '7.4' ] && [ $TRAVIS_PHP_VERSION != '8' ]; then wget https://scrutinizer-ci.com/ocular.phar; fi + - if [ $TRAVIS_PHP_VERSION != '7.3' ] && [ $TRAVIS_PHP_VERSION != '7.4' ] && [ $TRAVIS_PHP_VERSION != '8' ]; then php ocular.phar code-coverage:upload --format=php-clover ./build/logs/clover.xml; fi notifications: email: false diff --git a/README.md b/README.md index 9fd4abf..e1da7d5 100644 --- a/README.md +++ b/README.md @@ -7,22 +7,23 @@ [![Total Downloads](https://poser.pugx.org/tck/zf2-imageresizer/downloads)](https://packagist.org/packages/tck/zf2-imageresizer) [![License](https://poser.pugx.org/tck/zf2-imageresizer/license)](https://packagist.org/packages/tck/zf2-imageresizer) -This Zend Framework module, once enabled, allows image resizing and manipulation by url. +This Laminas module, once enabled, allows image resizing and manipulation by url. ### Requirements -* PHP 5.6+ -* [Zend Framework 3](https://github.com/zendframework/zendframework) (> 3.0) -* [Imagine](http://imagine.readthedocs.org/en/latest/) (> 0.6) +* PHP 7.2+ +* [Laminas MVC](https://docs.laminas.dev/mvc/) +* [Imagine](http://imagine.readthedocs.org/en/latest/) -> **IMPORTANT! Version notes** +> **IMPORTANT! Version notes** +> * Version **3.x**: Laminas, dropped support for Zend Framework 3. > * Version **2.x**: Zend Framework 3, dropped support for Zend Framework 2. > * Version **1.x**: Zend Framework 2 ### Installation -Install via composer in your zf project +Install via composer in your Laminas project $ composer require tck/zf2-imageresizer @@ -59,7 +60,7 @@ Example: Create a thumbnail and grayscale image * `processed/`img/logo`.$thumb,160,120$grayscale`.jpg #### View helper -ZF2 tempalte: +Laminas tempalte: ```php Example image diff --git a/build.xml b/build.xml index d1a2a5d..4df990f 100644 --- a/build.xml +++ b/build.xml @@ -8,11 +8,11 @@ @@ -34,7 +34,6 @@ - @@ -46,7 +45,6 @@ - @@ -68,7 +66,7 @@ - + @@ -83,7 +81,7 @@ - + @@ -100,7 +98,7 @@ - + @@ -155,7 +153,7 @@ - + @@ -212,13 +210,4 @@ - - - - - - diff --git a/build/.gitignore b/build/.gitignore index 6e150a6..ce1ba3d 100644 --- a/build/.gitignore +++ b/build/.gitignore @@ -1,5 +1,4 @@ api -coverage +html-coverage logs -pdepend -phpdox \ No newline at end of file +pdepend \ No newline at end of file diff --git a/build/phpdox.xml b/build/phpdox.xml deleted file mode 100644 index 26de319..0000000 --- a/build/phpdox.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/composer.json b/composer.json index 2e6691f..9ffb562 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "tck/zf2-imageresizer", - "description": "Image resizer and manipulation module for Zend Framework 3", + "description": "Image resizer and manipulation module for Laminas", "type": "library", "authors": [ { @@ -13,6 +13,9 @@ "image", "zend", "zf2", + "zf3", + "laminas", + "mvc", "php" ], "homepage": "https://github.com/tck/zf2-imageresizer", @@ -20,37 +23,38 @@ "MIT" ], "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-mvc": "^3.0.1", - "zendframework/zend-loader": "^2.5.1", - "zendframework/zend-modulemanager": "^2.7.2", - "zendframework/zend-config": "^2.6 || ^3.0", - "zendframework/zend-cache": "^2.7.1", - "zendframework/zend-log": "^2.9", - "zendframework/zend-view": "^2.8", - "zendframework/zend-i18n": "^2.7.3", - "zendframework/zend-console": "^2.6", - "zendframework/zend-http": "^2.5.4", + "php": "^7.2 || ^8.0", + "laminas/laminas-mvc": "^3.0.1", + "laminas/laminas-loader": "^2.5.1", + "laminas/laminas-modulemanager": "^2.7.2", + "laminas/laminas-config": "^2.6 || ^3.0", + "laminas/laminas-cache": "^2.7.1", + "laminas/laminas-log": "^2.9", + "laminas/laminas-view": "^2.8", + "laminas/laminas-i18n": "^2.7.3", + "laminas/laminas-console": "^2.6", + "laminas/laminas-http": "^2.5.4", "imagine/imagine": "^0.6 || ^1.0" }, "require-dev": { - "phpunit/phpunit": "~4.3|~5", "mikey179/vfsstream": "1.*", - "squizlabs/php_codesniffer": "1.*", - "phploc/phploc": "2.*", + "squizlabs/php_codesniffer": "^3.5", + "phploc/phploc": "^7.0", "pdepend/pdepend": "2.*", "phpmd/phpmd": "2.*", - "sebastian/phpcpd": "2.*", - "theseer/phpdox": "0.7.*", - "nikic/php-parser": "<1.2.0", - "zendframework/zend-serializer": "~2.5" + "laminas/laminas-serializer": "~2.5", + "phpunit/phpunit": "^9.5", + "nikic/php-parser": "^4.10", + "sebastian/phpcpd": "^6.0" }, "autoload": { - "psr-4" : { - "TckImageResizer\\": "TckImageResizer/src/" - }, - "classmap": [ - "./Module.php" - ] + "psr-4": { + "TckImageResizer\\": "./src/" + } + }, + "autoload-dev": { + "psr-4": { + "TckImageResizerTest\\": "./tests/TckImageResizerTest/" + } } } diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..465f7ef --- /dev/null +++ b/composer.lock @@ -0,0 +1,5794 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "57ace30420afea42a875ff1a52a25c91", + "packages": [ + { + "name": "brick/varexporter", + "version": "0.3.3", + "source": { + "type": "git", + "url": "https://github.com/brick/varexporter.git", + "reference": "736378d357a189a692390bbc9e0eed835b079805" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/varexporter/zipball/736378d357a189a692390bbc9e0eed835b079805", + "reference": "736378d357a189a692390bbc9e0eed835b079805", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.0", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5 || ^9.0", + "vimeo/psalm": "^4.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\VarExporter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A powerful alternative to var_export(), which can export closures and objects without __set_state()", + "keywords": [ + "var_export" + ], + "support": { + "issues": "https://github.com/brick/varexporter/issues", + "source": "https://github.com/brick/varexporter/tree/0.3.3" + }, + "time": "2020-12-24T15:04:41+00:00" + }, + { + "name": "container-interop/container-interop", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/container-interop/container-interop.git", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "shasum": "" + }, + "require": { + "psr/container": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Interop\\Container\\": "src/Interop/Container/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", + "homepage": "https://github.com/container-interop/container-interop", + "support": { + "issues": "https://github.com/container-interop/container-interop/issues", + "source": "https://github.com/container-interop/container-interop/tree/master" + }, + "abandoned": "psr/container", + "time": "2017-02-14T19:40:03+00:00" + }, + { + "name": "imagine/imagine", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/avalanche123/Imagine.git", + "reference": "d2e18be6e930ca169e4f921ef73ebfc061bf55d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/avalanche123/Imagine/zipball/d2e18be6e930ca169e4f921ef73ebfc061bf55d8", + "reference": "d2e18be6e930ca169e4f921ef73ebfc061bf55d8", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.2", + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4 || ^9.3" + }, + "suggest": { + "ext-gd": "to use the GD implementation", + "ext-gmagick": "to use the Gmagick implementation", + "ext-imagick": "to use the Imagick implementation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-develop": "0.7-dev" + } + }, + "autoload": { + "psr-4": { + "Imagine\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bulat Shakirzyanov", + "email": "mallluhuct@gmail.com", + "homepage": "http://avalanche123.com" + } + ], + "description": "Image processing for PHP 5.3", + "homepage": "http://imagine.readthedocs.org/", + "keywords": [ + "drawing", + "graphics", + "image manipulation", + "image processing" + ], + "support": { + "issues": "https://github.com/avalanche123/Imagine/issues", + "source": "https://github.com/avalanche123/Imagine/tree/1.2.4" + }, + "time": "2020-11-03T22:35:03+00:00" + }, + { + "name": "laminas/laminas-cache", + "version": "2.10.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache.git", + "reference": "060b2a71d42b12122a3546594727e7d4b870abd5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache/zipball/060b2a71d42b12122a3546594727e7d4b870abd5", + "reference": "060b2a71d42b12122a3546594727e7d4b870abd5", + "shasum": "" + }, + "require": { + "laminas/laminas-cache-storage-adapter-apc": "^1.0", + "laminas/laminas-cache-storage-adapter-apcu": "^1.0", + "laminas/laminas-cache-storage-adapter-blackhole": "^1.0", + "laminas/laminas-cache-storage-adapter-dba": "^1.0", + "laminas/laminas-cache-storage-adapter-ext-mongodb": "^1.0", + "laminas/laminas-cache-storage-adapter-filesystem": "^1.0", + "laminas/laminas-cache-storage-adapter-memcache": "^1.0", + "laminas/laminas-cache-storage-adapter-memcached": "^1.0", + "laminas/laminas-cache-storage-adapter-memory": "^1.0", + "laminas/laminas-cache-storage-adapter-mongodb": "^1.0", + "laminas/laminas-cache-storage-adapter-redis": "^1.0", + "laminas/laminas-cache-storage-adapter-session": "^1.0", + "laminas/laminas-cache-storage-adapter-wincache": "^1.0", + "laminas/laminas-cache-storage-adapter-xcache": "^1.0", + "laminas/laminas-cache-storage-adapter-zend-server": "^1.0", + "laminas/laminas-eventmanager": "^2.6.3 || ^3.2", + "laminas/laminas-servicemanager": "^2.7.8 || ^3.3", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0", + "psr/cache": "^1.0", + "psr/simple-cache": "^1.0" + }, + "provide": { + "psr/cache-implementation": "1.0", + "psr/simple-cache-implementation": "1.0" + }, + "replace": { + "zendframework/zend-cache": "^2.9.0" + }, + "require-dev": { + "cache/integration-tests": "^0.16", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-serializer": "^2.6", + "phpbench/phpbench": "^0.13", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "laminas/laminas-serializer": "Laminas\\Serializer component" + }, + "type": "library", + "extra": { + "laminas": { + "component": "Laminas\\Cache", + "config-provider": "Laminas\\Cache\\ConfigProvider" + } + }, + "autoload": { + "files": [ + "autoload/patternPluginManagerPolyfill.php" + ], + "psr-4": { + "Laminas\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Caching implementation with a variety of storage options, as well as codified caching strategies for callbacks, classes, and output", + "homepage": "https://laminas.dev", + "keywords": [ + "cache", + "laminas", + "psr-16", + "psr-6" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-cache/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-cache/issues", + "rss": "https://github.com/laminas/laminas-cache/releases.atom", + "source": "https://github.com/laminas/laminas-cache" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-11-08T13:01:19+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-apc", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-apc.git", + "reference": "8b375d994f6e67534f6ae6e995249e706faa30c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-apc/zipball/8b375d994f6e67534f6ae6e995249e706faa30c1", + "reference": "8b375d994f6e67534f6ae6e995249e706faa30c1", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "ext-apc": "APC or compatible extension, to use the APC storage adapter" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-apc/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-apc/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-apc/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-apc" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:04:12+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-apcu", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-apcu.git", + "reference": "1fdd7585042c1a577f6e630535df1e86e23cf5dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-apcu/zipball/1fdd7585042c1a577f6e630535df1e86e23cf5dc", + "reference": "1fdd7585042c1a577f6e630535df1e86e23cf5dc", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "suggest": { + "ext-apcu": "APCU >= 5.1.0, to use the APCu storage adapter" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for apcu", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-apcu/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-apcu/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-apcu/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-apcu" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:05:19+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-blackhole", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-blackhole.git", + "reference": "5f2cb437160fbc01d7f216b11e4f1ff4c9b95c49" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-blackhole/zipball/5f2cb437160fbc01d7f216b11e4f1ff4c9b95c49", + "reference": "5f2cb437160fbc01d7f216b11e4f1ff4c9b95c49", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for blackhole", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-blackhole/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-blackhole/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-blackhole/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-blackhole" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:07:07+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-dba", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-dba.git", + "reference": "ad968d3d8a0350af8e6717be58bb96e5a9e77f3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-dba/zipball/ad968d3d8a0350af8e6717be58bb96e5a9e77f3b", + "reference": "ad968d3d8a0350af8e6717be58bb96e5a9e77f3b", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "suggest": { + "ext-dba": "DBA, to use the DBA storage adapter" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for dba", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-dba/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-dba/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-dba/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-dba" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:08:58+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-ext-mongodb", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-ext-mongodb.git", + "reference": "011ec5a8ca721ba012d232b1a01b50a55904b99f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-ext-mongodb/zipball/011ec5a8ca721ba012d232b1a01b50a55904b99f", + "reference": "011ec5a8ca721ba012d232b1a01b50a55904b99f", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "suggest": { + "ext-mongodb": "MongoDB, to use the ExtMongoDb storage adapter" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for ext-mongodb", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-ext-mongodb/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-ext-mongodb/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-ext-mongodb/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-ext-mongodb" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:11:06+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-filesystem", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-filesystem.git", + "reference": "e803d9942b30396491efbe649a3886450d22385f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-filesystem/zipball/e803d9942b30396491efbe649a3886450d22385f", + "reference": "e803d9942b30396491efbe649a3886450d22385f", + "shasum": "" + }, + "require": { + "laminas/laminas-cache": "^2.10@dev", + "php": "^7.3 || ~8.0.0" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for filesystem", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-filesystem/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-filesystem/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-filesystem/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-filesystem" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-12-31T04:18:10+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-memcache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-memcache.git", + "reference": "62d0fab1cd261b44a81821e986c0110d7dda896b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-memcache/zipball/62d0fab1cd261b44a81821e986c0110d7dda896b", + "reference": "62d0fab1cd261b44a81821e986c0110d7dda896b", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "suggest": { + "ext-memcache": "Memcache >= 2.0.0 to use the Memcache storage adapter" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for memcache", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-memcache/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-memcache/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-memcache/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-memcache" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:13:36+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-memcached", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-memcached.git", + "reference": "29599106bb501eb96207b175c460c95487518db1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-memcached/zipball/29599106bb501eb96207b175c460c95487518db1", + "reference": "29599106bb501eb96207b175c460c95487518db1", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for memcached", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-memcached/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-memcached/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-memcached/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-memcached" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:16:42+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-memory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-memory.git", + "reference": "58f4b45281552bb6673c900fadddad21e0ed05c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-memory/zipball/58f4b45281552bb6673c900fadddad21e0ed05c8", + "reference": "58f4b45281552bb6673c900fadddad21e0ed05c8", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for memory", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-memory/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-memory/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-memory/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-memory" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:17:47+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-mongodb", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-mongodb.git", + "reference": "ef4aa396b55533b8eb3e1d4126c39a78a22e49a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-mongodb/zipball/ef4aa396b55533b8eb3e1d4126c39a78a22e49a6", + "reference": "ef4aa396b55533b8eb3e1d4126c39a78a22e49a6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for mongodb", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-mongodb/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-mongodb/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-mongodb/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-mongodb" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:19:10+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-redis", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-redis.git", + "reference": "3fe904953d17728d7fdaa87be603231f23fb0a4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-redis/zipball/3fe904953d17728d7fdaa87be603231f23fb0a4d", + "reference": "3fe904953d17728d7fdaa87be603231f23fb0a4d", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for redis", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-redis/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-redis/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-redis/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-redis" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:20:13+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-session", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-session.git", + "reference": "0d2276cd61bd162cd38c53aaa22f18137621dc0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-session/zipball/0d2276cd61bd162cd38c53aaa22f18137621dc0c", + "reference": "0d2276cd61bd162cd38c53aaa22f18137621dc0c", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-session": "^2.7.4", + "squizlabs/php_codesniffer": "^2.7" + }, + "suggest": { + "laminas/laminas-session": "Laminas\\Session component" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for session", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-session/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-session/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-session/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-session" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:21:28+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-wincache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-wincache.git", + "reference": "0f54599c5d9aff11b01adadd2742097f923170ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-wincache/zipball/0f54599c5d9aff11b01adadd2742097f923170ba", + "reference": "0f54599c5d9aff11b01adadd2742097f923170ba", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "suggest": { + "ext-wincache": "WinCache, to use the WinCache storage adapter" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for wincache", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-wincache/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-wincache/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-wincache/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-wincache" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:22:49+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-xcache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-xcache.git", + "reference": "24049557aa796ec7527bcc8032ed68346232b219" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-xcache/zipball/24049557aa796ec7527bcc8032ed68346232b219", + "reference": "24049557aa796ec7527bcc8032ed68346232b219", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-serializer": "^2.9", + "squizlabs/php_codesniffer": "^2.7" + }, + "suggest": { + "ext-xcache": "XCache, to use the XCache storage adapter" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for xcache", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-xcache/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-xcache/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-xcache/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-xcache" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:23:46+00:00" + }, + { + "name": "laminas/laminas-cache-storage-adapter-zend-server", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache-storage-adapter-zend-server.git", + "reference": "8d0b0d219a048a92472d89a5e527990f3ea2decc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache-storage-adapter-zend-server/zipball/8d0b0d219a048a92472d89a5e527990f3ea2decc", + "reference": "8d0b0d219a048a92472d89a5e527990f3ea2decc", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-cache": "<2.10" + }, + "provide": { + "laminas/laminas-cache-storage-implementation": "1.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.10", + "laminas/laminas-cache-storage-adapter-test": "^1.0@dev", + "laminas/laminas-coding-standard": "~1.0.0", + "squizlabs/php_codesniffer": "^2.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Cache\\Storage\\Adapter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas cache adapter for zend-server", + "keywords": [ + "cache", + "laminas" + ], + "support": { + "docs": "https://docs.laminas.dev/laminas-cache-storage-adapter-zend-server/", + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-cache-storage-adapter-zend-server/issues", + "rss": "https://github.com/laminas/laminas-cache-storage-adapter-zend-server/releases.atom", + "source": "https://github.com/laminas/laminas-cache-storage-adapter-zend-server" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-12T16:24:25+00:00" + }, + { + "name": "laminas/laminas-config", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-config.git", + "reference": "0bce6f5abab41dc673196741883b19018a2b5994" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-config/zipball/0bce6f5abab41dc673196741883b19018a2b5994", + "reference": "0bce6f5abab41dc673196741883b19018a2b5994", + "shasum": "" + }, + "require": { + "ext-json": "*", + "laminas/laminas-stdlib": "^2.7.7 || ^3.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ^8.0", + "psr/container": "^1.0" + }, + "conflict": { + "container-interop/container-interop": "<1.2.0" + }, + "replace": { + "zendframework/zend-config": "^3.3.0" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-filter": "^2.7.2", + "laminas/laminas-i18n": "^2.10.3", + "laminas/laminas-servicemanager": "^3.4.1", + "malukenho/docheader": "^0.1.6", + "phpunit/phpunit": "^8.5.8" + }, + "suggest": { + "laminas/laminas-filter": "^2.7.2; install if you want to use the Filter processor", + "laminas/laminas-i18n": "^2.7.4; install if you want to use the Translator processor", + "laminas/laminas-servicemanager": "^2.7.8 || ^3.3; if you need an extensible plugin manager for use with the Config Factory" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4.x-dev", + "dev-develop": "3.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Config\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides a nested object property based user interface for accessing this configuration data within application code", + "homepage": "https://laminas.dev", + "keywords": [ + "config", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-config/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-config/issues", + "rss": "https://github.com/laminas/laminas-config/releases.atom", + "source": "https://github.com/laminas/laminas-config" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-08-25T11:56:37+00:00" + }, + { + "name": "laminas/laminas-console", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-console.git", + "reference": "478a6ceac3e31fb38d6314088abda8b239ee23a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-console/zipball/478a6ceac3e31fb38d6314088abda8b239ee23a5", + "reference": "478a6ceac3e31fb38d6314088abda8b239ee23a5", + "shasum": "" + }, + "require": { + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-console": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-filter": "^2.7.2", + "laminas/laminas-json": "^2.6 || ^3.0", + "laminas/laminas-validator": "^2.10.1", + "phpunit/phpunit": "^5.7.23 || ^6.4.3" + }, + "suggest": { + "laminas/laminas-filter": "To support DefaultRouteMatcher usage", + "laminas/laminas-validator": "To support DefaultRouteMatcher usage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8.x-dev", + "dev-develop": "2.9.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Console\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Build console applications using getopt syntax or routing, complete with prompts", + "homepage": "https://laminas.dev", + "keywords": [ + "console", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-console/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-console/issues", + "rss": "https://github.com/laminas/laminas-console/releases.atom", + "source": "https://github.com/laminas/laminas-console" + }, + "time": "2019-12-31T16:31:45+00:00" + }, + { + "name": "laminas/laminas-escaper", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-escaper.git", + "reference": "5e04bc5ae5990b17159d79d331055e2c645e5cc5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/5e04bc5ae5990b17159d79d331055e2c645e5cc5", + "reference": "5e04bc5ae5990b17159d79d331055e2c645e5cc5", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ~8.0.0" + }, + "replace": { + "zendframework/zend-escaper": "^2.6.1" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^9.3", + "psalm/plugin-phpunit": "^0.12.2", + "vimeo/psalm": "^3.16" + }, + "suggest": { + "ext-iconv": "*", + "ext-mbstring": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Escaper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", + "homepage": "https://laminas.dev", + "keywords": [ + "escaper", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-escaper/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-escaper/issues", + "rss": "https://github.com/laminas/laminas-escaper/releases.atom", + "source": "https://github.com/laminas/laminas-escaper" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-11-17T21:26:43+00:00" + }, + { + "name": "laminas/laminas-eventmanager", + "version": "3.3.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-eventmanager.git", + "reference": "1940ccf30e058b2fd66f5a9d696f1b5e0027b082" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/1940ccf30e058b2fd66f5a9d696f1b5e0027b082", + "reference": "1940ccf30e058b2fd66f5a9d696f1b5e0027b082", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ^8.0" + }, + "replace": { + "zendframework/zend-eventmanager": "^3.2.1" + }, + "require-dev": { + "container-interop/container-interop": "^1.1", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-stdlib": "^2.7.3 || ^3.0", + "phpbench/phpbench": "^0.17.1", + "phpunit/phpunit": "^8.5.8" + }, + "suggest": { + "container-interop/container-interop": "^1.1, to use the lazy listeners feature", + "laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3.x-dev", + "dev-develop": "3.4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\EventManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Trigger and listen to events within a PHP application", + "homepage": "https://laminas.dev", + "keywords": [ + "event", + "eventmanager", + "events", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-eventmanager/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-eventmanager/issues", + "rss": "https://github.com/laminas/laminas-eventmanager/releases.atom", + "source": "https://github.com/laminas/laminas-eventmanager" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-08-25T11:10:44+00:00" + }, + { + "name": "laminas/laminas-http", + "version": "2.14.2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-http.git", + "reference": "298f732e1acb031db70ea4fd2133a283b2a4a65e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-http/zipball/298f732e1acb031db70ea4fd2133a283b2a4a65e", + "reference": "298f732e1acb031db70ea4fd2133a283b2a4a65e", + "shasum": "" + }, + "require": { + "laminas/laminas-loader": "^2.5.1", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-uri": "^2.5.2", + "laminas/laminas-validator": "^2.10.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ~8.0.0" + }, + "replace": { + "zendframework/zend-http": "^2.11.2" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^3.1 || ^2.6", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "paragonie/certainty": "For automated management of cacert.pem" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Http\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", + "homepage": "https://laminas.dev", + "keywords": [ + "http", + "http client", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-http/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-http/issues", + "rss": "https://github.com/laminas/laminas-http/releases.atom", + "source": "https://github.com/laminas/laminas-http" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2021-01-05T16:10:52+00:00" + }, + { + "name": "laminas/laminas-i18n", + "version": "2.11.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-i18n.git", + "reference": "85678f444b6dcb48e8a04591779e11c24e5bb901" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/85678f444b6dcb48e8a04591779e11c24e5bb901", + "reference": "85678f444b6dcb48e8a04591779e11c24e5bb901", + "shasum": "" + }, + "require": { + "ext-intl": "*", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ~8.0.0" + }, + "conflict": { + "phpspec/prophecy": "<1.9.0" + }, + "replace": { + "zendframework/zend-i18n": "^2.10.1" + }, + "require-dev": { + "laminas/laminas-cache": "^2.6.1", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.6", + "laminas/laminas-eventmanager": "^2.6.2 || ^3.0", + "laminas/laminas-filter": "^2.6.1", + "laminas/laminas-servicemanager": "^3.2.1", + "laminas/laminas-validator": "^2.6", + "laminas/laminas-view": "^2.6.3", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "laminas/laminas-cache": "Laminas\\Cache component", + "laminas/laminas-config": "Laminas\\Config component", + "laminas/laminas-eventmanager": "You should install this package to use the events in the translator", + "laminas/laminas-filter": "You should install this package to use the provided filters", + "laminas/laminas-i18n-resources": "Translation resources", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component", + "laminas/laminas-validator": "You should install this package to use the provided validators", + "laminas/laminas-view": "You should install this package to use the provided view helpers" + }, + "type": "library", + "extra": { + "laminas": { + "component": "Laminas\\I18n", + "config-provider": "Laminas\\I18n\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\I18n\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Provide translations for your application, and filter and validate internationalized values", + "homepage": "https://laminas.dev", + "keywords": [ + "i18n", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-i18n/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-i18n/issues", + "rss": "https://github.com/laminas/laminas-i18n/releases.atom", + "source": "https://github.com/laminas/laminas-i18n" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-24T13:14:32+00:00" + }, + { + "name": "laminas/laminas-json", + "version": "3.1.2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-json.git", + "reference": "00dc0da7b5e5018904c5c4a8e80a5faa16c2c1c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-json/zipball/00dc0da7b5e5018904c5c4a8e80a5faa16c2c1c6", + "reference": "00dc0da7b5e5018904c5c4a8e80a5faa16c2c1c6", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-json": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-stdlib": "^2.7.7 || ^3.1", + "phpunit/phpunit": "^5.7.23 || ^6.4.3" + }, + "suggest": { + "laminas/laminas-json-server": "For implementing JSON-RPC servers", + "laminas/laminas-xml2json": "For converting XML documents to JSON" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev", + "dev-develop": "3.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Json\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP", + "homepage": "https://laminas.dev", + "keywords": [ + "json", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-json/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-json/issues", + "rss": "https://github.com/laminas/laminas-json/releases.atom", + "source": "https://github.com/laminas/laminas-json" + }, + "time": "2019-12-31T17:15:04+00:00" + }, + { + "name": "laminas/laminas-loader", + "version": "2.6.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-loader.git", + "reference": "5d01c2c237ae9e68bec262f339947e2ea18979bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-loader/zipball/5d01c2c237ae9e68bec262f339947e2ea18979bc", + "reference": "5d01c2c237ae9e68bec262f339947e2ea18979bc", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-loader": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6.x-dev", + "dev-develop": "2.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Loader\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Autoloading and plugin loading strategies", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "loader" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-loader/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-loader/issues", + "rss": "https://github.com/laminas/laminas-loader/releases.atom", + "source": "https://github.com/laminas/laminas-loader" + }, + "time": "2019-12-31T17:18:27+00:00" + }, + { + "name": "laminas/laminas-log", + "version": "2.13.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-log.git", + "reference": "71bb2c98e0286c447488e71290ecf0beb44e6ca5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-log/zipball/71bb2c98e0286c447488e71290ecf0beb44e6ca5", + "reference": "71bb2c98e0286c447488e71290ecf0beb44e6ca5", + "shasum": "" + }, + "require": { + "laminas/laminas-servicemanager": "^3.3.0", + "laminas/laminas-stdlib": "^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ~8.0.0", + "psr/log": "^1.1.2" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "replace": { + "zendframework/zend-log": "^2.12.0" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-db": "^2.6", + "laminas/laminas-escaper": "^2.5", + "laminas/laminas-filter": "^2.5", + "laminas/laminas-mail": "^2.6.1", + "laminas/laminas-validator": "^2.10.1", + "mikey179/vfsstream": "^1.6.7", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.4.1" + }, + "suggest": { + "ext-mongo": "mongo extension to use Mongo writer", + "ext-mongodb": "mongodb extension to use MongoDB writer", + "laminas/laminas-db": "Laminas\\Db component to use the database log writer", + "laminas/laminas-escaper": "Laminas\\Escaper component, for use in the XML log formatter", + "laminas/laminas-mail": "Laminas\\Mail component to use the email log writer", + "laminas/laminas-validator": "Laminas\\Validator component to block invalid log messages" + }, + "type": "library", + "extra": { + "laminas": { + "component": "Laminas\\Log", + "config-provider": "Laminas\\Log\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Log\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Robust, composite logger with filtering, formatting, and PSR-3 support", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "log", + "logging" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-log/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-log/issues", + "rss": "https://github.com/laminas/laminas-log/releases.atom", + "source": "https://github.com/laminas/laminas-log" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-11-19T17:09:53+00:00" + }, + { + "name": "laminas/laminas-modulemanager", + "version": "2.10.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-modulemanager.git", + "reference": "637aaaf2c85d13694b096e253e5884653f93bb92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-modulemanager/zipball/637aaaf2c85d13694b096e253e5884653f93bb92", + "reference": "637aaaf2c85d13694b096e253e5884653f93bb92", + "shasum": "" + }, + "require": { + "brick/varexporter": "^0.3.2", + "laminas/laminas-config": "^3.4", + "laminas/laminas-eventmanager": "^3.3", + "laminas/laminas-stdlib": "^3.3", + "laminas/laminas-zendframework-bridge": "^1.1", + "php": "^7.3 || ^8.0", + "webimpress/safe-writer": "^1.0.2 || ^2.1" + }, + "replace": { + "zendframework/zend-modulemanager": "^2.8.4" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-console": "^2.8", + "laminas/laminas-di": "^2.6.1", + "laminas/laminas-loader": "^2.6.1", + "laminas/laminas-mvc": "^3.1.1", + "laminas/laminas-servicemanager": "^3.4.1", + "phpunit/phpunit": "^9.3.7" + }, + "suggest": { + "laminas/laminas-console": "Laminas\\Console component", + "laminas/laminas-loader": "Laminas\\Loader component if you are not using Composer autoloading for your modules", + "laminas/laminas-mvc": "Laminas\\Mvc component", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\ModuleManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Modular application system for laminas-mvc applications", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "modulemanager" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-modulemanager/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-modulemanager/issues", + "rss": "https://github.com/laminas/laminas-modulemanager/releases.atom", + "source": "https://github.com/laminas/laminas-modulemanager" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-09-01T22:26:46+00:00" + }, + { + "name": "laminas/laminas-mvc", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mvc.git", + "reference": "88da7200cf8f5a970c35d91717a5c4db94981e5e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mvc/zipball/88da7200cf8f5a970c35d91717a5c4db94981e5e", + "reference": "88da7200cf8f5a970c35d91717a5c4db94981e5e", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.2", + "laminas/laminas-eventmanager": "^3.2", + "laminas/laminas-http": "^2.7", + "laminas/laminas-modulemanager": "^2.8", + "laminas/laminas-router": "^3.0.2", + "laminas/laminas-servicemanager": "^3.3", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-view": "^2.11.3", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ~8.0.0" + }, + "replace": { + "zendframework/zend-mvc": "^3.1.1" + }, + "require-dev": { + "http-interop/http-middleware": "^0.4.1", + "laminas/laminas-coding-standard": "^1.0.0", + "laminas/laminas-json": "^2.6.1 || ^3.0", + "laminas/laminas-psr7bridge": "^1.0", + "laminas/laminas-stratigility": ">=2.0.1 <2.2", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.4.2" + }, + "suggest": { + "laminas/laminas-json": "(^2.6.1 || ^3.0) To auto-deserialize JSON body content in AbstractRestfulController extensions, when json_decode is unavailable", + "laminas/laminas-log": "^2.9.1 To provide log functionality via LogFilterManager, LogFormatterManager, and LogProcessorManager", + "laminas/laminas-mvc-console": "laminas-mvc-console provides the ability to expose laminas-mvc as a console application", + "laminas/laminas-mvc-i18n": "laminas-mvc-i18n provides integration with laminas-i18n, including a translation bridge and translatable route segments", + "laminas/laminas-mvc-middleware": "To dispatch middleware in your laminas-mvc application", + "laminas/laminas-mvc-plugin-fileprg": "To provide Post/Redirect/Get functionality around forms that container file uploads", + "laminas/laminas-mvc-plugin-flashmessenger": "To provide flash messaging capabilities between requests", + "laminas/laminas-mvc-plugin-identity": "To access the authenticated identity (per laminas-authentication) in controllers", + "laminas/laminas-mvc-plugin-prg": "To provide Post/Redirect/Get functionality within controllers", + "laminas/laminas-paginator": "^2.7 To provide pagination functionality via PaginatorPluginManager", + "laminas/laminas-servicemanager-di": "laminas-servicemanager-di provides utilities for integrating laminas-di and laminas-servicemanager in your laminas-mvc application" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Mvc\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas's event-driven MVC layer, including MVC Applications, Controllers, and Plugins", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mvc" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-mvc/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-mvc/issues", + "rss": "https://github.com/laminas/laminas-mvc/releases.atom", + "source": "https://github.com/laminas/laminas-mvc" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-12-14T21:54:40+00:00" + }, + { + "name": "laminas/laminas-router", + "version": "3.4.4", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-router.git", + "reference": "2a7068508af4de67d80ea292e0cc7c37563a33c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-router/zipball/2a7068508af4de67d80ea292e0cc7c37563a33c6", + "reference": "2a7068508af4de67d80ea292e0cc7c37563a33c6", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.2", + "laminas/laminas-http": "^2.8.1", + "laminas/laminas-servicemanager": "^2.7.8 || ^3.3", + "laminas/laminas-stdlib": "^3.3", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ~8.0.0" + }, + "replace": { + "zendframework/zend-router": "^3.3.0" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-i18n": "^2.7.4", + "phpunit/phpunit": "^9.4" + }, + "suggest": { + "laminas/laminas-i18n": "^2.7.4, if defining translatable HTTP path segments" + }, + "type": "library", + "extra": { + "laminas": { + "component": "Laminas\\Router", + "config-provider": "Laminas\\Router\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Router\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Flexible routing system for HTTP and console applications", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "routing" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-router/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-router/issues", + "rss": "https://github.com/laminas/laminas-router/releases.atom", + "source": "https://github.com/laminas/laminas-router" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-12-16T22:10:51+00:00" + }, + { + "name": "laminas/laminas-servicemanager", + "version": "3.6.2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-servicemanager.git", + "reference": "69a33802574e34357da6937602622a8a8db69883" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/69a33802574e34357da6937602622a8a8db69883", + "reference": "69a33802574e34357da6937602622a8a8db69883", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.2", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ~8.0.0", + "psr/container": "^1.0" + }, + "conflict": { + "laminas/laminas-code": "<3.3.1", + "zendframework/zend-code": "<3.3.1" + }, + "provide": { + "container-interop/container-interop-implementation": "^1.2", + "psr/container-implementation": "^1.0" + }, + "replace": { + "zendframework/zend-servicemanager": "^3.4.0" + }, + "require-dev": { + "composer/package-versions-deprecated": "^1.0", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-container-config-test": "^0.3", + "laminas/laminas-dependency-plugin": "^2.1", + "mikey179/vfsstream": "^1.6.8", + "ocramius/proxy-manager": "^2.2.3", + "phpbench/phpbench": "^1.0.0-alpha3", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.4" + }, + "suggest": { + "ocramius/proxy-manager": "ProxyManager ^2.1.1 to handle lazy initialization of services" + }, + "bin": [ + "bin/generate-deps-for-config-factory", + "bin/generate-factory-for-class" + ], + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\ServiceManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Factory-Driven Dependency Injection Container", + "homepage": "https://laminas.dev", + "keywords": [ + "PSR-11", + "dependency-injection", + "di", + "dic", + "laminas", + "service-manager", + "servicemanager" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-servicemanager/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-servicemanager/issues", + "rss": "https://github.com/laminas/laminas-servicemanager/releases.atom", + "source": "https://github.com/laminas/laminas-servicemanager" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2021-01-17T17:08:19+00:00" + }, + { + "name": "laminas/laminas-stdlib", + "version": "3.3.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-stdlib.git", + "reference": "d81c7ffe602ed0e6ecb18691019111c0f4bf1efe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/d81c7ffe602ed0e6ecb18691019111c0f4bf1efe", + "reference": "d81c7ffe602ed0e6ecb18691019111c0f4bf1efe", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ^8.0" + }, + "replace": { + "zendframework/zend-stdlib": "^3.2.1" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpbench/phpbench": "^0.17.1", + "phpunit/phpunit": "~9.3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Stdlib\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "SPL extensions, array utilities, error handlers, and more", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "stdlib" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-stdlib/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-stdlib/issues", + "rss": "https://github.com/laminas/laminas-stdlib/releases.atom", + "source": "https://github.com/laminas/laminas-stdlib" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-11-19T20:18:59+00:00" + }, + { + "name": "laminas/laminas-uri", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-uri.git", + "reference": "8651611b6285529f25a4cb9a466c686d9b31468e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-uri/zipball/8651611b6285529f25a4cb9a466c686d9b31468e", + "reference": "8651611b6285529f25a4cb9a466c686d9b31468e", + "shasum": "" + }, + "require": { + "laminas/laminas-escaper": "^2.5", + "laminas/laminas-validator": "^2.10", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ~8.0.0" + }, + "replace": { + "zendframework/zend-uri": "^2.7.1" + }, + "require-dev": { + "laminas/laminas-coding-standard": "^2.1", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Uri\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "A component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "uri" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-uri/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-uri/issues", + "rss": "https://github.com/laminas/laminas-uri/releases.atom", + "source": "https://github.com/laminas/laminas-uri" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-10-31T20:20:07+00:00" + }, + { + "name": "laminas/laminas-validator", + "version": "2.14.2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-validator.git", + "reference": "270c210c5c2b589a4ce83ad422ad8a6698451344" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/270c210c5c2b589a4ce83ad422ad8a6698451344", + "reference": "270c210c5c2b589a4ce83ad422ad8a6698451344", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.1", + "laminas/laminas-stdlib": "^3.3", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ~8.0.0" + }, + "replace": { + "zendframework/zend-validator": "^2.13.0" + }, + "require-dev": { + "laminas/laminas-cache": "^2.6.1", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.6", + "laminas/laminas-db": "^2.7", + "laminas/laminas-filter": "^2.6", + "laminas/laminas-http": "^2.14.2", + "laminas/laminas-i18n": "^2.6", + "laminas/laminas-math": "^2.6", + "laminas/laminas-servicemanager": "^2.7.11 || ^3.0.3", + "laminas/laminas-session": "^2.8", + "laminas/laminas-uri": "^2.7", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.3", + "psalm/plugin-phpunit": "^0.15.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "vimeo/psalm": "^4.3" + }, + "suggest": { + "laminas/laminas-db": "Laminas\\Db component, required by the (No)RecordExists validator", + "laminas/laminas-filter": "Laminas\\Filter component, required by the Digits validator", + "laminas/laminas-i18n": "Laminas\\I18n component to allow translation of validation error messages", + "laminas/laminas-i18n-resources": "Translations of validator messages", + "laminas/laminas-math": "Laminas\\Math component, required by the Csrf validator", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", + "laminas/laminas-session": "Laminas\\Session component, ^2.8; required by the Csrf validator", + "laminas/laminas-uri": "Laminas\\Uri component, required by the Uri and Sitemap\\Loc validators", + "psr/http-message": "psr/http-message, required when validating PSR-7 UploadedFileInterface instances via the Upload and UploadFile validators" + }, + "type": "library", + "extra": { + "laminas": { + "component": "Laminas\\Validator", + "config-provider": "Laminas\\Validator\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Validator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Validation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "validator" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-validator/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-validator/issues", + "rss": "https://github.com/laminas/laminas-validator/releases.atom", + "source": "https://github.com/laminas/laminas-validator" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2021-01-22T13:34:31+00:00" + }, + { + "name": "laminas/laminas-view", + "version": "2.12.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-view.git", + "reference": "3ef103da6887809f08ecf52f42c31a76c9bf08b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-view/zipball/3ef103da6887809f08ecf52f42c31a76c9bf08b1", + "reference": "3ef103da6887809f08ecf52f42c31a76c9bf08b1", + "shasum": "" + }, + "require": { + "laminas/laminas-eventmanager": "^3.0", + "laminas/laminas-json": "^2.6.1 || ^3.0", + "laminas/laminas-loader": "^2.5", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.3 || ~8.0.0" + }, + "conflict": { + "laminas/laminas-servicemanager": "<3.3" + }, + "replace": { + "zendframework/zend-view": "^2.11.4" + }, + "require-dev": { + "laminas/laminas-authentication": "^2.5", + "laminas/laminas-cache": "^2.6.1", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.6", + "laminas/laminas-console": "^2.6", + "laminas/laminas-escaper": "^2.5", + "laminas/laminas-feed": "^2.7", + "laminas/laminas-filter": "^2.6.1", + "laminas/laminas-http": "^2.5.4", + "laminas/laminas-i18n": "^2.6", + "laminas/laminas-log": "^2.7", + "laminas/laminas-modulemanager": "^2.7.1", + "laminas/laminas-mvc": "^2.7.14 || ^3.0", + "laminas/laminas-navigation": "^2.5", + "laminas/laminas-paginator": "^2.5", + "laminas/laminas-permissions-acl": "^2.6", + "laminas/laminas-router": "^3.0.1", + "laminas/laminas-serializer": "^2.6.1", + "laminas/laminas-servicemanager": "^3.3", + "laminas/laminas-session": "^2.8.1", + "laminas/laminas-uri": "^2.5", + "phpspec/prophecy": "^1.12", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "laminas/laminas-authentication": "Laminas\\Authentication component", + "laminas/laminas-escaper": "Laminas\\Escaper component", + "laminas/laminas-feed": "Laminas\\Feed component", + "laminas/laminas-filter": "Laminas\\Filter component", + "laminas/laminas-http": "Laminas\\Http component", + "laminas/laminas-i18n": "Laminas\\I18n component", + "laminas/laminas-mvc": "Laminas\\Mvc component", + "laminas/laminas-mvc-plugin-flashmessenger": "laminas-mvc-plugin-flashmessenger component, if you want to use the FlashMessenger view helper with laminas-mvc versions 3 and up", + "laminas/laminas-navigation": "Laminas\\Navigation component", + "laminas/laminas-paginator": "Laminas\\Paginator component", + "laminas/laminas-permissions-acl": "Laminas\\Permissions\\Acl component", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component", + "laminas/laminas-uri": "Laminas\\Uri component" + }, + "bin": [ + "bin/templatemap_generator.php" + ], + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\View\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Flexible view layer supporting and providing multiple view layers, helpers, and more", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "view" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-view/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-view/issues", + "rss": "https://github.com/laminas/laminas-view/releases.atom", + "source": "https://github.com/laminas/laminas-view" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2021-01-01T14:07:41+00:00" + }, + { + "name": "laminas/laminas-zendframework-bridge", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-zendframework-bridge.git", + "reference": "6ede70583e101030bcace4dcddd648f760ddf642" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642", + "reference": "6ede70583e101030bcace4dcddd648f760ddf642", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "laminas": { + "module": "Laminas\\ZendFrameworkBridge" + } + }, + "autoload": { + "files": [ + "src/autoload.php" + ], + "psr-4": { + "Laminas\\ZendFrameworkBridge\\": "src//" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Alias legacy ZF class names to Laminas Project equivalents.", + "keywords": [ + "ZendFramework", + "autoloading", + "laminas", + "zf" + ], + "support": { + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues", + "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom", + "source": "https://github.com/laminas/laminas-zendframework-bridge" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-09-14T14:23:00+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" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" + }, + "time": "2020-12-20T10:01:03+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, + "time": "2016-08-06T20:24:11+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/master" + }, + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/log", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.3" + }, + "time": "2020-03-23T09:12:05+00:00" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/master" + }, + "time": "2017-10-23T01:57:42+00:00" + }, + { + "name": "webimpress/safe-writer", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/webimpress/safe-writer.git", + "reference": "5cfafdec5873c389036f14bf832a5efc9390dcdd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webimpress/safe-writer/zipball/5cfafdec5873c389036f14bf832a5efc9390dcdd", + "reference": "5cfafdec5873c389036f14bf832a5efc9390dcdd", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.8 || ^9.3.7", + "vimeo/psalm": "^3.14.2", + "webimpress/coding-standard": "^1.1.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev", + "dev-develop": "2.2.x-dev", + "dev-release-1.0": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Webimpress\\SafeWriter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "description": "Tool to write files safely, to avoid race conditions", + "keywords": [ + "concurrent write", + "file writer", + "race condition", + "safe writer", + "webimpress" + ], + "support": { + "issues": "https://github.com/webimpress/safe-writer/issues", + "source": "https://github.com/webimpress/safe-writer/tree/master" + }, + "funding": [ + { + "url": "https://github.com/michalbundyra", + "type": "github" + } + ], + "time": "2020-08-25T07:21:11+00:00" + } + ], + "packages-dev": [ + { + "name": "composer/xdebug-handler", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "f28d44c286812c714741478d968104c5e604a1d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", + "reference": "f28d44c286812c714741478d968104c5e604a1d4", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/1.4.5" + }, + "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-13T08:04:11+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": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + }, + "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": "2020-11-10T18:47:58+00:00" + }, + { + "name": "laminas/laminas-serializer", + "version": "2.9.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-serializer.git", + "reference": "c1c9361f114271b0736db74e0083a919081af5e0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-serializer/zipball/c1c9361f114271b0736db74e0083a919081af5e0", + "reference": "c1c9361f114271b0736db74e0083a919081af5e0", + "shasum": "" + }, + "require": { + "laminas/laminas-json": "^2.5 || ^3.0", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-serializer": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-math": "^2.6 || ^3.0", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16" + }, + "suggest": { + "laminas/laminas-math": "(^2.6 || ^3.0) To support Python Pickle serialization", + "laminas/laminas-servicemanager": "(^2.7.5 || ^3.0.3) To support plugin manager support" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9.x-dev", + "dev-develop": "2.10.x-dev" + }, + "laminas": { + "component": "Laminas\\Serializer", + "config-provider": "Laminas\\Serializer\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Serializer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Serialize and deserialize PHP structures to a variety of representations", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "serializer" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-serializer/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-serializer/issues", + "rss": "https://github.com/laminas/laminas-serializer/releases.atom", + "source": "https://github.com/laminas/laminas-serializer" + }, + "time": "2019-12-31T17:42:11+00:00" + }, + { + "name": "mikey179/vfsstream", + "version": "v1.6.8", + "source": { + "type": "git", + "url": "https://github.com/bovigo/vfsStream.git", + "reference": "231c73783ebb7dd9ec77916c10037eff5a2b6efe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/231c73783ebb7dd9ec77916c10037eff5a2b6efe", + "reference": "231c73783ebb7dd9ec77916c10037eff5a2b6efe", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-0": { + "org\\bovigo\\vfs\\": "src/main/php" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Frank Kleine", + "homepage": "http://frankkleine.de/", + "role": "Developer" + } + ], + "description": "Virtual file system to mock the real file system in unit tests.", + "homepage": "http://vfs.bovigo.org/", + "support": { + "issues": "https://github.com/bovigo/vfsStream/issues", + "source": "https://github.com/bovigo/vfsStream/tree/master", + "wiki": "https://github.com/bovigo/vfsStream/wiki" + }, + "time": "2019-10-30T15:31:00+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" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2020-11-13T09:40:50+00:00" + }, + { + "name": "pdepend/pdepend", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/pdepend/pdepend.git", + "reference": "c64472f8e76ca858c79ad9a4cf1e2734b3f8cc38" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/c64472f8e76ca858c79ad9a4cf1e2734b3f8cc38", + "reference": "c64472f8e76ca858c79ad9a4cf1e2734b3f8cc38", + "shasum": "" + }, + "require": { + "php": ">=5.3.7", + "symfony/config": "^2.3.0|^3|^4|^5", + "symfony/dependency-injection": "^2.3.0|^3|^4|^5", + "symfony/filesystem": "^2.3.0|^3|^4|^5" + }, + "require-dev": { + "easy-doc/easy-doc": "0.0.0 || ^1.2.3", + "gregwar/rst": "^1.0", + "phpunit/phpunit": "^4.8.35|^5.7", + "squizlabs/php_codesniffer": "^2.0.0" + }, + "bin": [ + "src/bin/pdepend" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "PDepend\\": "src/main/php/PDepend" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Official version of pdepend to be handled with Composer", + "support": { + "issues": "https://github.com/pdepend/pdepend/issues", + "source": "https://github.com/pdepend/pdepend/tree/master" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", + "type": "tidelift" + } + ], + "time": "2020-06-20T10:53:13+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)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" + }, + "time": "2020-06-27T14:33:11+00:00" + }, + { + "name": "phar-io/version", + "version": "3.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", + "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", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.0.4" + }, + "time": "2020-12-13T23:18:30+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" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "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.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + }, + "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", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + }, + "time": "2020-09-17T18:55:26+00:00" + }, + { + "name": "phploc/phploc", + "version": "7.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phploc.git", + "reference": "af0d5fc84f3f7725513ba59cdcbe670ac2a4532a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phploc/zipball/af0d5fc84f3f7725513ba59cdcbe670ac2a4532a", + "reference": "af0d5fc84f3f7725513ba59cdcbe670ac2a4532a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0", + "sebastian/cli-parser": "^1.0", + "sebastian/version": "^3.0" + }, + "bin": [ + "phploc" + ], + "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": "A tool for quickly measuring the size of a PHP project.", + "homepage": "https://github.com/sebastianbergmann/phploc", + "support": { + "issues": "https://github.com/sebastianbergmann/phploc/issues", + "source": "https://github.com/sebastianbergmann/phploc/tree/7.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-07T05:51:20+00:00" + }, + { + "name": "phpmd/phpmd", + "version": "2.9.1", + "source": { + "type": "git", + "url": "https://github.com/phpmd/phpmd.git", + "reference": "ce10831d4ddc2686c1348a98069771dd314534a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/ce10831d4ddc2686c1348a98069771dd314534a8", + "reference": "ce10831d4ddc2686c1348a98069771dd314534a8", + "shasum": "" + }, + "require": { + "composer/xdebug-handler": "^1.0", + "ext-xml": "*", + "pdepend/pdepend": "^2.7.1", + "php": ">=5.3.9" + }, + "require-dev": { + "easy-doc/easy-doc": "0.0.0 || ^1.3.2", + "ext-json": "*", + "ext-simplexml": "*", + "gregwar/rst": "^1.0", + "mikey179/vfsstream": "^1.6.4", + "phpunit/phpunit": "^4.8.36 || ^5.7.27", + "squizlabs/php_codesniffer": "^2.0" + }, + "bin": [ + "src/bin/phpmd" + ], + "type": "library", + "autoload": { + "psr-0": { + "PHPMD\\": "src/main/php" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Manuel Pichler", + "email": "github@manuel-pichler.de", + "homepage": "https://github.com/manuelpichler", + "role": "Project Founder" + }, + { + "name": "Marc Würth", + "email": "ravage@bluewin.ch", + "homepage": "https://github.com/ravage84", + "role": "Project Maintainer" + }, + { + "name": "Other contributors", + "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", + "role": "Contributors" + } + ], + "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", + "homepage": "https://phpmd.org/", + "keywords": [ + "mess detection", + "mess detector", + "pdepend", + "phpmd", + "pmd" + ], + "support": { + "irc": "irc://irc.freenode.org/phpmd", + "issues": "https://github.com/phpmd/phpmd/issues", + "source": "https://github.com/phpmd/phpmd/tree/2.9.1" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", + "type": "tidelift" + } + ], + "time": "2020-09-23T22:06:32+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" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/1.12.2" + }, + "time": "2020-12-19T10:15:11+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1", + "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.10.2", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-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": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:44:49+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:57:25+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "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", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.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": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.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": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7bdf4085de85a825f4424eae52c99a1cec2f360", + "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.1", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpspec/prophecy": "^1.12.1", + "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.5", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.3", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^2.3", + "sebastian/version": "^3.0.2" + }, + "require-dev": { + "ext-pdo": "*", + "phpspec/prophecy-phpunit": "^2.0.1" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ], + "files": [ + "src/Framework/Assert/Functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.1" + }, + "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-01-17T07:42:25+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.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": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.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": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "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" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:49:45+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.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": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:52:38+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "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": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:24:23+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:55:19+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.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": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/phpcpd", + "version": "6.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpcpd.git", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-timer": "^5.0", + "sebastian/cli-parser": "^1.0", + "sebastian/version": "^3.0" + }, + "bin": [ + "phpcpd" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.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": "Copy/Paste Detector (CPD) for PHP code.", + "homepage": "https://github.com/sebastianbergmann/phpcpd", + "support": { + "issues": "https://github.com/sebastianbergmann/phpcpd/issues", + "source": "https://github.com/sebastianbergmann/phpcpd/tree/6.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-07T05:39:23+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "2.3.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-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": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:18:59+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.5.8", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2020-10-23T02:01:07+00:00" + }, + { + "name": "symfony/config", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "d0a82d965296083fe463d655a3644cbe49cbaa80" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/d0a82d965296083fe463d655a3644cbe49cbaa80", + "reference": "d0a82d965296083fe463d655a3644cbe49cbaa80", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/filesystem": "^4.4|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/finder": "<4.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^4.4|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v5.2.1" + }, + "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-12-09T18:54:12+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "7f8a9e9eff0581a33e20f6c5d41096fe22832d25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/7f8a9e9eff0581a33e20f6c5d41096fe22832d25", + "reference": "7f8a9e9eff0581a33e20f6c5d41096fe22832d25", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.0", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<5.1", + "symfony/finder": "<4.4", + "symfony/proxy-manager-bridge": "<4.4", + "symfony/yaml": "<4.4" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0" + }, + "require-dev": { + "symfony/config": "^5.1", + "symfony/expression-language": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DependencyInjection Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v5.2.1" + }, + "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-12-18T08:03:05+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/master" + }, + "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-09-07T11:33:47+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.2.1" + }, + "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-11-30T17:05:38+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.22.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.0" + }, + "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": "symfony/polyfill-php80", + "version": "v1.22.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "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": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0" + }, + "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": "symfony/service-contracts", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/master" + }, + "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-09-07T11:33:47+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "75a63c33a8577608444246075ea0af0d052e452a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", + "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "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" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/master" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2020-07-12T23:59:07+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", + "shasum": "" + }, + "require": { + "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": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.9.1" + }, + "time": "2020-07-08T17:02:28+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "^7.2 || ^8.0" + }, + "platform-dev": [], + "plugin-api-version": "2.0.0" +} diff --git a/config/module.config.php b/config/module.config.php index b9ef4ad..ca12e41 100644 --- a/config/module.config.php +++ b/config/module.config.php @@ -1,6 +1,6 @@ [ @@ -59,8 +59,11 @@ ], ], 'view_helpers' => [ - 'invokables' => [ + 'aliases' => [ 'resize' => View\Helper\Resize::class, ], + 'factories' => [ + View\Helper\Resize::class => InvokableFactory::class, + ], ], ]; diff --git a/phpunit.xml b/phpunit.xml index c3aac5a..465354d 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,42 +1,41 @@ - - ./test/TckImageResizerTest/Controller + ./tests/TckImageResizerTest/Controller - ./test/TckImageResizerTest/Service + ./tests/TckImageResizerTest/Service - ./test/TckImageResizerTest/Util + ./tests/TckImageResizerTest/Util - ./test/TckImageResizerTest/View + ./tests/TckImageResizerTest/View - - - - - - - - - - - + + + ./src - - + + + ./vendor - ./test - ./Module.php - - + ./tests + + + + + + + + + diff --git a/src/TckImageResizer/Controller/IndexController.php b/src/Controller/IndexController.php similarity index 92% rename from src/TckImageResizer/Controller/IndexController.php rename to src/Controller/IndexController.php index 3aaf5cb..8b1d652 100644 --- a/src/TckImageResizer/Controller/IndexController.php +++ b/src/Controller/IndexController.php @@ -1,6 +1,6 @@ getResponse(); $response->setContent(file_get_contents($target)); $response->setStatusCode($source ? 200 : 404); diff --git a/src/TckImageResizer/Controller/IndexControllerFactory.php b/src/Controller/IndexControllerFactory.php similarity index 86% rename from src/TckImageResizer/Controller/IndexControllerFactory.php rename to src/Controller/IndexControllerFactory.php index 0ee9be4..9e21892 100644 --- a/src/TckImageResizer/Controller/IndexControllerFactory.php +++ b/src/Controller/IndexControllerFactory.php @@ -1,6 +1,6 @@ [ + 'Laminas\Loader\StandardAutoloader' => [ 'namespaces' => [ - __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + __NAMESPACE__ => __DIR__, ], ], ]; @@ -35,6 +35,6 @@ public function getAutoloaderConfig() */ public function getConfig() { - return include __DIR__ . '/config/module.config.php'; + return include __DIR__ . '/../config/module.config.php'; } } diff --git a/src/TckImageResizer/Service/CommandRegistry.php b/src/Service/CommandRegistry.php similarity index 97% rename from src/TckImageResizer/Service/CommandRegistry.php rename to src/Service/CommandRegistry.php index 49e4f3f..1a91543 100644 --- a/src/TckImageResizer/Service/CommandRegistry.php +++ b/src/Service/CommandRegistry.php @@ -1,6 +1,6 @@ image = $this->getImagineService()->open($source); foreach ($this->analyseCommands($commands) as $command) { @@ -111,8 +111,8 @@ public function process404($target, $commands) } $targetFolder = pathinfo($target, PATHINFO_DIRNAME); - if (!file_exists($targetFolder)) { - mkdir($targetFolder, 0777, true); + if (!is_dir($targetFolder) && !mkdir($targetFolder, 0777, true) && !is_dir($targetFolder)) { + throw new \RuntimeException(sprintf('Directory "%s" was not created', $targetFolder)); } $text = 'Not found'; @@ -292,7 +292,7 @@ protected function imageGamma($correction) */ protected function imageColorize($hexColor) { - if (strlen($hexColor) != 6 || !preg_match('![0-9abcdef]!i', $hexColor)) { + if (strlen($hexColor) !== 6 || !preg_match('![0-9abcdef]!i', $hexColor)) { throw new BadMethodCallException('Invalid parameter color for command "colorize"'); } $color = $this->image->palette()->color('#' . $hexColor); @@ -392,7 +392,7 @@ protected function drawCenteredText($text, $color) $heightFactor = $height > 160 ? 0.8 : 0.9; do { $font = $this->getImagineService() - ->font(__DIR__ . '/../../../data/font/Roboto-Regular.ttf', $fontSize, $fontColor); + ->font(__DIR__ . '/../../data/font/Roboto-Regular.ttf', $fontSize, $fontColor); $fontBox = $font->box($text); $fontSize = round($fontSize * 0.8); diff --git a/src/TckImageResizer/Service/ImageProcessingFactory.php b/src/Service/ImageProcessingFactory.php similarity index 86% rename from src/TckImageResizer/Service/ImageProcessingFactory.php rename to src/Service/ImageProcessingFactory.php index 9ff6ee5..6a96f96 100644 --- a/src/TckImageResizer/Service/ImageProcessingFactory.php +++ b/src/Service/ImageProcessingFactory.php @@ -1,6 +1,6 @@ [ + 'Laminas\Loader\StandardAutoloader' => [ 'autoregister_zf' => true, 'namespaces' => [ __NAMESPACE__ => __DIR__ . '/' . __NAMESPACE__, diff --git a/test/TckImageResizerTest/Controller/IndexControllerTest.php b/tests/TckImageResizerTest/Controller/IndexControllerTest.php similarity index 83% rename from test/TckImageResizerTest/Controller/IndexControllerTest.php rename to tests/TckImageResizerTest/Controller/IndexControllerTest.php index 255ba66..b6e56b9 100644 --- a/test/TckImageResizerTest/Controller/IndexControllerTest.php +++ b/tests/TckImageResizerTest/Controller/IndexControllerTest.php @@ -1,6 +1,6 @@ controller->dispatch($this->request); $response = $this->controller->getResponse(); - $this->assertEquals(200, $response->getStatusCode()); + self::assertEquals(200, $response->getStatusCode()); } public function testResizeActionContentTypeImageJpeg() @@ -82,8 +82,8 @@ public function testResizeActionContentTypeImageJpeg() $result = $this->controller->dispatch($this->request); $response = $this->controller->getResponse(); - - $this->assertStringStartsWith('image/jpeg', $response->getHeaders()->get('Content-Type')->getFieldValue()); + + self::assertStringStartsWith('image/jpeg', $response->getHeaders()->get('Content-Type')->getFieldValue()); } public function testResizeActionResponseFileSignatureJpeg() @@ -95,8 +95,8 @@ public function testResizeActionResponseFileSignatureJpeg() $result = $this->controller->dispatch($this->request); $response = $this->controller->getResponse(); - - $this->assertEquals(pack('H*', 'ffd8ff'), substr($response->getBody(), 0, 3)); // ÿØÿ + + self::assertEquals(pack('H*', 'ffd8ff'), substr($response->getBody(), 0, 3)); // ÿØÿ } public function testResizeActionFileNotFound() @@ -109,6 +109,6 @@ public function testResizeActionFileNotFound() $result = $this->controller->dispatch($this->request); $response = $this->controller->getResponse(); - $this->assertEquals(404, $response->getStatusCode()); + self::assertEquals(404, $response->getStatusCode()); } } diff --git a/test/TckImageResizerTest/Service/CommandRegistryTest.php b/tests/TckImageResizerTest/Service/CommandRegistryTest.php similarity index 60% rename from test/TckImageResizerTest/Service/CommandRegistryTest.php rename to tests/TckImageResizerTest/Service/CommandRegistryTest.php index cf002f2..725b029 100644 --- a/test/TckImageResizerTest/Service/CommandRegistryTest.php +++ b/tests/TckImageResizerTest/Service/CommandRegistryTest.php @@ -1,6 +1,6 @@ assertInstanceOf('TckImageResizer\Service\CommandRegistry', CommandRegistry::getInstance()); + + self::assertInstanceOf('TckImageResizer\Service\CommandRegistry', CommandRegistry::getInstance()); } public function testRegisterIsCallable() { $commandRegistry = CommandRegistry::register('test', function () { }); - - $this->assertInstanceOf('TckImageResizer\Service\CommandRegistry', $commandRegistry); + + self::assertInstanceOf('TckImageResizer\Service\CommandRegistry', $commandRegistry); } - - /** - * @expectedException BadMethodCallException - */ + public function testExceptionRegisterParamCommand() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + CommandRegistry::register('', function () { }); } - /** - * @expectedException BadMethodCallException - */ public function testExceptionRegisterParamCallback() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + CommandRegistry::register('test', ''); } @@ -60,24 +58,22 @@ public function testGetCommand() }); $command = CommandRegistry::getCommand('test'); - - $this->assertTrue(is_callable($command)); + + self::assertTrue(is_callable($command)); } - /** - * @expectedException BadMethodCallException - */ public function testExceptionGetCommandParamWrong() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + CommandRegistry::getCommand(''); } - /** - * @expectedException BadMethodCallException - * @expectedExceptionMessage testname - */ public function testExceptionGetCommandParamTestname() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + $this->expectExceptionMessageMatches('!testname!'); + CommandRegistry::getCommand('testname'); } @@ -85,16 +81,15 @@ public function testHasCommand() { CommandRegistry::register('test', function () { }); - - $this->assertTrue(CommandRegistry::hasCommand('test')); - $this->assertFalse(CommandRegistry::hasCommand('testabc')); + + self::assertTrue(CommandRegistry::hasCommand('test')); + self::assertFalse(CommandRegistry::hasCommand('testabc')); } - /** - * @expectedException BadMethodCallException - */ public function testExceptionHasCommandParamWrong() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + CommandRegistry::hasCommand(''); } @@ -107,8 +102,8 @@ public function testGetCommands() $commands = CommandRegistry::getCommands(); - $this->assertArrayHasKey('test1', $commands); - $this->assertArrayHasKey('test2', $commands); - $this->assertEquals(2, count($commands)); + self::assertArrayHasKey('test1', $commands); + self::assertArrayHasKey('test2', $commands); + self::assertEquals(2, count($commands)); } } diff --git a/test/TckImageResizerTest/Service/ImageProcessingFactoryTest.php b/tests/TckImageResizerTest/Service/ImageProcessingFactoryTest.php similarity index 74% rename from test/TckImageResizerTest/Service/ImageProcessingFactoryTest.php rename to tests/TckImageResizerTest/Service/ImageProcessingFactoryTest.php index b83421c..bf497c2 100644 --- a/test/TckImageResizerTest/Service/ImageProcessingFactoryTest.php +++ b/tests/TckImageResizerTest/Service/ImageProcessingFactoryTest.php @@ -1,6 +1,6 @@ serviceManager = Bootstrap::getServiceManager(); $this->imageProcessingFactory = new ImageProcessingFactory(); @@ -32,6 +32,6 @@ public function testCreateService() { $imageProcessing = $this->imageProcessingFactory->createService($this->serviceManager); - $this->assertInstanceOf('TckImageResizer\Service\ImageProcessing', $imageProcessing); + self::assertInstanceOf('TckImageResizer\Service\ImageProcessing', $imageProcessing); } } diff --git a/test/TckImageResizerTest/Service/ImageProcessingTest.php b/tests/TckImageResizerTest/Service/ImageProcessingTest.php similarity index 74% rename from test/TckImageResizerTest/Service/ImageProcessingTest.php rename to tests/TckImageResizerTest/Service/ImageProcessingTest.php index 26d7fe4..d1186eb 100644 --- a/test/TckImageResizerTest/Service/ImageProcessingTest.php +++ b/tests/TckImageResizerTest/Service/ImageProcessingTest.php @@ -1,6 +1,6 @@ serviceManager = Bootstrap::getServiceManager(); @@ -48,15 +48,15 @@ protected function setUp() public function testGetImagineService() { $imagine = $this->imageProcessing->getImagineService(); - - $this->assertInstanceOf('Imagine\Image\AbstractImagine', $imagine); + + self::assertInstanceOf('Imagine\Image\AbstractImagine', $imagine); } public function testSetImagineService() { $imageProcessing = $this->imageProcessing->setImagineService($this->imagine); - - $this->assertInstanceOf('TckImageResizer\Service\ImageProcessing', $imageProcessing); + + self::assertInstanceOf('TckImageResizer\Service\ImageProcessing', $imageProcessing); } public function testProcessCommandThumb() @@ -69,27 +69,26 @@ public function testProcessCommandThumb() $this->imageProcessing->process($source, $target, $commands); $folder = vfsStreamWrapper::getRoot()->getChild('processed')->getChild('img'); - - $this->assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); + + self::assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); $content = $folder->getChild('test.$' . $commands . '.jpg')->getContent(); - - $this->assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ + + self::assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ $imageInfo = getimagesizefromstring($content); - - $this->assertEquals(100, $imageInfo[0]); - - $this->assertGreaterThan(0, $imageInfo[1]); - $this->assertLessThan(100, $imageInfo[1]); + + self::assertEquals(100, $imageInfo[0]); + + self::assertGreaterThan(0, $imageInfo[1]); + self::assertLessThan(100, $imageInfo[1]); } - /** - * @expectedException BadMethodCallException - * @expectedExceptionMessage thumb - */ public function testExceptionProcessCommandThumbWidth() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + $this->expectExceptionMessageMatches('!thumb!'); + $commands = 'thumb,0,100'; $source = vfsStream::url('public') . '/img/test.jpg'; @@ -98,12 +97,11 @@ public function testExceptionProcessCommandThumbWidth() $this->imageProcessing->process($source, $target, $commands); } - /** - * @expectedException BadMethodCallException - * @expectedExceptionMessage thumb - */ public function testExceptionProcessCommandThumbHeight() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + $this->expectExceptionMessageMatches('!thumb!'); + $commands = 'thumb,100,0'; $source = vfsStream::url('public') . '/img/test.jpg'; @@ -122,25 +120,24 @@ public function testProcessCommandResize() $this->imageProcessing->process($source, $target, $commands); $folder = vfsStreamWrapper::getRoot()->getChild('processed')->getChild('img'); - - $this->assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); + + self::assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); $content = $folder->getChild('test.$' . $commands . '.jpg')->getContent(); - - $this->assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ + + self::assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ $imageInfo = getimagesizefromstring($content); - - $this->assertEquals(100, $imageInfo[0]); - $this->assertEquals(100, $imageInfo[1]); + + self::assertEquals(100, $imageInfo[0]); + self::assertEquals(100, $imageInfo[1]); } - /** - * @expectedException BadMethodCallException - * @expectedExceptionMessage resize - */ public function testExceptionProcessCommandResizeWidth() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + $this->expectExceptionMessageMatches('!resize!'); + $commands = 'resize,0,100'; $source = vfsStream::url('public') . '/img/test.jpg'; @@ -149,12 +146,11 @@ public function testExceptionProcessCommandResizeWidth() $this->imageProcessing->process($source, $target, $commands); } - /** - * @expectedException BadMethodCallException - * @expectedExceptionMessage resize - */ public function testExceptionProcessCommandResizeHeight() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + $this->expectExceptionMessageMatches('!resize!'); + $commands = 'resize,100,0'; $source = vfsStream::url('public') . '/img/test.jpg'; @@ -173,12 +169,12 @@ public function testProcessCommandGrayscale() $this->imageProcessing->process($source, $target, $commands); $folder = vfsStreamWrapper::getRoot()->getChild('processed')->getChild('img'); - - $this->assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); + + self::assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); $content = $folder->getChild('test.$' . $commands . '.jpg')->getContent(); - - $this->assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ + + self::assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ } public function testProcessCommandNegative() @@ -191,12 +187,12 @@ public function testProcessCommandNegative() $this->imageProcessing->process($source, $target, $commands); $folder = vfsStreamWrapper::getRoot()->getChild('processed')->getChild('img'); - - $this->assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); + + self::assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); $content = $folder->getChild('test.$' . $commands . '.jpg')->getContent(); - - $this->assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ + + self::assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ } public function testProcessCommandGamma() @@ -209,12 +205,12 @@ public function testProcessCommandGamma() $this->imageProcessing->process($source, $target, $commands); $folder = vfsStreamWrapper::getRoot()->getChild('processed')->getChild('img'); - - $this->assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); + + self::assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); $content = $folder->getChild('test.$' . $commands . '.jpg')->getContent(); - - $this->assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ + + self::assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ } public function testProcessCommandColorize() @@ -227,20 +223,19 @@ public function testProcessCommandColorize() $this->imageProcessing->process($source, $target, $commands); $folder = vfsStreamWrapper::getRoot()->getChild('processed')->getChild('img'); - - $this->assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); + + self::assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); $content = $folder->getChild('test.$' . $commands . '.jpg')->getContent(); - - $this->assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ + + self::assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ } - /** - * @expectedException BadMethodCallException - * @expectedExceptionMessage colorize - */ public function testExceptionProcessCommandColorizeColor() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + $this->expectExceptionMessageMatches('!colorize!'); + $commands = 'colorize,nohexcolor'; $source = vfsStream::url('public') . '/img/test.jpg'; @@ -259,12 +254,12 @@ public function testProcessCommandSharpen() $this->imageProcessing->process($source, $target, $commands); $folder = vfsStreamWrapper::getRoot()->getChild('processed')->getChild('img'); - - $this->assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); + + self::assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); $content = $folder->getChild('test.$' . $commands . '.jpg')->getContent(); - - $this->assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ + + self::assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ } public function testProcessCommandBlur() @@ -277,12 +272,12 @@ public function testProcessCommandBlur() $this->imageProcessing->process($source, $target, $commands); $folder = vfsStreamWrapper::getRoot()->getChild('processed')->getChild('img'); - - $this->assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); + + self::assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); $content = $folder->getChild('test.$' . $commands . '.jpg')->getContent(); - - $this->assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ + + self::assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ } public function testProcessCustomCommand() @@ -298,24 +293,23 @@ public function testProcessCustomCommand() $target = vfsStream::url('public') . '/processed/img/test.$' . $commands . '.jpg'; $this->imageProcessing->process($source, $target, $commands); - - $this->assertTrue($callCheck); + + self::assertTrue($callCheck); $folder = vfsStreamWrapper::getRoot()->getChild('processed')->getChild('img'); - - $this->assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); + + self::assertTrue($folder->hasChild('test.$' . $commands . '.jpg')); $content = $folder->getChild('test.$' . $commands . '.jpg')->getContent(); - - $this->assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ + + self::assertEquals(pack('H*', 'ffd8ff'), substr($content, 0, 3)); // ÿØÿ } - /** - * @expectedException BadMethodCallException - * @expectedExceptionMessage nonexistentcommand - */ public function testExceptionProcessCustomCommand() { + $this->expectException(\TckImageResizer\Exception\BadMethodCallException::class); + $this->expectExceptionMessageMatches('!nonexistentcommand!'); + $commands = 'nonexistentcommand'; $source = vfsStream::url('public') . '/img/test.jpg'; @@ -333,8 +327,8 @@ public function testProcess404() $this->imageProcessing->process404($target, $commands); $folder = vfsStreamWrapper::getRoot()->getChild('processed')->getChild('img'); - - $this->assertTrue($folder->hasChild('nonexistentimage.$' . $commands . '.jpg.404.png')); + + self::assertTrue($folder->hasChild('nonexistentimage.$' . $commands . '.jpg.404.png')); $mTimeBefore = $folder->getChild('nonexistentimage.$' . $commands . '.jpg.404.png')->filemtime(); @@ -343,8 +337,8 @@ public function testProcess404() $this->imageProcessing->process404($target, $commands); $mTimeAfter = $folder->getChild('nonexistentimage.$' . $commands . '.jpg.404.png')->filemtime(); - - $this->assertTrue($mTimeBefore === $mTimeAfter); + + self::assertTrue($mTimeBefore === $mTimeAfter); $noSizeCommands = 'blur'; @@ -353,7 +347,7 @@ public function testProcess404() . '/processed/img/nonexistentimage.$' . $noSizeCommands . '.jpg.404.png'; $this->imageProcessing->process404($noSizeTarget, $noSizeCommands); - - $this->assertTrue($folder->hasChild('nonexistentimage.$' . $noSizeCommands . '.jpg.404.png')); + + self::assertTrue($folder->hasChild('nonexistentimage.$' . $noSizeCommands . '.jpg.404.png')); } } diff --git a/test/TckImageResizerTest/Util/UrlSafeBase64Test.php b/tests/TckImageResizerTest/Util/UrlSafeBase64Test.php similarity index 65% rename from test/TckImageResizerTest/Util/UrlSafeBase64Test.php rename to tests/TckImageResizerTest/Util/UrlSafeBase64Test.php index 9f252bf..d0fc486 100644 --- a/test/TckImageResizerTest/Util/UrlSafeBase64Test.php +++ b/tests/TckImageResizerTest/Util/UrlSafeBase64Test.php @@ -1,6 +1,6 @@ assertEquals('dGVzdA', $actual); + + self::assertEquals('dGVzdA', $actual); } public function testDecode() { $actual = UrlSafeBase64::decode('dGVzdA'); - - $this->assertEquals('test', $actual); + + self::assertEquals('test', $actual); } public function testVaild() { $validTrue = UrlSafeBase64::valid('dGVzdA'); - - $this->assertTrue($validTrue); + + self::assertTrue($validTrue); $validFalse = UrlSafeBase64::valid('test!'); - - $this->assertFalse($validFalse); + + self::assertFalse($validFalse); } } diff --git a/test/TckImageResizerTest/View/Helper/ResizeTest.php b/tests/TckImageResizerTest/View/Helper/ResizeTest.php similarity index 68% rename from test/TckImageResizerTest/View/Helper/ResizeTest.php rename to tests/TckImageResizerTest/View/Helper/ResizeTest.php index 144cc3a..a8b45a7 100644 --- a/test/TckImageResizerTest/View/Helper/ResizeTest.php +++ b/tests/TckImageResizerTest/View/Helper/ResizeTest.php @@ -1,6 +1,6 @@ view = new PhpRenderer(); $this->view->getHelperPluginManager()->get('basePath')->setBasePath('/'); @@ -34,71 +34,71 @@ protected function setUp() public function testInvoke() { $resizeObject = $this->helper->__invoke('test.jpg'); - - $this->assertInstanceOf('TckImageResizer\View\Helper\Resize', $resizeObject); + + self::assertInstanceOf('TckImageResizer\View\Helper\Resize', $resizeObject); } public function testFileInFolder() { $actual = $this->helper->__invoke('folder/test.jpg')->__toString(); - - $this->assertEquals('/processed/folder/test..jpg', $actual); + + self::assertEquals('/processed/folder/test..jpg', $actual); } public function testThumb() { $actual = $this->helper->__invoke('test.jpg')->thumb(300, 200)->__toString(); - - $this->assertEquals('/processed/test.$thumb,300,200.jpg', $actual); + + self::assertEquals('/processed/test.$thumb,300,200.jpg', $actual); } public function testResize() { $actual = $this->helper->__invoke('test.jpg')->resize(300, 200)->__toString(); - - $this->assertEquals('/processed/test.$resize,300,200.jpg', $actual); + + self::assertEquals('/processed/test.$resize,300,200.jpg', $actual); } public function testGrayscale() { $actual = $this->helper->__invoke('test.jpg')->grayscale()->__toString(); - - $this->assertEquals('/processed/test.$grayscale.jpg', $actual); + + self::assertEquals('/processed/test.$grayscale.jpg', $actual); } public function testNegative() { $actual = $this->helper->__invoke('test.jpg')->negative()->__toString(); - - $this->assertEquals('/processed/test.$negative.jpg', $actual); + + self::assertEquals('/processed/test.$negative.jpg', $actual); } public function testGamma() { $actual = $this->helper->__invoke('test.jpg')->gamma(1)->__toString(); - - $this->assertEquals('/processed/test.$gamma,1.jpg', $actual); + + self::assertEquals('/processed/test.$gamma,1.jpg', $actual); } public function testColorize() { $actual = $this->helper->__invoke('test.jpg')->colorize('ff00ff')->__toString(); - - $this->assertEquals('/processed/test.$colorize,ff00ff.jpg', $actual); + + self::assertEquals('/processed/test.$colorize,ff00ff.jpg', $actual); } public function testSharpen() { $actual = $this->helper->__invoke('test.jpg')->sharpen()->__toString(); - - $this->assertEquals('/processed/test.$sharpen.jpg', $actual); + + self::assertEquals('/processed/test.$sharpen.jpg', $actual); } public function testBlur() { $actual = $this->helper->__invoke('test.jpg')->blur(1)->__toString(); - - $this->assertEquals('/processed/test.$blur,1.jpg', $actual); + + self::assertEquals('/processed/test.$blur,1.jpg', $actual); } public function test404() @@ -106,7 +106,7 @@ public function test404() $actual = $this->helper->__invoke('test.jpg') ->x404('File not found', 'ffffff', 'ff00ff', 400, 200) ->__toString(); - - $this->assertEquals('/processed/test.$404,RmlsZSBub3QgZm91bmQ,ffffff,ff00ff,400,200.jpg', $actual); + + self::assertEquals('/processed/test.$404,RmlsZSBub3QgZm91bmQ,ffffff,ff00ff,400,200.jpg', $actual); } } diff --git a/test/TestConfig.php.dist b/tests/TestConfig.php.dist similarity index 91% rename from test/TestConfig.php.dist rename to tests/TestConfig.php.dist index 9cbc2db..264c345 100644 --- a/test/TestConfig.php.dist +++ b/tests/TestConfig.php.dist @@ -1,7 +1,7 @@ [ - 'Zend\\Router', + 'Laminas\\Router', 'TckImageResizer', ], 'module_listener_options' => [ diff --git a/test/_files/test.jpg b/tests/_files/test.jpg similarity index 100% rename from test/_files/test.jpg rename to tests/_files/test.jpg