.github/FUNDING.yml000064400000000042144760110750007722 0ustar00community_bridge: laminas-project .github/workflows/continuous-integration.yml000064400000001314144760110750015417 0ustar00name: "Continuous Integration" on: pull_request: push: branches: - '[0-9]+.[0-9]+.x' - 'refs/pull/*' jobs: matrix: name: Generate job matrix runs-on: ubuntu-latest outputs: matrix: ${{ steps.matrix.outputs.matrix }} steps: - name: Gather CI configuration id: matrix uses: laminas/laminas-ci-matrix-action@v1 qa: name: QA Checks needs: [matrix] runs-on: ${{ matrix.operatingSystem }} strategy: fail-fast: false matrix: ${{ fromJSON(needs.matrix.outputs.matrix) }} steps: - name: ${{ matrix.name }} uses: laminas/laminas-continuous-integration-action@v1 with: job: ${{ matrix.job }} .github/workflows/release-on-milestone-closed.yml000064400000004365144760110750016177 0ustar00# Alternate workflow example. # This one is identical to the one in release-on-milestone.yml, with one change: # the Release step uses the ORGANIZATION_ADMIN_TOKEN instead, to allow it to # trigger a release workflow event. This is useful if you have other actions # that intercept that event. name: "Automatic Releases" on: milestone: types: - "closed" jobs: release: name: "GIT tag, release & create merge-up PR" runs-on: ubuntu-latest steps: - name: "Checkout" uses: "actions/checkout@v2" - name: "Release" uses: "laminas/automatic-releases@v1" with: command-name: "laminas:automatic-releases:release" env: "GITHUB_TOKEN": ${{ secrets.ORGANIZATION_ADMIN_TOKEN }} "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} - name: "Create Merge-Up Pull Request" uses: "laminas/automatic-releases@v1" with: command-name: "laminas:automatic-releases:create-merge-up-pull-request" env: "GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }} "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} - name: "Create and/or Switch to new Release Branch" uses: "laminas/automatic-releases@v1" with: command-name: "laminas:automatic-releases:switch-default-branch-to-next-minor" env: "GITHUB_TOKEN": ${{ secrets.ORGANIZATION_ADMIN_TOKEN }} "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} - name: "Create new milestones" uses: "laminas/automatic-releases@v1" with: command-name: "laminas:automatic-releases:create-milestones" env: "GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }} "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} .laminas-ci.json000064400000000110144760110750007527 0ustar00{ "ignore_php_platform_requirements": { "8.1": true } } COPYRIGHT.md000064400000000133144760110750006440 0ustar00Copyright (c) 2020 Laminas Project a Series of LF Projects, LLC. (https://getlaminas.org/) LICENSE.md000064400000002732144760110750006161 0ustar00Copyright (c) 2020 Laminas Project a Series of LF Projects, LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of Laminas Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. README.md000064400000001751144760110750006034 0ustar00# laminas-zendframework-bridge [![Build Status](https://github.com/laminas/laminas-zendframework-bridge/workflows/Continuous%20Integration/badge.svg)](https://github.com/laminas/laminas-zendframework-bridge/actions?query=workflow%3A"Continuous+Integration") This library provides a custom autoloader that aliases legacy Zend Framework, Apigility, and Expressive classes to their replacements under the Laminas Project. This package should be installed only if you are also using the composer plugin that installs Laminas packages to replace ZF/Apigility/Expressive packages. This tool supports: * Zend Framework MVC projects, all v2 and v3 releases * Apigility projects, all stable versions * Expressive versions, all stable versions ## Installation Run the following to install this library: ```bash $ composer require laminas/laminas-zendframework-bridge ``` ## Support * [Issues](https://github.com/laminas/laminas-zendframework-bridge/issues/) * [Forum](https://discourse.laminas.dev/) composer.json000064400000003513144760110750007275 0ustar00{ "name": "laminas/laminas-zendframework-bridge", "description": "Alias legacy ZF class names to Laminas Project equivalents.", "license": "BSD-3-Clause", "keywords": [ "autoloading", "laminas", "zf", "zendframework" ], "support": { "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues", "source": "https://github.com/laminas/laminas-zendframework-bridge", "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom", "forum": "https://discourse.laminas.dev/" }, "require": { "php": "^7.3 || ~8.0.0 || ~8.1.0" }, "require-dev": { "phpunit/phpunit": "^9.3", "psalm/plugin-phpunit": "^0.15.1", "squizlabs/php_codesniffer": "^3.5", "vimeo/psalm": "^4.6" }, "autoload": { "files": [ "src/autoload.php" ], "psr-4": { "Laminas\\ZendFrameworkBridge\\": "src//" } }, "autoload-dev": { "files": [ "test/classes.php" ], "psr-4": { "LaminasTest\\ZendFrameworkBridge\\": "test/", "LaminasTest\\ZendFrameworkBridge\\TestAsset\\": "test/TestAsset/classes/", "Laminas\\ApiTools\\": "test/TestAsset/LaminasApiTools/", "Mezzio\\": "test/TestAsset/Mezzio/", "Laminas\\": "test/TestAsset/Laminas/" } }, "extra": { "laminas": { "module": "Laminas\\ZendFrameworkBridge" } }, "config": { "sort-packages": true }, "scripts": { "cs-check": "phpcs", "cs-fix": "phpcbf", "static-analysis": "psalm --shepherd --stats", "test": "phpunit --colors=always", "test-coverage": "phpunit --colors=always --coverage-clover clover.xml" } } composer.lock000064400000414736144760110750007271 0ustar00{ "_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": "83af626bc1168baa0d5a1e19cb1b5807", "packages": [], "packages-dev": [ { "name": "amphp/amp", "version": "v2.6.0", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", "reference": "caa95edeb1ca1bf7532e9118ede4a3c3126408cc" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/amphp/amp/zipball/caa95edeb1ca1bf7532e9118ede4a3c3126408cc", "reference": "caa95edeb1ca1bf7532e9118ede4a3c3126408cc", "shasum": "" }, "require": { "php": ">=7.1" }, "require-dev": { "amphp/php-cs-fixer-config": "dev-master", "amphp/phpunit-util": "^1", "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^7 | ^8 | ^9", "psalm/phar": "^3.11@dev", "react/promise": "^2" }, "type": "library", "extra": { "branch-alias": { "dev-master": "2.x-dev" } }, "autoload": { "psr-4": { "Amp\\": "lib" }, "files": [ "lib/functions.php", "lib/Internal/functions.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Daniel Lowrey", "email": "rdlowrey@php.net" }, { "name": "Aaron Piotrowski", "email": "aaron@trowski.com" }, { "name": "Bob Weinand", "email": "bobwei9@hotmail.com" }, { "name": "Niklas Keller", "email": "me@kelunik.com" } ], "description": "A non-blocking concurrency framework for PHP applications.", "homepage": "http://amphp.org/amp", "keywords": [ "async", "asynchronous", "awaitable", "concurrency", "event", "event-loop", "future", "non-blocking", "promise" ], "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", "source": "https://github.com/amphp/amp/tree/v2.6.0" }, "funding": [ { "url": "https://github.com/amphp", "type": "github" } ], "time": "2021-07-16T20:06:06+00:00" }, { "name": "amphp/byte-stream", "version": "v1.8.1", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", "shasum": "" }, "require": { "amphp/amp": "^2", "php": ">=7.1" }, "require-dev": { "amphp/php-cs-fixer-config": "dev-master", "amphp/phpunit-util": "^1.4", "friendsofphp/php-cs-fixer": "^2.3", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^6 || ^7 || ^8", "psalm/phar": "^3.11.4" }, "type": "library", "extra": { "branch-alias": { "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { "Amp\\ByteStream\\": "lib" }, "files": [ "lib/functions.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Aaron Piotrowski", "email": "aaron@trowski.com" }, { "name": "Niklas Keller", "email": "me@kelunik.com" } ], "description": "A stream abstraction to make working with non-blocking I/O simple.", "homepage": "http://amphp.org/byte-stream", "keywords": [ "amp", "amphp", "async", "io", "non-blocking", "stream" ], "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/byte-stream/issues", "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" }, "funding": [ { "url": "https://github.com/amphp", "type": "github" } ], "time": "2021-03-30T17:13:30+00:00" }, { "name": "composer/package-versions-deprecated", "version": "1.11.99.3", "source": { "type": "git", "url": "https://github.com/composer/package-versions-deprecated.git", "reference": "fff576ac850c045158a250e7e27666e146e78d18" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/fff576ac850c045158a250e7e27666e146e78d18", "reference": "fff576ac850c045158a250e7e27666e146e78d18", "shasum": "" }, "require": { "composer-plugin-api": "^1.1.0 || ^2.0", "php": "^7 || ^8" }, "replace": { "ocramius/package-versions": "1.11.99" }, "require-dev": { "composer/composer": "^1.9.3 || ^2.0@dev", "ext-zip": "^1.13", "phpunit/phpunit": "^6.5 || ^7" }, "type": "composer-plugin", "extra": { "class": "PackageVersions\\Installer", "branch-alias": { "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { "PackageVersions\\": "src/PackageVersions" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Marco Pivetta", "email": "ocramius@gmail.com" }, { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be" } ], "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", "support": { "issues": "https://github.com/composer/package-versions-deprecated/issues", "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.3" }, "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": "2021-08-17T13:49:14+00:00" }, { "name": "composer/semver", "version": "3.2.5", "source": { "type": "git", "url": "https://github.com/composer/semver.git", "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/composer/semver/zipball/31f3ea725711245195f62e54ffa402d8ef2fdba9", "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { "phpstan/phpstan": "^0.12.54", "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { "Composer\\Semver\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Nils Adermann", "email": "naderman@naderman.de", "homepage": "http://www.naderman.de" }, { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", "homepage": "http://seld.be" }, { "name": "Rob Bast", "email": "rob.bast@gmail.com", "homepage": "http://robbast.nl" } ], "description": "Semver library that offers utilities, version constraint parsing and validation.", "keywords": [ "semantic", "semver", "validation", "versioning" ], "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", "source": "https://github.com/composer/semver/tree/3.2.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": "2021-05-24T12:41:47+00:00" }, { "name": "composer/xdebug-handler", "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", "reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/84674dd3a7575ba617f5a76d7e9e29a7d3891339", "reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0", "psr/log": "^1 || ^2 || ^3" }, "require-dev": { "phpstan/phpstan": "^0.12.55", "symfony/phpunit-bridge": "^4.2 || ^5" }, "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/2.0.2" }, "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": "2021-07-31T17:03:58+00:00" }, { "name": "dnoegel/php-xdg-base-dir", "version": "v0.1.1", "source": { "type": "git", "url": "https://github.com/dnoegel/php-xdg-base-dir.git", "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", "shasum": "" }, "require": { "php": ">=5.3.2" }, "require-dev": { "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" }, "type": "library", "autoload": { "psr-4": { "XdgBaseDir\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "description": "implementation of xdg base directory specification for php", "support": { "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" }, "time": "2019-12-04T15:06:13+00:00" }, { "name": "doctrine/instantiator", "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^8.0", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", "phpstan/phpstan": "^0.12", "phpstan/phpstan-phpunit": "^0.12", "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", "autoload": { "psr-4": { "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": "felixfbecker/advanced-json-rpc", "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", "shasum": "" }, "require": { "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", "php": "^7.1 || ^8.0", "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" }, "require-dev": { "phpunit/phpunit": "^7.0 || ^8.0" }, "type": "library", "autoload": { "psr-4": { "AdvancedJsonRpc\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "ISC" ], "authors": [ { "name": "Felix Becker", "email": "felix.b@outlook.com" } ], "description": "A more advanced JSONRPC implementation", "support": { "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" }, "time": "2021-06-11T22:34:44+00:00" }, { "name": "felixfbecker/language-server-protocol", "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/felixfbecker/php-language-server-protocol.git", "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730", "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730", "shasum": "" }, "require": { "php": ">=7.1" }, "require-dev": { "phpstan/phpstan": "*", "squizlabs/php_codesniffer": "^3.1", "vimeo/psalm": "^4.0" }, "type": "library", "extra": { "branch-alias": { "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { "LanguageServerProtocol\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "ISC" ], "authors": [ { "name": "Felix Becker", "email": "felix.b@outlook.com" } ], "description": "PHP classes for the Language Server Protocol", "keywords": [ "language", "microsoft", "php", "server" ], "support": { "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/1.5.1" }, "time": "2021-02-22T14:02:09+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": "netresearch/jsonmapper", "version": "v4.0.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", "shasum": "" }, "require": { "ext-json": "*", "ext-pcre": "*", "ext-reflection": "*", "ext-spl": "*", "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", "squizlabs/php_codesniffer": "~3.5" }, "type": "library", "autoload": { "psr-0": { "JsonMapper": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "OSL-3.0" ], "authors": [ { "name": "Christian Weiske", "email": "cweiske@cweiske.de", "homepage": "http://github.com/cweiske/jsonmapper/", "role": "Developer" } ], "description": "Map nested JSON structures onto PHP classes", "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0" }, "time": "2020-12-01T19:48:11+00:00" }, { "name": "nikic/php-parser", "version": "v4.12.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", "reference": "6608f01670c3cc5079e18c1dab1104e002579143" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6608f01670c3cc5079e18c1dab1104e002579143", "reference": "6608f01670c3cc5079e18c1dab1104e002579143", "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.12.0" }, "time": "2021-07-21T10:44:31+00:00" }, { "name": "openlss/lib-array2xml", "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/nullivex/lib-array2xml.git", "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", "shasum": "" }, "require": { "php": ">=5.3.2" }, "type": "library", "autoload": { "psr-0": { "LSS": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "Apache-2.0" ], "authors": [ { "name": "Bryan Tong", "email": "bryan@nullivex.com", "homepage": "https://www.nullivex.com" }, { "name": "Tony Butler", "email": "spudz76@gmail.com", "homepage": "https://www.nullivex.com" } ], "description": "Array2XML conversion library credit to lalit.org", "homepage": "https://www.nullivex.com", "keywords": [ "array", "array conversion", "xml", "xml conversion" ], "support": { "issues": "https://github.com/nullivex/lib-array2xml/issues", "source": "https://github.com/nullivex/lib-array2xml/tree/master" }, "time": "2019-03-29T20:06:56+00:00" }, { "name": "phar-io/manifest", "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "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/2.0.3" }, "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", "reference": "bae7c545bef187884426f042434e561ab1ddb182" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", "reference": "bae7c545bef187884426f042434e561ab1ddb182", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { "classmap": [ "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { "name": "Arne Blankerts", "email": "arne@blankerts.de", "role": "Developer" }, { "name": "Sebastian Heuer", "email": "sebastian@phpeople.de", "role": "Developer" }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de", "role": "Developer" } ], "description": "Library for handling version information and constraints", "support": { "issues": "https://github.com/phar-io/version/issues", "source": "https://github.com/phar-io/version/tree/3.1.0" }, "time": "2021-02-23T14:00:09+00:00" }, { "name": "phpdocumentor/reflection-common", "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { "dev-2.x": "2.x-dev" } }, "autoload": { "psr-4": { "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Jaap van Otterdijk", "email": "opensource@ijaap.nl" } ], "description": "Common reflection classes used by phpdocumentor to reflect the code structure", "homepage": "http://www.phpdoc.org", "keywords": [ "FQSEN", "phpDocumentor", "phpdoc", "reflection", "static analysis" ], "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": "phpspec/prophecy", "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", "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.13.0" }, "time": "2021-03-17T13:42:18+00:00" }, { "name": "phpunit/php-code-coverage", "version": "9.2.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", "reference": "f6293e1b30a2354e8428e004689671b83871edde" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", "reference": "f6293e1b30a2354e8428e004689671b83871edde", "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.6" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], "time": "2021-03-28T07:26:59+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.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", "reference": "ea8c2dfb1065eb35a79b3681eee6e6fb0a6f273b" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ea8c2dfb1065eb35a79b3681eee6e6fb0a6f273b", "reference": "ea8c2dfb1065eb35a79b3681eee6e6fb0a6f273b", "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.3", "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.4", "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.9" }, "funding": [ { "url": "https://phpunit.de/donate.html", "type": "custom" }, { "url": "https://github.com/sebastianbergmann", "type": "github" } ], "time": "2021-08-31T06:47:40+00:00" }, { "name": "psalm/plugin-phpunit", "version": "0.15.2", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", "reference": "31d15bbc0169a3c454e495e03fd8a6ccb663661b" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/31d15bbc0169a3c454e495e03fd8a6ccb663661b", "reference": "31d15bbc0169a3c454e495e03fd8a6ccb663661b", "shasum": "" }, "require": { "composer/package-versions-deprecated": "^1.10", "composer/semver": "^1.4 || ^2.0 || ^3.0", "ext-simplexml": "*", "php": "^7.1 || ^8.0", "vimeo/psalm": "dev-master || dev-4.x || ^4.0" }, "conflict": { "phpunit/phpunit": "<7.5" }, "require-dev": { "codeception/codeception": "^4.0.3", "php": "^7.3 || ^8.0", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", "squizlabs/php_codesniffer": "^3.3.1", "weirdan/codeception-psalm-module": "^0.11.0", "weirdan/prophecy-shim": "^1.0 || ^2.0" }, "type": "psalm-plugin", "extra": { "psalm": { "pluginClass": "Psalm\\PhpUnitPlugin\\Plugin" } }, "autoload": { "psr-4": { "Psalm\\PhpUnitPlugin\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Matt Brown", "email": "github@muglug.com" } ], "description": "Psalm plugin for PHPUnit", "support": { "issues": "https://github.com/psalm/psalm-plugin-phpunit/issues", "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.15.2" }, "time": "2021-05-29T19:11:38+00:00" }, { "name": "psr/container", "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { "php": ">=7.2.0" }, "type": "library", "autoload": { "psr-4": { "Psr\\Container\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "PHP-FIG", "homepage": "https://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/1.1.1" }, "time": "2021-03-05T17:36:06+00:00" }, { "name": "psr/log", "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "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": "https://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.4" }, "time": "2021-05-03T11:20:27+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.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49", "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49", "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.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], "time": "2021-06-11T13:31:12+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/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.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914", "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914", "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.4" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], "time": "2021-06-15T12:49:02+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.6.0", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ffced0d2c8fa8e6cdc4d695a743271fab6c38625", "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625", "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": "2021-04-09T00:54:41+00:00" }, { "name": "symfony/console", "version": "v5.3.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/console/zipball/8b1008344647462ae6ec57559da166c2bfa5e16a", "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.1|^2", "symfony/string": "^5.1" }, "conflict": { "psr/log": ">=3", "symfony/dependency-injection": "<4.4", "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", "symfony/lock": "<4.4", "symfony/process": "<4.4" }, "provide": { "psr/log-implementation": "1.0|2.0" }, "require-dev": { "psr/log": "^1|^2", "symfony/config": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0", "symfony/event-dispatcher": "^4.4|^5.0", "symfony/lock": "^4.4|^5.0", "symfony/process": "^4.4|^5.0", "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "psr/log": "For using the console logger", "symfony/event-dispatcher": "", "symfony/lock": "", "symfony/process": "" }, "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" }, "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": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "keywords": [ "cli", "command line", "console", "terminal" ], "support": { "source": "https://github.com/symfony/console/tree/v5.3.7" }, "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-08-25T20:02:16+00:00" }, { "name": "symfony/deprecation-contracts", "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", "shasum": "" }, "require": { "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { "dev-main": "2.4-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/v2.4.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-03-23T23:28:01+00:00" }, { "name": "symfony/polyfill-ctype", "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", "shasum": "" }, "require": { "php": ">=7.1" }, "suggest": { "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { "dev-main": "1.23-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.23.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-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-intl-grapheme", "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", "reference": "16880ba9c5ebe3642d1995ab866db29270b36535" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/16880ba9c5ebe3642d1995ab866db29270b36535", "reference": "16880ba9c5ebe3642d1995ab866db29270b36535", "shasum": "" }, "require": { "php": ">=7.1" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { "branch-alias": { "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { "Symfony\\Polyfill\\Intl\\Grapheme\\": "" }, "files": [ "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Nicolas Grekas", "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for intl's grapheme_* functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", "grapheme", "intl", "polyfill", "portable", "shim" ], "support": { "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.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": "2021-05-27T12:26:48+00:00" }, { "name": "symfony/polyfill-intl-normalizer", "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", "shasum": "" }, "require": { "php": ">=7.1" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { "branch-alias": { "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, "files": [ "bootstrap.php" ], "classmap": [ "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Nicolas Grekas", "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for intl's Normalizer class and related functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", "intl", "normalizer", "polyfill", "portable", "shim" ], "support": { "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.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-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-mbstring", "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", "shasum": "" }, "require": { "php": ">=7.1" }, "suggest": { "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" }, "files": [ "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Nicolas Grekas", "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", "mbstring", "polyfill", "portable", "shim" ], "support": { "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.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": "2021-05-27T12:26:48+00:00" }, { "name": "symfony/polyfill-php73", "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", "shasum": "" }, "require": { "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { "Symfony\\Polyfill\\Php73\\": "" }, "files": [ "bootstrap.php" ], "classmap": [ "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Nicolas Grekas", "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", "polyfill", "portable", "shim" ], "support": { "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.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-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-php80", "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", "shasum": "" }, "require": { "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { "dev-main": "1.23-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.23.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": "2021-07-28T13:41:28+00:00" }, { "name": "symfony/service-contracts", "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/container": "^1.1" }, "suggest": { "symfony/service-implementation": "" }, "type": "library", "extra": { "branch-alias": { "dev-main": "2.4-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/v2.4.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-04-01T10:43:52+00:00" }, { "name": "symfony/string", "version": "v5.3.7", "source": { "type": "git", "url": "https://github.com/symfony/string.git", "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/string/zipball/8d224396e28d30f81969f083a58763b8b9ceb0a5", "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "~1.15" }, "require-dev": { "symfony/error-handler": "^4.4|^5.0", "symfony/http-client": "^4.4|^5.0", "symfony/translation-contracts": "^1.1|^2", "symfony/var-exporter": "^4.4|^5.0" }, "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\String\\": "" }, "files": [ "Resources/functions.php" ], "exclude-from-classmap": [ "/Tests/" ] }, "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": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", "homepage": "https://symfony.com", "keywords": [ "grapheme", "i18n", "string", "unicode", "utf-8", "utf8" ], "support": { "source": "https://github.com/symfony/string/tree/v5.3.7" }, "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-08-26T08:00:08+00:00" }, { "name": "theseer/tokenizer", "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "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/1.2.1" }, "funding": [ { "url": "https://github.com/theseer", "type": "github" } ], "time": "2021-07-28T10:34:58+00:00" }, { "name": "vimeo/psalm", "version": "4.9.3", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", "reference": "4c262932602b9bbab5020863d1eb22d49de0dbf4" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/vimeo/psalm/zipball/4c262932602b9bbab5020863d1eb22d49de0dbf4", "reference": "4c262932602b9bbab5020863d1eb22d49de0dbf4", "shasum": "" }, "require": { "amphp/amp": "^2.4.2", "amphp/byte-stream": "^1.5", "composer/package-versions-deprecated": "^1.8.0", "composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/xdebug-handler": "^1.1 || ^2.0", "dnoegel/php-xdg-base-dir": "^0.1.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-simplexml": "*", "ext-tokenizer": "*", "felixfbecker/advanced-json-rpc": "^3.0.3", "felixfbecker/language-server-protocol": "^1.5", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", "nikic/php-parser": "^4.12", "openlss/lib-array2xml": "^1.0", "php": "^7.1|^8", "sebastian/diff": "^3.0 || ^4.0", "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", "webmozart/path-util": "^2.3" }, "provide": { "psalm/psalm": "self.version" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.2", "brianium/paratest": "^4.0||^6.0", "ext-curl": "*", "php-parallel-lint/php-parallel-lint": "^1.2", "phpdocumentor/reflection-docblock": "^5", "phpmyadmin/sql-parser": "5.1.0||dev-master", "phpspec/prophecy": ">=1.9.0", "phpunit/phpunit": "^9.0", "psalm/plugin-phpunit": "^0.16", "slevomat/coding-standard": "^7.0", "squizlabs/php_codesniffer": "^3.5", "symfony/process": "^4.3 || ^5.0", "weirdan/prophecy-shim": "^1.0 || ^2.0" }, "suggest": { "ext-igbinary": "^2.0.5" }, "bin": [ "psalm", "psalm-language-server", "psalm-plugin", "psalm-refactor", "psalter" ], "type": "library", "extra": { "branch-alias": { "dev-master": "4.x-dev", "dev-3.x": "3.x-dev", "dev-2.x": "2.x-dev", "dev-1.x": "1.x-dev" } }, "autoload": { "psr-4": { "Psalm\\": "src/Psalm/" }, "files": [ "src/functions.php", "src/spl_object_id.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Matthew Brown" } ], "description": "A static analysis tool for finding errors in PHP applications", "keywords": [ "code", "inspection", "php" ], "support": { "issues": "https://github.com/vimeo/psalm/issues", "source": "https://github.com/vimeo/psalm/tree/4.9.3" }, "time": "2021-08-14T16:19:38+00:00" }, { "name": "webmozart/assert", "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { "phpstan/phpstan": "<0.12.20", "vimeo/psalm": "<4.6.1 || 4.6.2" }, "require-dev": { "phpunit/phpunit": "^8.5.13" }, "type": "library", "extra": { "branch-alias": { "dev-master": "1.10-dev" } }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Bernhard Schussek", "email": "bschussek@gmail.com" } ], "description": "Assertions to validate method input/output with nice error messages.", "keywords": [ "assert", "check", "validate" ], "support": { "issues": "https://github.com/webmozarts/assert/issues", "source": "https://github.com/webmozarts/assert/tree/1.10.0" }, "time": "2021-03-09T10:59:23+00:00" }, { "name": "webmozart/path-util", "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/webmozart/path-util.git", "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", "shasum": "" }, "require": { "php": ">=5.3.3", "webmozart/assert": "~1.0" }, "require-dev": { "phpunit/phpunit": "^4.6", "sebastian/version": "^1.0.1" }, "type": "library", "extra": { "branch-alias": { "dev-master": "2.3-dev" } }, "autoload": { "psr-4": { "Webmozart\\PathUtil\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Bernhard Schussek", "email": "bschussek@gmail.com" } ], "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", "support": { "issues": "https://github.com/webmozart/path-util/issues", "source": "https://github.com/webmozart/path-util/tree/2.3.0" }, "time": "2015-12-17T08:42:14+00:00" } ], "aliases": [], "minimum-stability": "stable", "stability-flags": [], "prefer-stable": false, "prefer-lowest": false, "platform": { "php": "^7.3 || ~8.0.0 || ~8.1.0" }, "platform-dev": [], "plugin-api-version": "2.0.0" } config/replacements.php000064400000042612144760110750011216 0ustar00 'zendframework/zendframework', 'zend-developer-tools/toolbar/bjy' => 'zend-developer-tools/toolbar/bjy', 'zend-developer-tools/toolbar/doctrine' => 'zend-developer-tools/toolbar/doctrine', // NAMESPACES // Zend Framework components 'Zend\\AuraDi\\Config' => 'Laminas\\AuraDi\\Config', 'Zend\\Authentication' => 'Laminas\\Authentication', 'Zend\\Barcode' => 'Laminas\\Barcode', 'Zend\\Cache' => 'Laminas\\Cache', 'Zend\\Captcha' => 'Laminas\\Captcha', 'Zend\\Code' => 'Laminas\\Code', 'ZendCodingStandard\\Sniffs' => 'LaminasCodingStandard\\Sniffs', 'ZendCodingStandard\\Utils' => 'LaminasCodingStandard\\Utils', 'Zend\\ComponentInstaller' => 'Laminas\\ComponentInstaller', 'Zend\\Config' => 'Laminas\\Config', 'Zend\\ConfigAggregator' => 'Laminas\\ConfigAggregator', 'Zend\\ConfigAggregatorModuleManager' => 'Laminas\\ConfigAggregatorModuleManager', 'Zend\\ConfigAggregatorParameters' => 'Laminas\\ConfigAggregatorParameters', 'Zend\\Console' => 'Laminas\\Console', 'Zend\\ContainerConfigTest' => 'Laminas\\ContainerConfigTest', 'Zend\\Crypt' => 'Laminas\\Crypt', 'Zend\\Db' => 'Laminas\\Db', 'ZendDeveloperTools' => 'Laminas\\DeveloperTools', 'Zend\\Di' => 'Laminas\\Di', 'Zend\\Diactoros' => 'Laminas\\Diactoros', 'ZendDiagnostics\\Check' => 'Laminas\\Diagnostics\\Check', 'ZendDiagnostics\\Result' => 'Laminas\\Diagnostics\\Result', 'ZendDiagnostics\\Runner' => 'Laminas\\Diagnostics\\Runner', 'Zend\\Dom' => 'Laminas\\Dom', 'Zend\\Escaper' => 'Laminas\\Escaper', 'Zend\\EventManager' => 'Laminas\\EventManager', 'Zend\\Feed' => 'Laminas\\Feed', 'Zend\\File' => 'Laminas\\File', 'Zend\\Filter' => 'Laminas\\Filter', 'Zend\\Form' => 'Laminas\\Form', 'Zend\\Http' => 'Laminas\\Http', 'Zend\\HttpHandlerRunner' => 'Laminas\\HttpHandlerRunner', 'Zend\\Hydrator' => 'Laminas\\Hydrator', 'Zend\\I18n' => 'Laminas\\I18n', 'Zend\\InputFilter' => 'Laminas\\InputFilter', 'Zend\\Json' => 'Laminas\\Json', 'Zend\\Ldap' => 'Laminas\\Ldap', 'Zend\\Loader' => 'Laminas\\Loader', 'Zend\\Log' => 'Laminas\\Log', 'Zend\\Mail' => 'Laminas\\Mail', 'Zend\\Math' => 'Laminas\\Math', 'Zend\\Memory' => 'Laminas\\Memory', 'Zend\\Mime' => 'Laminas\\Mime', 'Zend\\ModuleManager' => 'Laminas\\ModuleManager', 'Zend\\Mvc' => 'Laminas\\Mvc', 'Zend\\Navigation' => 'Laminas\\Navigation', 'Zend\\Paginator' => 'Laminas\\Paginator', 'Zend\\Permissions' => 'Laminas\\Permissions', 'Zend\\Pimple\\Config' => 'Laminas\\Pimple\\Config', 'Zend\\ProblemDetails' => 'Mezzio\\ProblemDetails', 'Zend\\ProgressBar' => 'Laminas\\ProgressBar', 'Zend\\Psr7Bridge' => 'Laminas\\Psr7Bridge', 'Zend\\Router' => 'Laminas\\Router', 'Zend\\Serializer' => 'Laminas\\Serializer', 'Zend\\Server' => 'Laminas\\Server', 'Zend\\ServiceManager' => 'Laminas\\ServiceManager', 'ZendService\\ReCaptcha' => 'Laminas\\ReCaptcha', 'ZendService\\Twitter' => 'Laminas\\Twitter', 'Zend\\Session' => 'Laminas\\Session', 'Zend\\SkeletonInstaller' => 'Laminas\\SkeletonInstaller', 'Zend\\Soap' => 'Laminas\\Soap', 'Zend\\Stdlib' => 'Laminas\\Stdlib', 'Zend\\Stratigility' => 'Laminas\\Stratigility', 'Zend\\Tag' => 'Laminas\\Tag', 'Zend\\Test' => 'Laminas\\Test', 'Zend\\Text' => 'Laminas\\Text', 'Zend\\Uri' => 'Laminas\\Uri', 'Zend\\Validator' => 'Laminas\\Validator', 'Zend\\View' => 'Laminas\\View', 'ZendXml' => 'Laminas\\Xml', 'Zend\\Xml2Json' => 'Laminas\\Xml2Json', 'Zend\\XmlRpc' => 'Laminas\\XmlRpc', 'ZendOAuth' => 'Laminas\\OAuth', // class ZendAcl in zend-expressive-authorization-acl 'ZendAcl' => 'LaminasAcl', 'Zend\\Expressive\\Authorization\\Acl\\ZendAcl' => 'Mezzio\\Authorization\\Acl\\LaminasAcl', // class ZendHttpClientDecorator in zend-feed 'ZendHttp' => 'LaminasHttp', // class ZendModuleProvider in zend-config-aggregator-modulemanager 'ZendModule' => 'LaminasModule', // class ZendRbac in zend-expressive-authorization-rbac 'ZendRbac' => 'LaminasRbac', 'Zend\\Expressive\\Authorization\\Rbac\\ZendRbac' => 'Mezzio\\Authorization\\Rbac\\LaminasRbac', // class ZendRouter in zend-expressive-router-zendrouter 'ZendRouter' => 'LaminasRouter', 'Zend\\Expressive\\Router\\ZendRouter' => 'Mezzio\\Router\\LaminasRouter', // class ZendViewRenderer in zend-expressive-zendviewrenderer 'ZendViewRenderer' => 'LaminasViewRenderer', 'Zend\\Expressive\\ZendView\\ZendViewRenderer' => 'Mezzio\\LaminasView\\LaminasViewRenderer', 'a\\Zend' => 'a\\Zend', 'b\\Zend' => 'b\\Zend', 'c\\Zend' => 'c\\Zend', 'd\\Zend' => 'd\\Zend', 'e\\Zend' => 'e\\Zend', 'f\\Zend' => 'f\\Zend', 'g\\Zend' => 'g\\Zend', 'h\\Zend' => 'h\\Zend', 'i\\Zend' => 'i\\Zend', 'j\\Zend' => 'j\\Zend', 'k\\Zend' => 'k\\Zend', 'l\\Zend' => 'l\\Zend', 'm\\Zend' => 'm\\Zend', 'n\\Zend' => 'n\\Zend', 'o\\Zend' => 'o\\Zend', 'p\\Zend' => 'p\\Zend', 'q\\Zend' => 'q\\Zend', 'r\\Zend' => 'r\\Zend', 's\\Zend' => 's\\Zend', 't\\Zend' => 't\\Zend', 'u\\Zend' => 'u\\Zend', 'v\\Zend' => 'v\\Zend', 'w\\Zend' => 'w\\Zend', 'x\\Zend' => 'x\\Zend', 'y\\Zend' => 'y\\Zend', 'z\\Zend' => 'z\\Zend', // Expressive 'Zend\\Expressive' => 'Mezzio', 'ZendAuthentication' => 'LaminasAuthentication', 'ZendAcl' => 'LaminasAcl', 'ZendRbac' => 'LaminasRbac', 'ZendRouter' => 'LaminasRouter', 'ExpressiveUrlGenerator' => 'MezzioUrlGenerator', 'ExpressiveInstaller' => 'MezzioInstaller', // Apigility 'ZF\\Apigility' => 'Laminas\\ApiTools', 'ZF\\ApiProblem' => 'Laminas\\ApiTools\\ApiProblem', 'ZF\\AssetManager' => 'Laminas\\ApiTools\\AssetManager', 'ZF\\ComposerAutoloading' => 'Laminas\\ComposerAutoloading', 'ZF\\Configuration' => 'Laminas\\ApiTools\\Configuration', 'ZF\\ContentNegotiation' => 'Laminas\\ApiTools\\ContentNegotiation', 'ZF\\ContentValidation' => 'Laminas\\ApiTools\\ContentValidation', 'ZF\\DevelopmentMode' => 'Laminas\\DevelopmentMode', 'ZF\\Doctrine\\QueryBuilder' => 'Laminas\\ApiTools\\Doctrine\\QueryBuilder', 'ZF\\Hal' => 'Laminas\\ApiTools\\Hal', 'ZF\\HttpCache' => 'Laminas\\ApiTools\\HttpCache', 'ZF\\MvcAuth' => 'Laminas\\ApiTools\\MvcAuth', 'ZF\\OAuth2' => 'Laminas\\ApiTools\\OAuth2', 'ZF\\Rest' => 'Laminas\\ApiTools\\Rest', 'ZF\\Rpc' => 'Laminas\\ApiTools\\Rpc', 'ZF\\Versioning' => 'Laminas\\ApiTools\\Versioning', 'a\\ZF' => 'a\\ZF', 'b\\ZF' => 'b\\ZF', 'c\\ZF' => 'c\\ZF', 'd\\ZF' => 'd\\ZF', 'e\\ZF' => 'e\\ZF', 'f\\ZF' => 'f\\ZF', 'g\\ZF' => 'g\\ZF', 'h\\ZF' => 'h\\ZF', 'i\\ZF' => 'i\\ZF', 'j\\ZF' => 'j\\ZF', 'k\\ZF' => 'k\\ZF', 'l\\ZF' => 'l\\ZF', 'm\\ZF' => 'm\\ZF', 'n\\ZF' => 'n\\ZF', 'o\\ZF' => 'o\\ZF', 'p\\ZF' => 'p\\ZF', 'q\\ZF' => 'q\\ZF', 'r\\ZF' => 'r\\ZF', 's\\ZF' => 's\\ZF', 't\\ZF' => 't\\ZF', 'u\\ZF' => 'u\\ZF', 'v\\ZF' => 'v\\ZF', 'w\\ZF' => 'w\\ZF', 'x\\ZF' => 'x\\ZF', 'y\\ZF' => 'y\\ZF', 'z\\ZF' => 'z\\ZF', 'ApigilityModuleInterface' => 'ApiToolsModuleInterface', 'ApigilityProviderInterface' => 'ApiToolsProviderInterface', 'ApigilityVersionController' => 'ApiToolsVersionController', // PACKAGES // ZF components, MVC 'zendframework/skeleton-application' => 'laminas/skeleton-application', 'zendframework/zend-auradi-config' => 'laminas/laminas-auradi-config', 'zendframework/zend-authentication' => 'laminas/laminas-authentication', 'zendframework/zend-barcode' => 'laminas/laminas-barcode', 'zendframework/zend-cache' => 'laminas/laminas-cache', 'zendframework/zend-captcha' => 'laminas/laminas-captcha', 'zendframework/zend-code' => 'laminas/laminas-code', 'zendframework/zend-coding-standard' => 'laminas/laminas-coding-standard', 'zendframework/zend-component-installer' => 'laminas/laminas-component-installer', 'zendframework/zend-composer-autoloading' => 'laminas/laminas-composer-autoloading', 'zendframework/zend-config-aggregator' => 'laminas/laminas-config-aggregator', 'zendframework/zend-config' => 'laminas/laminas-config', 'zendframework/zend-console' => 'laminas/laminas-console', 'zendframework/zend-container-config-test' => 'laminas/laminas-container-config-test', 'zendframework/zend-crypt' => 'laminas/laminas-crypt', 'zendframework/zend-db' => 'laminas/laminas-db', 'zendframework/zend-developer-tools' => 'laminas/laminas-developer-tools', 'zendframework/zend-diactoros' => 'laminas/laminas-diactoros', 'zendframework/zenddiagnostics' => 'laminas/laminas-diagnostics', 'zendframework/zend-di' => 'laminas/laminas-di', 'zendframework/zend-dom' => 'laminas/laminas-dom', 'zendframework/zend-escaper' => 'laminas/laminas-escaper', 'zendframework/zend-eventmanager' => 'laminas/laminas-eventmanager', 'zendframework/zend-feed' => 'laminas/laminas-feed', 'zendframework/zend-file' => 'laminas/laminas-file', 'zendframework/zend-filter' => 'laminas/laminas-filter', 'zendframework/zend-form' => 'laminas/laminas-form', 'zendframework/zend-httphandlerrunner' => 'laminas/laminas-httphandlerrunner', 'zendframework/zend-http' => 'laminas/laminas-http', 'zendframework/zend-hydrator' => 'laminas/laminas-hydrator', 'zendframework/zend-i18n' => 'laminas/laminas-i18n', 'zendframework/zend-i18n-resources' => 'laminas/laminas-i18n-resources', 'zendframework/zend-inputfilter' => 'laminas/laminas-inputfilter', 'zendframework/zend-json' => 'laminas/laminas-json', 'zendframework/zend-json-server' => 'laminas/laminas-json-server', 'zendframework/zend-ldap' => 'laminas/laminas-ldap', 'zendframework/zend-loader' => 'laminas/laminas-loader', 'zendframework/zend-log' => 'laminas/laminas-log', 'zendframework/zend-mail' => 'laminas/laminas-mail', 'zendframework/zend-math' => 'laminas/laminas-math', 'zendframework/zend-memory' => 'laminas/laminas-memory', 'zendframework/zend-mime' => 'laminas/laminas-mime', 'zendframework/zend-modulemanager' => 'laminas/laminas-modulemanager', 'zendframework/zend-mvc' => 'laminas/laminas-mvc', 'zendframework/zend-navigation' => 'laminas/laminas-navigation', 'zendframework/zend-oauth' => 'laminas/laminas-oauth', 'zendframework/zend-paginator' => 'laminas/laminas-paginator', 'zendframework/zend-permissions-acl' => 'laminas/laminas-permissions-acl', 'zendframework/zend-permissions-rbac' => 'laminas/laminas-permissions-rbac', 'zendframework/zend-pimple-config' => 'laminas/laminas-pimple-config', 'zendframework/zend-progressbar' => 'laminas/laminas-progressbar', 'zendframework/zend-psr7bridge' => 'laminas/laminas-psr7bridge', 'zendframework/zend-recaptcha' => 'laminas/laminas-recaptcha', 'zendframework/zend-router' => 'laminas/laminas-router', 'zendframework/zend-serializer' => 'laminas/laminas-serializer', 'zendframework/zend-server' => 'laminas/laminas-server', 'zendframework/zend-servicemanager' => 'laminas/laminas-servicemanager', 'zendframework/zendservice-recaptcha' => 'laminas/laminas-recaptcha', 'zendframework/zendservice-twitter' => 'laminas/laminas-twitter', 'zendframework/zend-session' => 'laminas/laminas-session', 'zendframework/zend-skeleton-installer' => 'laminas/laminas-skeleton-installer', 'zendframework/zend-soap' => 'laminas/laminas-soap', 'zendframework/zend-stdlib' => 'laminas/laminas-stdlib', 'zendframework/zend-stratigility' => 'laminas/laminas-stratigility', 'zendframework/zend-tag' => 'laminas/laminas-tag', 'zendframework/zend-test' => 'laminas/laminas-test', 'zendframework/zend-text' => 'laminas/laminas-text', 'zendframework/zend-uri' => 'laminas/laminas-uri', 'zendframework/zend-validator' => 'laminas/laminas-validator', 'zendframework/zend-view' => 'laminas/laminas-view', 'zendframework/zend-xml2json' => 'laminas/laminas-xml2json', 'zendframework/zend-xml' => 'laminas/laminas-xml', 'zendframework/zend-xmlrpc' => 'laminas/laminas-xmlrpc', // Expressive packages 'zendframework/zend-expressive' => 'mezzio/mezzio', 'zendframework/zend-expressive-zendrouter' => 'mezzio/mezzio-laminasrouter', 'zendframework/zend-problem-details' => 'mezzio/mezzio-problem-details', 'zendframework/zend-expressive-zendviewrenderer' => 'mezzio/mezzio-laminasviewrenderer', // Apigility packages 'zfcampus/apigility-documentation' => 'laminas-api-tools/documentation', 'zfcampus/statuslib-example' => 'laminas-api-tools/statuslib-example', 'zfcampus/zf-apigility' => 'laminas-api-tools/api-tools', 'zfcampus/zf-api-problem' => 'laminas-api-tools/api-tools-api-problem', 'zfcampus/zf-asset-manager' => 'laminas-api-tools/api-tools-asset-manager', 'zfcampus/zf-configuration' => 'laminas-api-tools/api-tools-configuration', 'zfcampus/zf-content-negotiation' => 'laminas-api-tools/api-tools-content-negotiation', 'zfcampus/zf-content-validation' => 'laminas-api-tools/api-tools-content-validation', 'zfcampus/zf-development-mode' => 'laminas/laminas-development-mode', 'zfcampus/zf-doctrine-querybuilder' => 'laminas-api-tools/api-tools-doctrine-querybuilder', 'zfcampus/zf-hal' => 'laminas-api-tools/api-tools-hal', 'zfcampus/zf-http-cache' => 'laminas-api-tools/api-tools-http-cache', 'zfcampus/zf-mvc-auth' => 'laminas-api-tools/api-tools-mvc-auth', 'zfcampus/zf-oauth2' => 'laminas-api-tools/api-tools-oauth2', 'zfcampus/zf-rest' => 'laminas-api-tools/api-tools-rest', 'zfcampus/zf-rpc' => 'laminas-api-tools/api-tools-rpc', 'zfcampus/zf-versioning' => 'laminas-api-tools/api-tools-versioning', // CONFIG KEYS, SCRIPT NAMES, ETC // ZF components '::fromZend' => '::fromLaminas', // psr7bridge '::toZend' => '::toLaminas', // psr7bridge 'use_zend_loader' => 'use_laminas_loader', // zend-modulemanager 'zend-config' => 'laminas-config', 'zend-developer-tools/' => 'laminas-developer-tools/', 'zend-tag-cloud' => 'laminas-tag-cloud', 'zenddevelopertools' => 'laminas-developer-tools', 'zendbarcode' => 'laminasbarcode', 'ZendBarcode' => 'LaminasBarcode', 'zendcache' => 'laminascache', 'ZendCache' => 'LaminasCache', 'zendconfig' => 'laminasconfig', 'ZendConfig' => 'LaminasConfig', 'zendfeed' => 'laminasfeed', 'ZendFeed' => 'LaminasFeed', 'zendfilter' => 'laminasfilter', 'ZendFilter' => 'LaminasFilter', 'zendform' => 'laminasform', 'ZendForm' => 'LaminasForm', 'zendi18n' => 'laminasi18n', 'ZendI18n' => 'LaminasI18n', 'zendinputfilter' => 'laminasinputfilter', 'ZendInputFilter' => 'LaminasInputFilter', 'zendlog' => 'laminaslog', 'ZendLog' => 'LaminasLog', 'zendmail' => 'laminasmail', 'ZendMail' => 'LaminasMail', 'zendmvc' => 'laminasmvc', 'ZendMvc' => 'LaminasMvc', 'zendpaginator' => 'laminaspaginator', 'ZendPaginator' => 'LaminasPaginator', 'zendserializer' => 'laminasserializer', 'ZendSerializer' => 'LaminasSerializer', 'zendtag' => 'laminastag', 'ZendTag' => 'LaminasTag', 'zendtext' => 'laminastext', 'ZendText' => 'LaminasText', 'zendvalidator' => 'laminasvalidator', 'ZendValidator' => 'LaminasValidator', 'zendview' => 'laminasview', 'ZendView' => 'LaminasView', 'zend-framework.flf' => 'laminas-project.flf', // Expressive-related "'zend-expressive'" => "'mezzio'", '"zend-expressive"' => '"mezzio"', 'zend-expressive.' => 'mezzio.', 'zend-expressive-authorization' => 'mezzio-authorization', 'zend-expressive-hal' => 'mezzio-hal', 'zend-expressive-session' => 'mezzio-session', 'zend-expressive-swoole' => 'mezzio-swoole', 'zend-expressive-tooling' => 'mezzio-tooling', // Apigility-related "'zf-apigility'" => "'api-tools'", '"zf-apigility"' => '"api-tools"', 'zf-apigility/' => 'api-tools/', 'zf-apigility-admin' => 'api-tools-admin', 'zf-content-negotiation' => 'api-tools-content-negotiation', 'zf-hal' => 'api-tools-hal', 'zf-rest' => 'api-tools-rest', 'zf-rpc' => 'api-tools-rpc', 'zf-content-validation' => 'api-tools-content-validation', 'zf-apigility-ui' => 'api-tools-ui', 'zf-apigility-documentation-blueprint' => 'api-tools-documentation-blueprint', 'zf-apigility-documentation-swagger' => 'api-tools-documentation-swagger', 'zf-apigility-welcome' => 'api-tools-welcome', 'zf-api-problem' => 'api-tools-api-problem', 'zf-configuration' => 'api-tools-configuration', 'zf-http-cache' => 'api-tools-http-cache', 'zf-mvc-auth' => 'api-tools-mvc-auth', 'zf-oauth2' => 'api-tools-oauth2', 'zf-versioning' => 'api-tools-versioning', 'ZfApigilityDoctrineQueryProviderManager' => 'LaminasApiToolsDoctrineQueryProviderManager', 'ZfApigilityDoctrineQueryCreateFilterManager' => 'LaminasApiToolsDoctrineQueryCreateFilterManager', 'zf-apigility-doctrine' => 'api-tools-doctrine', 'zf-development-mode' => 'laminas-development-mode', 'zf-doctrine-querybuilder' => 'api-tools-doctrine-querybuilder', // 3rd party Apigility packages 'api-skeletons/zf-' => 'api-skeletons/zf-', // api-skeletons packages 'zf-oauth2-' => 'zf-oauth2-', // api-skeletons OAuth2-related packages 'ZF\\OAuth2\\Client' => 'ZF\\OAuth2\\Client', // api-skeletons/zf-oauth2-client 'ZF\\OAuth2\\Doctrine' => 'ZF\\OAuth2\\Doctrine', // api-skeletons/zf-oauth2-doctrine ]; psalm-baseline.xml000064400000031536144760110750010177 0ustar00 'ZendAcl' => 'LaminasAcl' 'ZendRbac' => 'LaminasRbac' 'ZendRouter' => 'LaminasRouter' $class $class include __DIR__ . '/../../../autoload.php' load $class $class $class $class $class $class $class $loaded[$class] ClassLoader $namespaces[$check] $namespaces[$check] include __DIR__ . '/../../../autoload.php' include __DIR__ . '/../vendor/autoload.php' include getenv('COMPOSER_VENDOR_DIR') . '/autoload.php' getenv('COMPOSER_VENDOR_DIR') getenv('COMPOSER_VENDOR_DIR') include getenv('COMPOSER_VENDOR_DIR') . '/autoload.php' $keys $value $value $value $value function ($value) { function ($value) { function ($value, array $keys) { function ($value, array $keys) { replaceDependencyConfiguration replaceDependencyFactories replaceDependencyServices $config $newKey $newKey $newKey $target [$key] $config[$key] $config['aliases'][$alias] $config['aliases'][$service] $config['aliases'][$service] $aliases[$name] $config[$key] $keys[$key] $rewritten[$newKey] $rewritten[$newKey] $rewritten[$newKey] $this->exactReplacements[$value] $aliases[$name] $a[$key] $a[$key] $a[] $config $config $config[$key] $config['factories'][$replacedService] $config['services'][$replacedService] $data $factory $factory $key $key $name $newKey $newValue $notIn[] $result $rewritten[$key] $rewritten[$newKey] $rewritten[$newKey][] $serviceInstance $serviceInstance $target $value $value init onMergeConfig ModuleEvent ModuleManager $replacement $replacement $original $original $original $replacement $this->replacements $this->replacements new $legacy() testLegacyClassIsAliasToLaminas testReverseAliasCreated testTypeHint testLegacyClassIsAliasToLaminas invalidServiceManagerConfiguration testRewritesNestedKeys testServiceManagerServiceInstancesCanBeHandled testWillSkipInvalidConfigurations $config $config $expected iterable require $configLocation require $expectedResultLocation $event $moduleManager testInitRegistersListenerWithEventManager testOnMergeConfigProcessesAndReplacesConfigurationPulledFromListener $config $config $expected iterable require $configFile require $expectationsFile testEdgeCases iterable ConfigAbstractFactory ConfigAbstractFactory InvokableFactory InvokableFactory 'Zend\Db\Adapter\Adapter' => 'ZF\Apigility\DbConnectedAdapter' Factory\SlimRouterFactory RouterInterface LazyServiceFactory CacheItemPoolInterface ConfigFactory ConfigFactory ConfigFactory ConfigFactory ConfigFactory ConfigFactory Csp DisplayPostHandler Engine EventDispatcherInterface Factory\CachePoolFactory Factory\EventDispatcherFactory Factory\MailTransport Factory\PlatesFunctionsDelegator FeedReaderHttpClientInterface Feed\HttpPlugClientFactory Handler\ComicsPageHandler Handler\ComicsPageHandlerFactory Handler\HomePageHandler Handler\HomePageHandlerFactory Handler\PageHandlerFactory Handler\PageHandlerFactory Handler\ResumePageHandler Handler\ResumePageHandler Middleware\ContentSecurityPolicyMiddlewareFactory Middleware\DisplayBlogPostHandlerDelegator Middleware\RedirectAmpPagesMiddleware Middleware\RedirectAmpPagesMiddlewareFactory Middleware\RedirectsMiddleware Middleware\RedirectsMiddleware Middleware\XClacksOverheadMiddleware Middleware\XClacksOverheadMiddleware Middleware\XPoweredByMiddleware Middleware\XPoweredByMiddleware RequestFactory RequestFactoryInterface ResponseFactory ResponseFactoryInterface SessionCachePool SessionCachePool SessionCachePoolFactory \Zend\Expressive\Router OAuth2Client setMergedConfig $listener $listeners attach $this->listeners[$eventName] $this->listeners[$eventName] $this->listeners[$eventName] array $this->listeners $listener ConfigListener $this->listener EventManager $this->eventManager $this->eventManager $this->eventManager psalm.xml.dist000064400000002260144760110750007351 0ustar00 src/Autoloader.php000064400000011746144760110750010161 0ustar00loadClass($class)) { $legacy = $namespaces[$check] . strtr(substr($class, strlen($check)), [ 'ApiTools' => 'Apigility', 'Mezzio' => 'Expressive', 'Laminas' => 'Zend', ]); class_alias($class, $legacy); } }; } /** * @return callable */ private static function createAppendAutoloader(array $namespaces, ArrayObject $loaded) { /** * @param string $class Class name to autoload * @return void */ return static function ($class) use ($namespaces, $loaded) { $segments = explode('\\', $class); if ($segments[0] === 'ZendService' && isset($segments[1])) { $segments[0] .= '\\' . $segments[1]; unset($segments[1]); $segments = array_values($segments); } $i = 0; $check = ''; // We are checking segments of the namespace to match quicker while (isset($segments[$i + 1], $namespaces[$check . $segments[$i] . '\\'])) { $check .= $segments[$i] . '\\'; ++$i; } if ($check === '') { return; } $alias = $namespaces[$check] . strtr(substr($class, strlen($check)), [ 'Apigility' => 'ApiTools', 'Expressive' => 'Mezzio', 'Zend' => 'Laminas', 'AbstractZendServer' => 'AbstractZendServer', 'ZendServerDisk' => 'ZendServerDisk', 'ZendServerShm' => 'ZendServerShm', 'ZendMonitor' => 'ZendMonitor', ]); $loaded[$alias] = true; if (class_exists($alias) || interface_exists($alias) || trait_exists($alias)) { class_alias($alias, $class); } }; } } src/ConfigPostProcessor.php000064400000031001144760110750012017 0ustar00 true, 'factories' => true, 'invokables' => true, 'services' => true, ]; /** @var array String keys => string values */ private $exactReplacements = [ 'zend-expressive' => 'mezzio', 'zf-apigility' => 'api-tools', ]; /** @var Replacements */ private $replacements; /** @var callable[] */ private $rulesets; public function __construct() { $this->replacements = new Replacements(); /* Define the rulesets for replacements. * * Each ruleset has the following signature: * * @param mixed $value * @param string[] $keys Full nested key hierarchy leading to the value * @return null|callable * * If no match is made, a null is returned, allowing it to fallback to * the next ruleset in the list. If a match is made, a callback is returned, * and that will be used to perform the replacement on the value. * * The callback should have the following signature: * * @param mixed $value * @param string[] $keys * @return mixed The transformed value */ $this->rulesets = [ // Exact values function ($value) { return is_string($value) && isset($this->exactReplacements[$value]) ? [$this, 'replaceExactValue'] : null; }, // Router (MVC applications) // We do not want to rewrite these. function ($value, array $keys) { $key = array_pop($keys); // Only worried about a top-level "router" key. return $key === 'router' && $keys === [] && is_array($value) ? [$this, 'noopReplacement'] : null; }, // service- and pluginmanager handling function ($value) { return is_array($value) && array_intersect_key(self::SERVICE_MANAGER_KEYS_OF_INTEREST, $value) !== [] ? [$this, 'replaceDependencyConfiguration'] : null; }, // Array values function ($value, array $keys) { return $keys !== [] && is_array($value) ? [$this, '__invoke'] : null; }, ]; } /** * @param string[] $keys Hierarchy of keys, for determining location in * nested configuration. * @return array */ public function __invoke(array $config, array $keys = []) { $rewritten = []; foreach ($config as $key => $value) { // Determine new key from replacements $newKey = is_string($key) ? $this->replace($key, $keys) : $key; // Keep original values with original key, if the key has changed, but only at the top-level. if (empty($keys) && $newKey !== $key) { $rewritten[$key] = $value; } // Perform value replacements, if any $newValue = $this->replace($value, $keys, $newKey); // Key does not already exist and/or is not an array value if (! array_key_exists($newKey, $rewritten) || ! is_array($rewritten[$newKey])) { // Do not overwrite existing values with null values $rewritten[$newKey] = array_key_exists($newKey, $rewritten) && null === $newValue ? $rewritten[$newKey] : $newValue; continue; } // New value is null; nothing to do. if (null === $newValue) { continue; } // Key already exists as an array value, but $value is not an array if (! is_array($newValue)) { $rewritten[$newKey][] = $newValue; continue; } // Key already exists as an array value, and $value is also an array $rewritten[$newKey] = static::merge($rewritten[$newKey], $newValue); } return $rewritten; } /** * Perform substitutions as needed on an individual value. * * The $key is provided to allow fine-grained selection of rewrite rules. * * @param mixed $value * @param string[] $keys Key hierarchy * @param null|int|string $key * @return mixed */ private function replace($value, array $keys, $key = null) { // Add new key to the list of keys. // We do not need to remove it later, as we are working on a copy of the array. $keys[] = $key; // Identify rewrite strategy and perform replacements $rewriteRule = $this->replacementRuleMatch($value, $keys); return $rewriteRule($value, $keys); } /** * Merge two arrays together. * * If an integer key exists in both arrays, the value from the second array * will be appended to the first array. If both values are arrays, they are * merged together, else the value of the second array overwrites the one * of the first array. * * Based on zend-stdlib Zend\Stdlib\ArrayUtils::merge * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) * * @return array */ public static function merge(array $a, array $b) { foreach ($b as $key => $value) { if (! isset($a[$key]) && ! array_key_exists($key, $a)) { $a[$key] = $value; continue; } if (null === $value && array_key_exists($key, $a)) { // Leave as-is if value from $b is null continue; } if (is_int($key)) { $a[] = $value; continue; } if (is_array($value) && is_array($a[$key])) { $a[$key] = static::merge($a[$key], $value); continue; } $a[$key] = $value; } return $a; } /** * @param mixed $value * @param null|int|string $key * @return callable Callable to invoke with value */ private function replacementRuleMatch($value, $key = null) { foreach ($this->rulesets as $ruleset) { $result = $ruleset($value, $key); if (is_callable($result)) { return $result; } } return [$this, 'fallbackReplacement']; } /** * Replace a value using the translation table, if the value is a string. * * @param mixed $value * @return mixed */ private function fallbackReplacement($value) { return is_string($value) ? $this->replacements->replace($value) : $value; } /** * Replace a value matched exactly. * * @param mixed $value * @return mixed */ private function replaceExactValue($value) { return $this->exactReplacements[$value]; } private function replaceDependencyConfiguration(array $config) { $aliases = isset($config['aliases']) && is_array($config['aliases']) ? $this->replaceDependencyAliases($config['aliases']) : []; if ($aliases) { $config['aliases'] = $aliases; } $config = $this->replaceDependencyInvokables($config); $config = $this->replaceDependencyFactories($config); $config = $this->replaceDependencyServices($config); $keys = self::SERVICE_MANAGER_KEYS_OF_INTEREST; foreach ($config as $key => $data) { if (isset($keys[$key])) { continue; } $config[$key] = is_array($data) ? $this->__invoke($data, [$key]) : $data; } return $config; } /** * Rewrite dependency aliases array * * In this case, we want to keep the alias as-is, but rewrite the target. * * We need also provide an additional alias if the alias key is a legacy class. * * @return array */ private function replaceDependencyAliases(array $aliases) { foreach ($aliases as $alias => $target) { if (! is_string($alias) || ! is_string($target)) { continue; } $newTarget = $this->replacements->replace($target); $newAlias = $this->replacements->replace($alias); $notIn = [$newTarget]; $name = $newTarget; while (isset($aliases[$name])) { $notIn[] = $aliases[$name]; $name = $aliases[$name]; } if ($newAlias === $alias && ! in_array($alias, $notIn, true)) { $aliases[$alias] = $newTarget; continue; } if (isset($aliases[$newAlias])) { continue; } if (! in_array($newAlias, $notIn, true)) { $aliases[$alias] = $newAlias; $aliases[$newAlias] = $newTarget; } } return $aliases; } /** * Rewrite dependency invokables array * * In this case, we want to keep the alias as-is, but rewrite the target. * * We need also provide an additional alias if invokable is defined with * an alias which is a legacy class. * * @return array */ private function replaceDependencyInvokables(array $config) { if (empty($config['invokables']) || ! is_array($config['invokables'])) { return $config; } foreach ($config['invokables'] as $alias => $target) { if (! is_string($alias)) { continue; } $newTarget = $this->replacements->replace($target); $newAlias = $this->replacements->replace($alias); if ($alias === $target || isset($config['aliases'][$newAlias])) { $config['invokables'][$alias] = $newTarget; continue; } $config['invokables'][$newAlias] = $newTarget; if ($newAlias === $alias) { continue; } $config['aliases'][$alias] = $newAlias; unset($config['invokables'][$alias]); } return $config; } /** * @param mixed $value * @return mixed Returns $value verbatim. */ private function noopReplacement($value) { return $value; } private function replaceDependencyFactories(array $config) { if (empty($config['factories']) || ! is_array($config['factories'])) { return $config; } foreach ($config['factories'] as $service => $factory) { if (! is_string($service)) { continue; } $replacedService = $this->replacements->replace($service); $factory = is_string($factory) ? $this->replacements->replace($factory) : $factory; $config['factories'][$replacedService] = $factory; if ($replacedService === $service) { continue; } unset($config['factories'][$service]); if (isset($config['aliases'][$service])) { continue; } $config['aliases'][$service] = $replacedService; } return $config; } private function replaceDependencyServices(array $config) { if (empty($config['services']) || ! is_array($config['services'])) { return $config; } foreach ($config['services'] as $service => $serviceInstance) { if (! is_string($service)) { continue; } $replacedService = $this->replacements->replace($service); $serviceInstance = is_array($serviceInstance) ? $this->__invoke($serviceInstance) : $serviceInstance; $config['services'][$replacedService] = $serviceInstance; if ($service === $replacedService) { continue; } unset($config['services'][$service]); if (isset($config['aliases'][$service])) { continue; } $config['aliases'][$service] = $replacedService; } return $config; } } src/Module.php000064400000002506144760110750007301 0ustar00getEventManager() ->attach('mergeConfig', [$this, 'onMergeConfig']); } /** * Perform substitutions in the merged configuration. * * Rewrites keys and values matching known ZF classes, namespaces, and * configuration keys to their Laminas equivalents. * * Type-hinting deliberately omitted to allow unit testing * without dependencies on packages that do not exist yet. * * @param ModuleEvent $event */ public function onMergeConfig($event) { /** @var ConfigMergerInterface */ $configMerger = $event->getConfigListener(); $processor = new ConfigPostProcessor(); $configMerger->setMergedConfig( $processor( $configMerger->getMergedConfig($returnAsObject = false) ) ); } } src/Replacements.php000064400000002115144760110750010472 0ustar00replacements = array_merge( require __DIR__ . '/../config/replacements.php', $additionalReplacements ); // Provide multiple variants of strings containing namespace separators foreach ($this->replacements as $original => $replacement) { if (false === strpos($original, '\\')) { continue; } $this->replacements[str_replace('\\', '\\\\', $original)] = str_replace('\\', '\\\\', $replacement); $this->replacements[str_replace('\\', '\\\\\\\\', $original)] = str_replace('\\', '\\\\\\\\', $replacement); } } /** * @param string $value * @return string */ public function replace($value) { return strtr($value, $this->replacements); } } src/RewriteRules.php000064400000005324144760110750010511 0ustar00 'Mezzio\\ProblemDetails\\', 'Zend\\Expressive\\' => 'Mezzio\\', // Laminas 'Zend\\' => 'Laminas\\', 'ZF\\ComposerAutoloading\\' => 'Laminas\\ComposerAutoloading\\', 'ZF\\DevelopmentMode\\' => 'Laminas\\DevelopmentMode\\', // Apigility 'ZF\\Apigility\\' => 'Laminas\\ApiTools\\', 'ZF\\' => 'Laminas\\ApiTools\\', // ZendXml, API wrappers, zend-http OAuth support, zend-diagnostics, ZendDeveloperTools 'ZendXml\\' => 'Laminas\\Xml\\', 'ZendOAuth\\' => 'Laminas\\OAuth\\', 'ZendDiagnostics\\' => 'Laminas\\Diagnostics\\', 'ZendService\\ReCaptcha\\' => 'Laminas\\ReCaptcha\\', 'ZendService\\Twitter\\' => 'Laminas\\Twitter\\', 'ZendDeveloperTools\\' => 'Laminas\\DeveloperTools\\', ]; } /** * @return array */ public static function namespaceReverse() { return [ // ZendXml, ZendOAuth, ZendDiagnostics, ZendDeveloperTools 'Laminas\\Xml\\' => 'ZendXml\\', 'Laminas\\OAuth\\' => 'ZendOAuth\\', 'Laminas\\Diagnostics\\' => 'ZendDiagnostics\\', 'Laminas\\DeveloperTools\\' => 'ZendDeveloperTools\\', // Zend Service 'Laminas\\ReCaptcha\\' => 'ZendService\\ReCaptcha\\', 'Laminas\\Twitter\\' => 'ZendService\\Twitter\\', // Zend 'Laminas\\' => 'Zend\\', // Expressive 'Mezzio\\ProblemDetails\\' => 'Zend\\ProblemDetails\\', 'Mezzio\\' => 'Zend\\Expressive\\', // Laminas to ZfCampus 'Laminas\\ComposerAutoloading\\' => 'ZF\\ComposerAutoloading\\', 'Laminas\\DevelopmentMode\\' => 'ZF\\DevelopmentMode\\', // Apigility 'Laminas\\ApiTools\\Admin\\' => 'ZF\\Apigility\\Admin\\', 'Laminas\\ApiTools\\Doctrine\\' => 'ZF\\Apigility\\Doctrine\\', 'Laminas\\ApiTools\\Documentation\\' => 'ZF\\Apigility\\Documentation\\', 'Laminas\\ApiTools\\Example\\' => 'ZF\\Apigility\\Example\\', 'Laminas\\ApiTools\\Provider\\' => 'ZF\\Apigility\\Provider\\', 'Laminas\\ApiTools\\Welcome\\' => 'ZF\\Apiglity\\Welcome\\', 'Laminas\\ApiTools\\' => 'ZF\\', ]; } } src/autoload.php000064400000000067144760110750007664 0ustar00