From 5e93118a17105501edbc1ac1423c8c2606045dfd Mon Sep 17 00:00:00 2001 From: Igor Mursa Date: Tue, 24 Feb 2026 14:36:10 +0000 Subject: [PATCH 1/4] Use mariadb-dump instead of mysqldump --- .github/workflows/php.yml | 2 +- .gitignore | 1 + CHANGELOG.md | 5 +++ composer.json | 2 +- src/Command/ExportCommand.php | 4 +- src/Command/ViewConfigurationCommand.php | 8 ---- src/Service/Database/Shell.php | 44 ++++--------------- .../{Mysqldump.php => MariaDbDump.php} | 5 +-- 8 files changed, 20 insertions(+), 51 deletions(-) rename src/Shell/Command/{Mysqldump.php => MariaDbDump.php} (78%) diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 616474b..4f46633 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -5,7 +5,7 @@ jobs: strategy: matrix: operating-system: [ubuntu-latest] - php-version: ['7.4', '8.0'] + php-version: ['8.1', '8.2'] runs-on: ${{ matrix.operating-system }} steps: - name: Checkout diff --git a/.gitignore b/.gitignore index 7b10df6..06bb718 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /vendor /*.phar +.idea diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ed3980..c4ad898 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [5.3.0] - 2026-02-24 +### Changed +mysqldump to mariadb-dump to work with newer versions of MySQL and MariaDB. +Minimum requirement of php to be 8.1. + ## [5.2.0] - 2024-05-08 ### Added Added flags required for newer versions of MySQL defaults to ensure mysqldump works without required elevated permissions (no backwards-compatibility issues as the flags exists for previous versions too) diff --git a/composer.json b/composer.json index ef43096..b127491 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "bin/magedbm2" ], "require": { - "php": ">=7.4", + "php": ">=8.1", "symfony/console": "^3.4", "symfony/yaml": "^3.4", "aws/aws-sdk-php": "^3.52", diff --git a/src/Command/ExportCommand.php b/src/Command/ExportCommand.php index cdb1ddc..2ac32d9 100644 --- a/src/Command/ExportCommand.php +++ b/src/Command/ExportCommand.php @@ -10,7 +10,7 @@ use Meanbee\Magedbm2\Service\StorageFactory; use Meanbee\Magedbm2\Service\StorageInterface; use Meanbee\Magedbm2\Shell\Command\Gzip; -use Meanbee\Magedbm2\Shell\Command\Mysqldump; +use Meanbee\Magedbm2\Shell\Command\MariaDbDump; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -168,7 +168,7 @@ protected function generateDatabaseExport($tables): string $this->getLogger()->info('Generating XML dump from database'); - $command = (new Mysqldump()) + $command = (new MariaDbDump()) ->arguments($this->getCredentialOptions()) ->argument('--xml') ->argument(escapeshellarg($this->config->getDatabaseCredentials()->getName())) diff --git a/src/Command/ViewConfigurationCommand.php b/src/Command/ViewConfigurationCommand.php index a3fbf1a..2830b4f 100644 --- a/src/Command/ViewConfigurationCommand.php +++ b/src/Command/ViewConfigurationCommand.php @@ -2,15 +2,7 @@ namespace Meanbee\Magedbm2\Command; -use Meanbee\Magedbm2\Application\Config\Option; use Meanbee\Magedbm2\Application\ConfigInterface; -use Meanbee\Magedbm2\Service\Anonymiser\Export; -use Meanbee\Magedbm2\Service\FilesystemFactory; -use Meanbee\Magedbm2\Service\FilesystemInterface; -use Meanbee\Magedbm2\Service\StorageFactory; -use Meanbee\Magedbm2\Service\StorageInterface; -use Meanbee\Magedbm2\Shell\Command\Gzip; -use Meanbee\Magedbm2\Shell\Command\Mysqldump; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; diff --git a/src/Service/Database/Shell.php b/src/Service/Database/Shell.php index 7932ef1..b1dba7d 100644 --- a/src/Service/Database/Shell.php +++ b/src/Service/Database/Shell.php @@ -12,7 +12,7 @@ use Meanbee\Magedbm2\Shell\Command\Gunzip; use Meanbee\Magedbm2\Shell\Command\Gzip; use Meanbee\Magedbm2\Shell\Command\Mysql; -use Meanbee\Magedbm2\Shell\Command\Mysqldump; +use Meanbee\Magedbm2\Shell\Command\MariaDbDump; use Meanbee\Magedbm2\Shell\Command\Sed; use Meanbee\Magedbm2\Shell\CommandInterface; use Meanbee\Magedbm2\Shell\Pipe; @@ -197,19 +197,13 @@ public function dump($identifier, $strip_tables_patterns = '') return $compressedFinalFile; } - /** - * @return Mysqldump - */ - private function createDumpProcess() + private function createDumpProcess(): MariaDbDump { - return (new Mysqldump()) + return (new MariaDbDump()) ->arguments($this->getCredentialOptions()); } - /** - * - */ - private function getCredentialOptions() + private function getCredentialOptions(): array { $map = [ 'host' => $this->config->getDatabaseCredentials()->getHost(), @@ -251,52 +245,31 @@ public function validateConfiguration(): bool return true; } - /** - * @return array - */ private function getAllTables(): array { $result = $this->getPdo()->query('SHOW TABLES'); return $result->fetchAll(\PDO::FETCH_COLUMN); } - /** - * @return \PDO - */ - private function getPdo() + private function getPdo(): \PDO { return $this->config->getDatabaseCredentials()->createPDO(); } - /** - * @param string $strip_tables_patterns - * @return array - */ - private function getStripTables(string $strip_tables_patterns) + private function getStripTables(string $strip_tables_patterns): array { return $this->tablePatternExpander->expand(explode(' ', $strip_tables_patterns), $this->getAllTables()); } - /** - * Sets a logger instance on the object. - * - * @param LoggerInterface $logger - * - * @return void - */ + public function setLogger(LoggerInterface $logger) { $this->logger = $logger; } - /** - * String to be placed at the top of a dump. - * - * @return string - */ private function getDumpHeader(): string { - $dumpHeader = sprintf( + return sprintf( "-- Generator: %s (%s) at %s on %s by %s\n--", Application::APP_NAME, Application::APP_VERSION, @@ -304,7 +277,6 @@ private function getDumpHeader(): string gethostname(), get_current_user() ); - return $dumpHeader; } /** diff --git a/src/Shell/Command/Mysqldump.php b/src/Shell/Command/MariaDbDump.php similarity index 78% rename from src/Shell/Command/Mysqldump.php rename to src/Shell/Command/MariaDbDump.php index 035bd3f..2dd4b93 100644 --- a/src/Shell/Command/Mysqldump.php +++ b/src/Shell/Command/MariaDbDump.php @@ -2,7 +2,7 @@ namespace Meanbee\Magedbm2\Shell\Command; -class Mysqldump extends Base +class MariaDbDump extends Base { public function __construct($arguments = '') { @@ -11,13 +11,12 @@ public function __construct($arguments = '') $this->arguments([ '--single-transaction', '--quick', - '--column-statistics=0', '--no-tablespaces' ]); } protected function name(): string { - return 'mysqldump'; + return 'mariadb-dump'; } } From e8ac31ee4fbd3af678432668ac815d2ef1c5c0cd Mon Sep 17 00:00:00 2001 From: Igor Mursa Date: Tue, 24 Feb 2026 15:43:36 +0000 Subject: [PATCH 2/4] Replace box version and define docker image for faster .phar building + update box.json configuration + update manifest.json with expected new version + update code after make test + change version to 6.0.0 due to major changes --- .gitignore | 2 + CHANGELOG.md | 5 +- Dockerfile | 16 + Makefile | 56 +- README.md | 1 + box.json | 7 +- composer.json | 26 +- composer.lock | 2909 +++++++++++++++++------------ docs/contributing.md | 2 +- manifest.json | 6 + src/Application/Config.php | 9 +- src/Command/BaseCommand.php | 5 +- src/Service/Anonymiser/Eav.php | 9 +- src/Service/Anonymiser/Export.php | 9 +- src/Service/Database/Fake.php | 9 +- src/Service/Database/Shell.php | 3 +- src/Service/Storage/S3.php | 9 +- 17 files changed, 1811 insertions(+), 1272 deletions(-) create mode 100644 Dockerfile diff --git a/.gitignore b/.gitignore index 06bb718..8c40ffe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /vendor +/vendor-bin /*.phar .idea +.phpunit.result.cache diff --git a/CHANGELOG.md b/CHANGELOG.md index c4ad898..2ea0274 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,13 @@ All notable changes will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [5.3.0] - 2026-02-24 +## [6.0.0] - 2026-02-24 +### Added +Docker image and makefile commands to build .phar file ### Changed mysqldump to mariadb-dump to work with newer versions of MySQL and MariaDB. Minimum requirement of php to be 8.1. +make build command to handle build and verify with docker installed and without; ## [5.2.0] - 2024-05-08 ### Added diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f11c6cd --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM php:8.1-cli + +# Install dependencies: make, git, unzip, zip, curl +RUN apt-get update \ + && apt-get install -y \ + make \ + git \ + unzip \ + zip \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Install Composer globally +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +WORKDIR /app diff --git a/Makefile b/Makefile index 01312bf..19c8bc1 100644 --- a/Makefile +++ b/Makefile @@ -1,27 +1,59 @@ .PHONY: build clean test lint - -build: magedbm2.phar +COMPOSER_EXECUTABLE := $(shell command -v composer 2>/dev/null || echo ./composer.phar) +IMAGE_NAME := magedbm-build-php81 +DOCKER_EXECUTABLE := docker run -it --rm -v $(shell pwd):/app $(IMAGE_NAME) bash +# ========================= +# PHAR build target commands +# ========================= +build: + @if command -v docker >/dev/null 2>&1; then \ + echo "Docker found. Running build inside Docker..."; \ + $(MAKE) docker-build-phar; \ + else \ + echo "Docker not found. Running build locally..."; \ + $(MAKE) build-phar; \ + fi; \ + echo "⚠️ ⚠️ Update manifest.json with provided signature for new version" + +docker-build-phar: docker-build + @$(DOCKER_EXECUTABLE) -c "\ + make build-phar; \ + " + +build-phar: $(shell find src -type f) composer.json composer.phar + $(COMPOSER_EXECUTABLE) install --no-dev + php -d phar.readonly=0 vendor/bin/box compile + make verify clean: - rm -rf vendor box.phar composer.phar magedbm2.phar + rm -rf vendor composer.phar magedbm2.phar test: install php -derror_reporting=E_ERROR ./vendor/bin/phpunit install: composer.phar composer.lock - ./composer.phar install + $(COMPOSER_EXECUTABLE) install lint: install ./vendor/bin/phpcs --standard=./phpcs.xml src/ || exit 0 ./vendor/bin/phpmd src/ text ./phpmd.xml || exit 0 ./vendor/bin/phpcbf --standard=./phpcs.xml src/ || exit 0 -magedbm2.phar: * box.phar composer.phar - ./composer.phar install --no-dev - php -d phar.readonly=0 ./box.phar build - composer.phar: - curl -LSs https://getcomposer.org/installer | php - -box.phar: - curl -LSs https://box-project.github.io/box2/installer.php | php + @if ! command -v composer >/dev/null 2>&1; then \ + echo "Downloading local composer.phar..."; \ + curl -LSs https://getcomposer.org/installer | php; \ + chmod +x composer.phar; \ + fi + +verify: + vendor/bin/box verify magedbm2.phar + +## Docker commands +docker-build: + @if ! docker image inspect magedbm-build-php81 > /dev/null 2>&1; then \ + docker build -t magedbm-build-php81 . ; \ + fi +docker-ssh: docker-build + $(DOCKER_EXECUTABLE) +ssh: docker-ssh diff --git a/README.md b/README.md index 181a1c8..9edb409 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ It was written with developers in mind and provides commands for: ## Requirements +* `>v6.0.0` PHP >=8.1 * `7.0 <8.0(with permission to run `exec` and `passthru`) * `>v4.0.0` PHP 7.4+ * `mysql` client on the `$PATH` diff --git a/box.json b/box.json index e89961f..adf69dd 100644 --- a/box.json +++ b/box.json @@ -18,11 +18,8 @@ ] } ], - "main": "bin/magedbm2", "compactors": [ - "Herrera\\Box\\Compactor\\Php" + "KevinGH\\Box\\Compactor\\Json" ], - "compression": "GZ", - "chmod": "0755", - "stub": true + "compression": "GZ" } diff --git a/composer.json b/composer.json index b127491..2772aef 100644 --- a/composer.json +++ b/composer.json @@ -25,24 +25,25 @@ "bin/magedbm2" ], "require": { - "php": ">=8.1", - "symfony/console": "^3.4", - "symfony/yaml": "^3.4", + "php": "^8.1", + "symfony/console": "^5.4 || ^6.0", + "symfony/yaml": "^5.4 || ^6.0", "aws/aws-sdk-php": "^3.52", "meanbee/libmageconf": "^1.0", - "symfony/process": "^3.4", - "psr/log": "^1.0", - "php-di/php-di": "^6.0", - "adbario/php-dot-notation": "^2.0", - "fakerphp/faker": "^1.9", - "symfony/deprecation-contracts": "2.5" + "symfony/process": "^5.4 || ^6.0", + "psr/log": "^1.1 || ^2.0 || ^3.0", + "php-di/php-di": "^6.4 || ^7.0", + "adbario/php-dot-notation": "^3.3", + "fakerphp/faker": "^1.21", + "symfony/deprecation-contracts": "^2.5 || ^3.0" }, "require-dev": { "phpunit/phpunit": "^9.5", "squizlabs/php_codesniffer": "^3.0.0", "phpmd/phpmd": "^2.11", "php-vfs/php-vfs": "^1.4", - "phpcompatibility/php-compatibility": "^9.3" + "phpcompatibility/php-compatibility": "^9.3", + "bamarni/composer-bin-plugin": "^1.9" }, "autoload": { "psr-4": { @@ -53,5 +54,10 @@ "psr-4": { "Meanbee\\Magedbm2\\Tests\\": "tests/" } + }, + "config": { + "allow-plugins": { + "bamarni/composer-bin-plugin": true + } } } diff --git a/composer.lock b/composer.lock index 249b7e8..267ab33 100644 --- a/composer.lock +++ b/composer.lock @@ -4,28 +4,30 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "305c58a01e0437df046def8286924169", + "content-hash": "75954fbe88c74f48c7a8a13f55366236", "packages": [ { "name": "adbario/php-dot-notation", - "version": "2.0.0", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/adbario/php-dot-notation.git", - "reference": "90c0b7d5e4103326d9d80f5a043d9cb55b24fc70" + "reference": "a94ce4493d19ea430baa8d7d210a2c9bd7129fc2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/adbario/php-dot-notation/zipball/90c0b7d5e4103326d9d80f5a043d9cb55b24fc70", - "reference": "90c0b7d5e4103326d9d80f5a043d9cb55b24fc70", + "url": "https://api.github.com/repos/adbario/php-dot-notation/zipball/a94ce4493d19ea430baa8d7d210a2c9bd7129fc2", + "reference": "a94ce4493d19ea430baa8d7d210a2c9bd7129fc2", "shasum": "" }, "require": { - "php": ">=5.5" + "ext-json": "*", + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.0|^5.0|^6.0", - "squizlabs/php_codesniffer": "^3.0" + "phpstan/phpstan": "^1.8", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.7" }, "type": "library", "autoload": { @@ -52,49 +54,116 @@ "ArrayAccess", "dotnotation" ], - "time": "2017-09-22T08:44:27+00:00" + "support": { + "issues": "https://github.com/adbario/php-dot-notation/issues", + "source": "https://github.com/adbario/php-dot-notation/tree/3.3.0" + }, + "time": "2023-02-24T20:27:50+00:00" + }, + { + "name": "aws/aws-crt-php", + "version": "v1.2.7", + "source": { + "type": "git", + "url": "https://github.com/awslabs/aws-crt-php.git", + "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/d71d9906c7bb63a28295447ba12e74723bd3730e", + "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5", + "yoast/phpunit-polyfills": "^1.0" + }, + "suggest": { + "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality." + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "AWS SDK Common Runtime Team", + "email": "aws-sdk-common-runtime@amazon.com" + } + ], + "description": "AWS Common Runtime for PHP", + "homepage": "https://github.com/awslabs/aws-crt-php", + "keywords": [ + "amazon", + "aws", + "crt", + "sdk" + ], + "support": { + "issues": "https://github.com/awslabs/aws-crt-php/issues", + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.7" + }, + "time": "2024-10-18T22:15:13+00:00" }, { "name": "aws/aws-sdk-php", - "version": "3.52.5", + "version": "3.370.1", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "be3926c2de321acab841fa0fb0761929cba96f9b" + "reference": "273a9bbed9e73016be390b8428f7925f15ea053e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/be3926c2de321acab841fa0fb0761929cba96f9b", - "reference": "be3926c2de321acab841fa0fb0761929cba96f9b", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/273a9bbed9e73016be390b8428f7925f15ea053e", + "reference": "273a9bbed9e73016be390b8428f7925f15ea053e", "shasum": "" }, "require": { + "aws/aws-crt-php": "^1.2.3", "ext-json": "*", "ext-pcre": "*", "ext-simplexml": "*", - "ext-spl": "*", - "guzzlehttp/guzzle": "^5.3.1|^6.2.1", - "guzzlehttp/promises": "~1.0", - "guzzlehttp/psr7": "^1.4.1", - "mtdowling/jmespath.php": "~2.2", - "php": ">=5.5" + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/promises": "^2.0", + "guzzlehttp/psr7": "^2.4.5", + "mtdowling/jmespath.php": "^2.8.0", + "php": ">=8.1", + "psr/http-message": "^1.0 || ^2.0", + "symfony/filesystem": "^v5.4.45 || ^v6.4.3 || ^v7.1.0 || ^v8.0.0" }, "require-dev": { "andrewsville/php-token-reflection": "^1.4", "aws/aws-php-sns-message-validator": "~1.0", "behat/behat": "~3.0", + "composer/composer": "^2.7.8", + "dms/phpunit-arraysubset-asserts": "^0.4.0", "doctrine/cache": "~1.4", "ext-dom": "*", "ext-openssl": "*", - "nette/neon": "^2.3", - "phpunit/phpunit": "^4.8.35|^5.4.3", - "psr/cache": "^1.0" + "ext-sockets": "*", + "phpunit/phpunit": "^9.6", + "psr/cache": "^2.0 || ^3.0", + "psr/simple-cache": "^2.0 || ^3.0", + "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0", + "yoast/phpunit-polyfills": "^2.0" }, "suggest": { "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", "doctrine/cache": "To use the DoctrineCacheAdapter", "ext-curl": "To send requests using cURL", - "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages" + "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages", + "ext-pcntl": "To use client-side monitoring", + "ext-sockets": "To use client-side monitoring" }, "type": "library", "extra": { @@ -103,11 +172,14 @@ } }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { "Aws\\": "src/" }, - "files": [ - "src/functions.php" + "exclude-from-classmap": [ + "src/data/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -132,24 +204,29 @@ "s3", "sdk" ], - "time": "2018-02-08T19:45:22+00:00" + "support": { + "forum": "https://github.com/aws/aws-sdk-php/discussions", + "issues": "https://github.com/aws/aws-sdk-php/issues", + "source": "https://github.com/aws/aws-sdk-php/tree/3.370.1" + }, + "time": "2026-02-23T19:05:30+00:00" }, { "name": "fakerphp/faker", - "version": "v1.19.0", + "version": "v1.24.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "d7f08a622b3346766325488aa32ddc93ccdecc75" + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/d7f08a622b3346766325488aa32ddc93ccdecc75", - "reference": "d7f08a622b3346766325488aa32ddc93ccdecc75", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", + "php": "^7.4 || ^8.0", "psr/container": "^1.0 || ^2.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" }, @@ -160,7 +237,8 @@ "bamarni/composer-bin-plugin": "^1.4.1", "doctrine/persistence": "^1.3 || ^2.0", "ext-intl": "*", - "symfony/phpunit-bridge": "^4.4 || ^5.2" + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" }, "suggest": { "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", @@ -170,11 +248,6 @@ "ext-mbstring": "Required for multibyte Unicode string functionality." }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.19-dev" - } - }, "autoload": { "psr-4": { "Faker\\": "src/Faker/" @@ -195,39 +268,55 @@ "faker", "fixtures" ], - "time": "2022-02-02T17:38:57+00:00" + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" + }, + "time": "2024-11-21T13:46:39+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "6.3.0", + "version": "7.10.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699" + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", "shasum": "" }, "require": { - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", - "php": ">=5.5" + "ext-json": "*", + "guzzlehttp/promises": "^2.3", + "guzzlehttp/psr7": "^2.8", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" }, "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "phpunit/phpunit": "^4.0 || ^5.0", - "psr/log": "^1.0" + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "6.2-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { @@ -243,115 +332,197 @@ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", "keywords": [ "client", "curl", "framework", "http", "http client", + "psr-18", + "psr-7", "rest", "web service" ], - "time": "2017-06-22T18:50:49+00:00" + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.10.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2025-08-23T22:36:01+00:00" }, { "name": "guzzlehttp/promises", - "version": "v1.3.1", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "reference": "481557b130ef3790cf82b713667b43030dc9c957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", + "reference": "481557b130ef3790cf82b713667b43030dc9c957", "shasum": "" }, "require": { - "php": ">=5.5.0" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.4-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { "psr-4": { "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle promises library", "keywords": [ "promise" ], - "time": "2016-12-20T10:07:11+00:00" + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.3.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2025-08-22T14:34:08+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.8.5", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "337e3ad8e5716c15f9657bd214d16cc5e69df268" + "reference": "21dc724a0583619cd1652f673303492272778051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/337e3ad8e5716c15f9657bd214d16cc5e69df268", - "reference": "337e3ad8e5716c15f9657bd214d16cc5e69df268", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", + "reference": "21dc724a0583619cd1652f673303492272778051", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" }, "provide": { + "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.7-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Psr7\\": "src/" } @@ -390,6 +561,11 @@ "name": "Tobias Schultze", "email": "webmaster@tubo-world.de", "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], "description": "PSR-7 message implementation that also provides common utility methods", @@ -405,7 +581,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.5" + "source": "https://github.com/guzzle/psr7/tree/2.8.0" }, "funding": [ { @@ -421,7 +597,68 @@ "type": "tidelift" } ], - "time": "2022-03-20T21:51:18+00:00" + "time": "2025-08-23T21:21:41+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v2.0.10", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "870fc81d2f879903dfc5b60bf8a0f94a1609e669" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/870fc81d2f879903dfc5b60bf8a0f94a1609e669", + "reference": "870fc81d2f879903dfc5b60bf8a0f94a1609e669", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", + "nesbot/carbon": "^2.67|^3.0", + "pestphp/pest": "^2.36|^3.0|^4.0", + "phpstan/phpstan": "^2.0", + "symfony/var-dumper": "^6.2.0|^7.0.0|^8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2026-02-20T19:59:49+00:00" }, { "name": "meanbee/libmageconf", @@ -462,27 +699,34 @@ "keywords": [ "magento" ], + "support": { + "issues": "https://github.com/meanbee/libmageconf/issues", + "source": "https://github.com/meanbee/libmageconf/tree/master" + }, + "abandoned": true, "time": "2016-09-15T18:08:03+00:00" }, { "name": "mtdowling/jmespath.php", - "version": "2.4.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/jmespath/jmespath.php.git", - "reference": "adcc9531682cf87dfda21e1fd5d0e7a41d292fac" + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/adcc9531682cf87dfda21e1fd5d0e7a41d292fac", - "reference": "adcc9531682cf87dfda21e1fd5d0e7a41d292fac", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc", + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc", "shasum": "" }, "require": { - "php": ">=5.4.0" + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-mbstring": "^1.17" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "composer/xdebug-handler": "^3.0.3", + "phpunit/phpunit": "^8.5.33" }, "bin": [ "bin/jp.php" @@ -490,22 +734,27 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-4": { - "JmesPath\\": "src/" - }, "files": [ "src/JmesPath.php" - ] + ], + "psr-4": { + "JmesPath\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", @@ -517,81 +766,24 @@ "json", "jsonpath" ], - "time": "2016-12-03T22:08:25+00:00" - }, - { - "name": "opis/closure", - "version": "3.6.3", - "source": { - "type": "git", - "url": "https://github.com/opis/closure.git", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", - "shasum": "" - }, - "require": { - "php": "^5.4 || ^7.0 || ^8.0" - }, - "require-dev": { - "jeremeamia/superclosure": "^2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.6.x-dev" - } - }, - "autoload": { - "psr-4": { - "Opis\\Closure\\": "src/" - }, - "files": [ - "functions.php" - ] + "support": { + "issues": "https://github.com/jmespath/jmespath.php/issues", + "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - } - ], - "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", - "homepage": "https://opis.io/closure", - "keywords": [ - "anonymous functions", - "closure", - "function", - "serializable", - "serialization", - "serialize" - ], - "time": "2022-01-27T09:35:39+00:00" + "time": "2024-09-04T18:46:31+00:00" }, { "name": "php-di/invoker", - "version": "2.3.3", + "version": "2.3.7", "source": { "type": "git", "url": "https://github.com/PHP-DI/Invoker.git", - "reference": "cd6d9f267d1a3474bdddf1be1da079f01b942786" + "reference": "3c1ddfdef181431fbc4be83378f6d036d59e81e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/cd6d9f267d1a3474bdddf1be1da079f01b942786", - "reference": "cd6d9f267d1a3474bdddf1be1da079f01b942786", + "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/3c1ddfdef181431fbc4be83378f6d036d59e81e1", + "reference": "3c1ddfdef181431fbc4be83378f6d036d59e81e1", "shasum": "" }, "require": { @@ -601,7 +793,7 @@ "require-dev": { "athletic/athletic": "~0.1.8", "mnapoli/hard-mode": "~0.3.0", - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^9.0 || ^10 || ^11 || ^12" }, "type": "library", "autoload": { @@ -623,58 +815,59 @@ "invoke", "invoker" ], + "support": { + "issues": "https://github.com/PHP-DI/Invoker/issues", + "source": "https://github.com/PHP-DI/Invoker/tree/2.3.7" + }, "funding": [ { "url": "https://github.com/mnapoli", "type": "github" } ], - "time": "2021-12-13T09:22:56+00:00" + "time": "2025-08-30T10:22:22+00:00" }, { "name": "php-di/php-di", - "version": "6.3.5", + "version": "7.1.1", "source": { "type": "git", "url": "https://github.com/PHP-DI/PHP-DI.git", - "reference": "b8126d066ce144765300ee0ab040c1ed6c9ef588" + "reference": "f88054cc052e40dbe7b383c8817c19442d480352" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/b8126d066ce144765300ee0ab040c1ed6c9ef588", - "reference": "b8126d066ce144765300ee0ab040c1ed6c9ef588", + "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/f88054cc052e40dbe7b383c8817c19442d480352", + "reference": "f88054cc052e40dbe7b383c8817c19442d480352", "shasum": "" }, "require": { - "opis/closure": "^3.5.5", - "php": ">=7.2.0", + "laravel/serializable-closure": "^1.0 || ^2.0", + "php": ">=8.0", "php-di/invoker": "^2.0", - "php-di/phpdoc-reader": "^2.0.1", - "psr/container": "^1.0" + "psr/container": "^1.1 || ^2.0" }, "provide": { "psr/container-implementation": "^1.0" }, "require-dev": { - "doctrine/annotations": "~1.2", - "friendsofphp/php-cs-fixer": "^2.4", - "mnapoli/phpunit-easymock": "^1.2", - "ocramius/proxy-manager": "^2.0.2", - "phpstan/phpstan": "^0.12", - "phpunit/phpunit": "^8.5|^9.0" + "friendsofphp/php-cs-fixer": "^3", + "friendsofphp/proxy-manager-lts": "^1", + "mnapoli/phpunit-easymock": "^1.3", + "phpunit/phpunit": "^9.6 || ^10 || ^11", + "vimeo/psalm": "^5|^6" }, "suggest": { - "doctrine/annotations": "Install it if you want to use annotations (version ~1.2)", - "ocramius/proxy-manager": "Install it if you want to use lazy injection (version ~2.0)" + "friendsofphp/proxy-manager-lts": "Install it if you want to use lazy injection (version ^1)" }, "type": "library", "autoload": { - "psr-4": { - "DI\\": "src/" - }, "files": [ "src/functions.php" - ] + ], + "psr-4": { + "DI\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -691,6 +884,10 @@ "ioc", "psr11" ], + "support": { + "issues": "https://github.com/PHP-DI/PHP-DI/issues", + "source": "https://github.com/PHP-DI/PHP-DI/tree/7.1.1" + }, "funding": [ { "url": "https://github.com/mnapoli", @@ -701,67 +898,140 @@ "type": "tidelift" } ], - "time": "2021-09-02T09:49:58+00:00" + "time": "2025-08-16T11:10:48+00:00" }, { - "name": "php-di/phpdoc-reader", - "version": "2.2.1", + "name": "psr/container", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/PHP-DI/PhpDocReader.git", - "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c" + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/66daff34cbd2627740ffec9469ffbac9f8c8185c", - "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, - "require-dev": { - "mnapoli/hard-mode": "~0.3.0", - "phpunit/phpunit": "^8.5|^9.0" + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "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/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { "psr-4": { - "PhpDocReader\\": "src/PhpDocReader" + "Psr\\Http\\Client\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", "keywords": [ - "phpdoc", - "reflection" + "http", + "http-client", + "psr", + "psr-18" ], - "time": "2020-10-12T12:39:22+00:00" + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" }, { - "name": "psr/container", - "version": "1.1.2", + "name": "psr/http-factory", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { "psr-4": { - "Psr\\Container\\": "src/" + "Psr\\Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -774,38 +1044,43 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" ], - "time": "2021-11-05T16:50:12+00:00" + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -820,7 +1095,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -834,36 +1109,36 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "psr/log", - "version": "1.0.2", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -873,7 +1148,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for logging libraries", @@ -883,7 +1158,10 @@ "psr", "psr-3" ], - "time": "2016-10-10T12:19:37+00:00" + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" }, { "name": "ralouphie/getallheaders", @@ -931,43 +1209,47 @@ }, { "name": "symfony/console", - "version": "v3.4.47", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81" + "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a10b1da6fc93080c180bba7219b5ff5b7518fe81", - "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81", + "url": "https://api.github.com/repos/symfony/console/zipball/0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3", + "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" }, "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/process": "<3.3" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { - "psr/log-implementation": "1.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.3|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.3|~4.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -992,8 +1274,17 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Console Component", + "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/v6.4.32" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1003,44 +1294,47 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2026-01-13T08:45:59+00:00" }, { - "name": "symfony/debug", - "version": "v4.4.37", + "name": "symfony/deprecation-contracts", + "version": "v3.6.0", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "5de6c6e7f52b364840e53851c126be4d71e60470" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/5de6c6e7f52b364840e53851c126be4d71e60470", - "reference": "5de6c6e7f52b364840e53851c126be4d71e60470", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/log": "^1|^2|^3" - }, - "conflict": { - "symfony/http-kernel": "<3.4" - }, - "require-dev": { - "symfony/http-kernel": "^3.4|^4.0|^5.0" + "php": ">=8.1" }, "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" }, - "exclude-from-classmap": [ - "/Tests/" + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "files": [ + "function.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1049,16 +1343,19 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools to ease debugging PHP code", + "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1073,38 +1370,37 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:41:36+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { - "name": "symfony/deprecation-contracts", - "version": "v2.5.0", + "name": "symfony/filesystem", + "version": "v6.4.30", "source": { "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" + "url": "https://github.com/symfony/filesystem.git", + "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/441c6b69f7222aadae7cbf5df588496d5ee37789", + "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } + "require-dev": { + "symfony/process": "^5.4|^6.4|^7.0" }, + "type": "library", "autoload": { - "files": [ - "function.php" + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1113,18 +1409,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "A generic function and convention to trigger deprecation notices", + "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/filesystem/tree/v6.4.30" }, "funding": [ { @@ -1135,29 +1431,33 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2021-07-12T14:48:14+00:00" + "time": "2025-11-26T14:43:45+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "30885182c981ab175d4d034db0f6f469898070ab" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", - "reference": "30885182c981ab175d4d034db0f6f469898070ab", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -1167,21 +1467,18 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1205,6 +1502,9 @@ "polyfill", "portable" ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1214,44 +1514,42 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2021-10-20T20:35:02+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.33.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" + "php": ">=7.2" }, "suggest": { - "ext-mbstring": "For best performance" + "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" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -1259,7 +1557,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1276,15 +1574,19 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill for intl's grapheme_* functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", + "grapheme", + "intl", "polyfill", "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1294,42 +1596,53 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2021-11-30T18:21:41+00:00" + "time": "2025-06-27T09:58:17+00:00" }, { - "name": "symfony/process", - "version": "v3.4.4", + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.33.0", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "09a5172057be8fc677840e591b17f385e58c7c0d" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/09a5172057be8fc677840e591b17f385e58c7c0d", - "reference": "09a5172057be8fc677840e591b17f385e58c7c0d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.4-dev" + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Component\\Process\\": "" + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1338,46 +1651,402 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Symfony polyfill for intl's Normalizer class and related functions", "homepage": "https://symfony.com", - "time": "2018-01-29T09:03:43+00:00" + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" }, { - "name": "symfony/yaml", - "version": "v3.4.47", + "name": "symfony/polyfill-mbstring", + "version": "v1.33.0", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "88289caa3c166321883f67fe5130188ebbb47094" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/88289caa3c166321883f67fe5130188ebbb47094", - "reference": "88289caa3c166321883f67fe5130188ebbb47094", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<3.4" + "ext-iconv": "*", + "php": ">=7.2" }, - "require-dev": { - "symfony/console": "~3.4|~4.0" + "provide": { + "ext-mbstring": "*" }, "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "ext-mbstring": "For best performance" }, "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "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.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-23T08:48:59+00:00" + }, + { + "name": "symfony/process", + "version": "v6.4.33", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "c46e854e79b52d07666e43924a20cb6dc546644e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/c46e854e79b52d07666e43924a20cb6dc546644e", + "reference": "c46e854e79b52d07666e43924a20cb6dc546644e", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.4.33" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-01-23T16:02:12+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.6.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "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/v3.6.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-07-15T11:30:57+00:00" + }, + { + "name": "symfony/string", + "version": "v6.4.30", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/50590a057841fa6bf69d12eceffce3465b9e32cb", + "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "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/v6.4.30" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-11-21T18:03:05+00:00" + }, + { + "name": "symfony/yaml", + "version": "v6.4.30", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "8207ae83da19ee3748d6d4f567b4d9a7c656e331" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/8207ae83da19ee3748d6d4f567b4d9a7c656e331", + "reference": "8207ae83da19ee3748d6d4f567b4d9a7c656e331", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" @@ -1400,8 +2069,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v6.4.30" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1411,41 +2083,110 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2025-12-02T11:50:18+00:00" } ], "packages-dev": [ + { + "name": "bamarni/composer-bin-plugin", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/bamarni/composer-bin-plugin.git", + "reference": "641d0663f5ac270b1aeec4337b7856f76204df47" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/641d0663f5ac270b1aeec4337b7856f76204df47", + "reference": "641d0663f5ac270b1aeec4337b7856f76204df47", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "composer/composer": "^2.2.26", + "ext-json": "*", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8 || ^2.0", + "phpstan/phpstan-phpunit": "^1.1 || ^2.0", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.0", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Bamarni\\Composer\\Bin\\BamarniBinPlugin" + }, + "autoload": { + "psr-4": { + "Bamarni\\Composer\\Bin\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "No conflicts for your bin dependencies", + "keywords": [ + "composer", + "conflict", + "dependency", + "executable", + "isolation", + "tool" + ], + "support": { + "issues": "https://github.com/bamarni/composer-bin-plugin/issues", + "source": "https://github.com/bamarni/composer-bin-plugin/tree/1.9.1" + }, + "time": "2026-02-04T10:18:12+00:00" + }, { "name": "composer/pcre", - "version": "1.0.1", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560" + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<1.11.10" }, "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, "branch-alias": { - "dev-main": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -1471,6 +2212,10 @@ "regex", "regular expression" ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.3.2" + }, "funding": [ { "url": "https://packagist.com", @@ -1485,31 +2230,31 @@ "type": "tidelift" } ], - "time": "2022-01-21T20:24:37+00:00" + "time": "2024-11-12T16:29:46+00:00" }, { "name": "composer/xdebug-handler", - "version": "2.0.4", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { - "composer/pcre": "^1", - "php": "^5.3.2 || ^7.0 || ^8.0", + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", "psr/log": "^1 || ^2 || ^3" }, "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -1532,6 +2277,11 @@ "Xdebug", "performance" ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + }, "funding": [ { "url": "https://packagist.com", @@ -1546,33 +2296,34 @@ "type": "tidelift" } ], - "time": "2022-01-04T17:06:45+00:00" + "time": "2024-05-06T16:37:16+00:00" }, { "name": "doctrine/instantiator", - "version": "1.4.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^11", "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" + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^5.4" }, "type": "library", "autoload": { @@ -1597,6 +2348,10 @@ "constructor", "instantiate" ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -1611,32 +2366,34 @@ "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { @@ -1659,35 +2416,41 @@ "object", "object graph" ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" + }, "funding": [ { "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "nikic/php-parser", - "version": "v4.13.2", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "210577fe3cf7badcc5814d99455df46564f3c077" + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077", - "reference": "210577fe3cf7badcc5814d99455df46564f3c077", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -1695,7 +2458,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.x-dev" } }, "autoload": { @@ -1717,32 +2480,36 @@ "parser", "php" ], - "time": "2021-11-30T19:35:32+00:00" + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" + }, + "time": "2025-12-06T11:56:16+00:00" }, { "name": "pdepend/pdepend", - "version": "2.10.2", + "version": "2.16.2", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "c8c1d2af43fb8c2b5387d50e9c42a9c56de13686" + "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/c8c1d2af43fb8c2b5387d50e9c42a9c56de13686", - "reference": "c8c1d2af43fb8c2b5387d50e9c42a9c56de13686", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/f942b208dc2a0868454d01b29f0c75bbcfc6ed58", + "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58", "shasum": "" }, "require": { "php": ">=5.3.7", - "symfony/config": "^2.3.0|^3|^4|^5", - "symfony/dependency-injection": "^2.3.0|^3|^4|^5", - "symfony/filesystem": "^2.3.0|^3|^4|^5" + "symfony/config": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/polyfill-mbstring": "^1.19" }, "require-dev": { "easy-doc/easy-doc": "0.0.0|^1.2.3", "gregwar/rst": "^1.0", - "phpunit/phpunit": "^4.8.36|^5.7.27", "squizlabs/php_codesniffer": "^2.0.0" }, "bin": [ @@ -1764,30 +2531,41 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", + "keywords": [ + "PHP Depend", + "PHP_Depend", + "dev", + "pdepend" + ], + "support": { + "issues": "https://github.com/pdepend/pdepend/issues", + "source": "https://github.com/pdepend/pdepend/tree/2.16.2" + }, "funding": [ { "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", "type": "tidelift" } ], - "time": "2021-11-16T20:05:32+00:00" + "time": "2023-12-17T18:09:59+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -1826,20 +2604,30 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2021-07-20T11:28:43+00:00" + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", - "version": "3.1.1", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "15a90844ad40f127afd244c0cad228de2a80052a" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/15a90844ad40f127afd244c0cad228de2a80052a", - "reference": "15a90844ad40f127afd244c0cad228de2a80052a", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { @@ -1873,20 +2661,24 @@ } ], "description": "Library for handling version information and constraints", - "time": "2022-02-07T21:56:48+00:00" + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" }, { "name": "php-vfs/php-vfs", - "version": "v1.4.0", + "version": "v1.4.2", "source": { "type": "git", "url": "https://github.com/michael-donat/php-vfs.git", - "reference": "1254b67ca6bdaccd9f305b0e1aea81f790b3fa67" + "reference": "e56b0bd9a118941ea5681e1673ed602d47887be8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/michael-donat/php-vfs/zipball/1254b67ca6bdaccd9f305b0e1aea81f790b3fa67", - "reference": "1254b67ca6bdaccd9f305b0e1aea81f790b3fa67", + "url": "https://api.github.com/repos/michael-donat/php-vfs/zipball/e56b0bd9a118941ea5681e1673ed602d47887be8", + "reference": "e56b0bd9a118941ea5681e1673ed602d47887be8", "shasum": "" }, "require": { @@ -1894,6 +2686,7 @@ }, "require-dev": { "doctrine/instantiator": "~1.0.2", + "php": ">=7.0", "phpunit/phpunit": "^6.5", "sami/sami": "*" }, @@ -1905,7 +2698,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-3.0+" + "MIT" ], "authors": [ { @@ -1923,7 +2716,12 @@ "unit", "virtual" ], - "time": "2017-12-20T16:11:12+00:00" + "support": { + "issues": "https://github.com/michael-donat/php-vfs/issues", + "source": "https://github.com/michael-donat/php-vfs/tree/v1.4.2", + "wiki": "https://github.com/michael-donat/php-vfs/wiki" + }, + "time": "2020-10-14T06:51:31+00:00" }, { "name": "phpcompatibility/php-compatibility", @@ -1981,174 +2779,30 @@ "phpcs", "standards" ], - "time": "2019-12-27T09:44:58+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "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", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.6.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibility" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2022-01-04T19:58:01+00:00" + "time": "2019-12-27T09:44:58+00:00" }, { "name": "phpmd/phpmd", - "version": "2.11.1", + "version": "2.15.0", "source": { "type": "git", "url": "https://github.com/phpmd/phpmd.git", - "reference": "08b60a2eb7e14c23f46ff8865b510ae08b75d0fd" + "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/08b60a2eb7e14c23f46ff8865b510ae08b75d0fd", - "reference": "08b60a2eb7e14c23f46ff8865b510ae08b75d0fd", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/74a1f56e33afad4128b886e334093e98e1b5e7c0", + "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0", "shasum": "" }, "require": { - "composer/xdebug-handler": "^1.0 || ^2.0", + "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", "ext-xml": "*", - "pdepend/pdepend": "^2.10.2", + "pdepend/pdepend": "^2.16.1", "php": ">=5.3.9" }, "require-dev": { @@ -2157,8 +2811,7 @@ "ext-simplexml": "*", "gregwar/rst": "^1.0", "mikey179/vfsstream": "^1.6.8", - "phpunit/phpunit": "^4.8.36 || ^5.7.27", - "squizlabs/php_codesniffer": "^2.0" + "squizlabs/php_codesniffer": "^2.9.2 || ^3.7.2" }, "bin": [ "src/bin/phpmd" @@ -2195,123 +2848,66 @@ "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", "homepage": "https://phpmd.org/", "keywords": [ - "mess detection", - "mess detector", - "pdepend", - "phpmd", - "pmd" - ], - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", - "type": "tidelift" - } - ], - "time": "2021-12-17T11:25:43+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" + "dev", + "mess detection", + "mess detector", + "pdepend", + "phpmd", + "pmd" ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, + "support": { + "irc": "irc://irc.freenode.org/phpmd", + "issues": "https://github.com/phpmd/phpmd/issues", + "source": "https://github.com/phpmd/phpmd/tree/2.15.0" + }, + "funding": [ { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", + "type": "tidelift" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2021-12-08T12:19:24+00:00" + "time": "2023-12-11T08:22:20+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.10", + "version": "9.2.32", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687" + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d5850aaf931743067f4bfc1ae4cbd06468400687", - "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.13.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "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" + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-text-template": "^2.0.4", + "sebastian/code-unit-reverse-lookup": "^2.0.3", + "sebastian/complexity": "^2.0.3", + "sebastian/environment": "^5.1.5", + "sebastian/lines-of-code": "^1.0.4", + "sebastian/version": "^3.0.2", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.6" }, "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "9.2.x-dev" } }, "autoload": { @@ -2337,13 +2933,18 @@ "testing", "xunit" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2021-12-05T09:12:13+00:00" + "time": "2024-08-22T04:23:01+00:00" }, { "name": "phpunit/php-file-iterator", @@ -2393,6 +2994,10 @@ "filesystem", "iterator" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -2452,6 +3057,10 @@ "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", @@ -2507,6 +3116,10 @@ "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", @@ -2562,6 +3175,10 @@ "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", @@ -2572,55 +3189,50 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.13", + "version": "9.6.34", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "597cb647654ede35e43b137926dfdfef0fb11743" + "reference": "b36f02317466907a230d3aa1d34467041271ef4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/597cb647654ede35e43b137926dfdfef0fb11743", - "reference": "597cb647654ede35e43b137926dfdfef0fb11743", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b36f02317466907a230d3aa1d34467041271ef4a", + "reference": "b36f02317466907a230d3aa1d34467041271ef4a", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", + "doctrine/instantiator": "^1.5.0 || ^2", "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", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.7", - "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-code-coverage": "^9.2.32", + "phpunit/php-file-iterator": "^3.0.6", "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", + "phpunit/php-text-template": "^2.0.4", + "phpunit/php-timer": "^5.0.3", + "sebastian/cli-parser": "^1.0.2", + "sebastian/code-unit": "^1.0.8", + "sebastian/comparator": "^4.0.10", + "sebastian/diff": "^4.0.6", + "sebastian/environment": "^5.1.5", + "sebastian/exporter": "^4.0.8", + "sebastian/global-state": "^5.0.8", + "sebastian/object-enumerator": "^4.0.4", + "sebastian/resource-operations": "^3.0.4", + "sebastian/type": "^3.2.1", "sebastian/version": "^3.0.2" }, - "require-dev": { - "ext-pdo": "*", - "phpspec/prophecy-phpunit": "^2.0.1" - }, "suggest": { - "ext-soap": "*", - "ext-xdebug": "*" + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "bin": [ "phpunit" @@ -2628,7 +3240,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.5-dev" + "dev-master": "9.6-dev" } }, "autoload": { @@ -2657,6 +3269,11 @@ "testing", "xunit" ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.34" + }, "funding": [ { "url": "https://phpunit.de/sponsors.html", @@ -2665,22 +3282,34 @@ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" } ], - "time": "2022-01-24T07:33:35+00:00" + "time": "2026-01-27T05:45:00+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", "shasum": "" }, "require": { @@ -2713,13 +3342,17 @@ ], "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.2" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-03-02T06:27:43+00:00" }, { "name": "sebastian/code-unit", @@ -2765,6 +3398,10 @@ ], "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", @@ -2816,6 +3453,10 @@ ], "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", @@ -2826,16 +3467,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.6", + "version": "4.0.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e4df00b9b3571187db2831ae9aada2c6efbd715d", + "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d", "shasum": "" }, "require": { @@ -2886,30 +3527,46 @@ "compare", "equality" ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.10" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2020-10-26T15:49:45+00:00" + "time": "2026-01-24T09:22:56+00:00" }, { "name": "sebastian/complexity", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -2939,26 +3596,30 @@ ], "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.3" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2023-12-22T06:19:30+00:00" }, { "name": "sebastian/diff", - "version": "4.0.4", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", "shasum": "" }, "require": { @@ -3001,26 +3662,30 @@ "unidiff", "unified diff" ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2024-03-02T06:30:58+00:00" }, { "name": "sebastian/environment", - "version": "5.1.3", + "version": "5.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac" + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", "shasum": "" }, "require": { @@ -3060,26 +3725,30 @@ "environment", "hhvm" ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2020-09-28T05:52:38+00:00" + "time": "2023-02-03T06:03:51+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.4", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c", + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c", "shasum": "" }, "require": { @@ -3133,26 +3802,42 @@ "export", "exporter" ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2021-11-11T14:18:36+00:00" + "time": "2025-09-24T06:03:27+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.5", + "version": "5.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", "shasum": "" }, "require": { @@ -3193,30 +3878,46 @@ "keywords": [ "global state" ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2022-02-14T08:28:10+00:00" + "time": "2025-08-10T07:10:35+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.3", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -3246,13 +3947,17 @@ ], "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.4" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2023-12-22T06:20:34+00:00" }, { "name": "sebastian/object-enumerator", @@ -3299,6 +4004,10 @@ ], "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", @@ -3350,6 +4059,10 @@ ], "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", @@ -3360,16 +4073,16 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.4", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0", + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0", "shasum": "" }, "require": { @@ -3408,27 +4121,43 @@ } ], "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2020-10-26T13:17:30+00:00" + "time": "2025-08-10T06:57:39+00:00" }, { "name": "sebastian/resource-operations", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", "shasum": "" }, "require": { @@ -3440,7 +4169,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -3460,38 +4189,41 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2024-03-14T16:00:52+00:00" }, { "name": "sebastian/type", - "version": "2.3.4", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914" + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914", - "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", "shasum": "" }, "require": { "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -3512,369 +4244,188 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "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/" - ] + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" }, - "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", "funding": [ { "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:39:44+00:00" - }, - { - "name": "squizlabs/php_codesniffer", - "version": "3.6.2", - "source": { - "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a", - "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a", - "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" - ], - "time": "2021-12-12T21:44:58+00:00" - }, - { - "name": "symfony/config", - "version": "v4.4.37", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "e8c2d2c951ddedecb6d28954d336cb7d2e852d0e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/e8c2d2c951ddedecb6d28954d336cb7d2e852d0e", - "reference": "e8c2d2c951ddedecb6d28954d336cb7d2e852d0e", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/filesystem": "^3.4|^4.0|^5.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.16", - "symfony/polyfill-php81": "^1.22" - }, - "conflict": { - "symfony/finder": "<3.4" - }, - "require-dev": { - "symfony/event-dispatcher": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/messenger": "^4.1|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" + "type": "github" } ], - "time": "2022-01-03T09:46:22+00:00" + "time": "2023-02-03T06:13:03+00:00" }, { - "name": "symfony/dependency-injection", - "version": "v4.4.37", + "name": "sebastian/version", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "c00a23904b42f140087d36e1d22c88801bb39689" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c00a23904b42f140087d36e1d22c88801bb39689", - "reference": "c00a23904b42f140087d36e1d22c88801bb39689", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/container": "^1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1.6|^2" - }, - "conflict": { - "symfony/config": "<4.3|>=5.0", - "symfony/finder": "<3.4", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0|2.0" - }, - "require-dev": { - "symfony/config": "^4.3", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/yaml": "^4.4|^5.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" + "php": ">=7.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Allows you to standardize and centralize the way objects are constructed in your application", - "homepage": "https://symfony.com", + "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://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2022-01-24T17:17:45+00:00" + "time": "2020-09-28T06:39:44+00:00" }, { - "name": "symfony/filesystem", - "version": "v5.4.3", + "name": "squizlabs/php_codesniffer", + "version": "3.13.5", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b" + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/0f0c4bf1840420f4aef3f32044a9dbb24682731b", - "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4", + "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, + "bin": [ + "bin/phpcbf", + "bin/phpcs" + ], + "type": "library", "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Greg Sherwood", + "role": "Former lead" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" } ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" + "url": "https://github.com/PHPCSStandards", + "type": "github" }, { - "url": "https://github.com/fabpot", + "url": "https://github.com/jrfnl", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2025-11-04T16:30:35+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.24.0", + "name": "symfony/config", + "version": "v6.4.32", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" + "url": "https://github.com/symfony/config.git", + "reference": "d445badf0ad2c2a492e38c0378c39997a56ef97b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", + "url": "https://api.github.com/repos/symfony/config/zipball/d445badf0ad2c2a492e38c0378c39997a56ef97b", + "reference": "d445badf0ad2c2a492e38c0378c39997a56ef97b", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/filesystem": "^5.4|^6.0|^7.0", + "symfony/polyfill-ctype": "~1.8" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "conflict": { + "symfony/finder": "<5.4", + "symfony/service-contracts": "<2.5" }, + "require-dev": { + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Component\\Config\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3883,26 +4434,19 @@ ], "authors": [ { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], + "support": { + "source": "https://github.com/symfony/config/tree/v6.4.32" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3912,49 +4456,61 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2021-09-13T13:58:33+00:00" + "time": "2026-01-13T08:40:30+00:00" }, { - "name": "symfony/polyfill-php81", - "version": "v1.24.0", + "name": "symfony/dependency-injection", + "version": "v6.4.32", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "b17882e933c4c606620247b6708ab53aa3b88753" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", - "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b17882e933c4c606620247b6708ab53aa3b88753", + "reference": "b17882e933c4c606620247b6708ab53aa3b88753", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/service-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4.20|^7.2.5" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "conflict": { + "ext-psr": "<1.1|>=2", + "symfony/config": "<6.1", + "symfony/finder": "<5.4", + "symfony/proxy-manager-bridge": "<6.3", + "symfony/yaml": "<5.4" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "symfony/service-implementation": "1.1|2.0|3.0" }, + "require-dev": { + "symfony/config": "^6.1|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" + "Symfony\\Component\\DependencyInjection\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3963,22 +4519,19 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.32" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3988,51 +4541,48 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2021-09-13T13:58:11+00:00" + "time": "2026-01-23T10:54:33+00:00" }, { - "name": "symfony/service-contracts", - "version": "v2.4.1", + "name": "symfony/var-exporter", + "version": "v6.4.26", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "d664541b99d6fb0247ec5ff32e87238582236204" + "url": "https://github.com/symfony/var-exporter.git", + "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d664541b99d6fb0247ec5ff32e87238582236204", - "reference": "d664541b99d6fb0247ec5ff32e87238582236204", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/466fcac5fa2e871f83d31173f80e9c2684743bfc", + "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1" - }, - "conflict": { - "ext-psr": "<1.1|>=2" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" }, - "suggest": { - "symfony/service-implementation": "" + "require-dev": { + "symfony/property-access": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "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\\": "" - } + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4048,16 +4598,21 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to writing services", + "description": "Allows exporting any serializable PHP data structure to plain PHP code", "homepage": "https://symfony.com", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "lazy-loading", + "proxy", + "serialize" ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v6.4.26" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -4067,25 +4622,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2021-11-04T16:37:19+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -4112,77 +4671,27 @@ } ], "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.3.1" + }, "funding": [ { "url": "https://github.com/theseer", "type": "github" } ], - "time": "2021-07-28T10:34:58+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" - ], - "time": "2021-03-09T10:59:23+00:00" + "time": "2025-11-17T20:03:58+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=7.4" + "php": "^8.1" }, - "platform-dev": [], - "plugin-api-version": "2.2.0" + "platform-dev": {}, + "plugin-api-version": "2.9.0" } diff --git a/docs/contributing.md b/docs/contributing.md index 50dd850..e5fe26e 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -41,7 +41,7 @@ If applicable, update the `CHANGELOG.md` with your change, following the [Keep a ## Building -You can build the magedbm2 phar archive with [Box](https://github.com/box-project/box2) by running: +You can build the magedbm2 phar archive with [Box](https://box-project.github.io/box/) by running: make build diff --git a/manifest.json b/manifest.json index 1bf39d2..be690ee 100644 --- a/manifest.json +++ b/manifest.json @@ -1,4 +1,10 @@ [ + { + "name": "magedbm2.phar", + "sha1": "BF0743FE992E3477EC96B1CCB5BBB31EC6DCB52C", + "url": "https://github.com/space48/magedbm2/releases/download/6.0.0/magedbm2.phar", + "version": "6.0.0" + }, { "name": "magedbm2.phar", "sha1": "fe26f6439d189431115e98297af2e306de291159", diff --git a/src/Application/Config.php b/src/Application/Config.php index 4a2c065..acff241 100644 --- a/src/Application/Config.php +++ b/src/Application/Config.php @@ -227,14 +227,7 @@ private function isAssocArray($array) return count(array_filter(array_keys($array), 'is_string')) !== 0; } - /** - * Sets a logger instance on the object. - * - * @param LoggerInterface $logger - * - * @return void - */ - public function setLogger(LoggerInterface $logger) + public function setLogger(LoggerInterface $logger): void { $this->logger = $logger; } diff --git a/src/Command/BaseCommand.php b/src/Command/BaseCommand.php index 12f227e..2360270 100644 --- a/src/Command/BaseCommand.php +++ b/src/Command/BaseCommand.php @@ -223,10 +223,7 @@ protected function getLogger() return $this->logger; } - /** - * @param LoggerInterface $logger - */ - public function setLogger(LoggerInterface $logger) + public function setLogger(LoggerInterface $logger): void { $this->logger = $logger; } diff --git a/src/Service/Anonymiser/Eav.php b/src/Service/Anonymiser/Eav.php index fb82c25..d0832ec 100644 --- a/src/Service/Anonymiser/Eav.php +++ b/src/Service/Anonymiser/Eav.php @@ -12,16 +12,15 @@ class Eav * @param $table * @return mixed|null */ - public static function getEntityFromTable($table) + public static function getEntityFromTable($table): mixed { - if (strpos($table, '_entity') === false) { + if (strpos((string)$table, '_entity') === false) { return null; } $entity = self::getEavParts($table)[0]; - $entity = str_replace('_entity', '', $entity); - return $entity; + return str_replace('_entity', '', $entity); } /** @@ -39,7 +38,7 @@ public static function isValueTable($table) private static function getEavParts($table) { - $parts = explode('_entity_', $table); + $parts = explode('_entity_', (string)$table); if (count($parts) > 1) { return [$parts[0], $parts[1]]; diff --git a/src/Service/Anonymiser/Export.php b/src/Service/Anonymiser/Export.php index d7f0e33..089fd09 100644 --- a/src/Service/Anonymiser/Export.php +++ b/src/Service/Anonymiser/Export.php @@ -271,14 +271,7 @@ private function processEavTable(Row $row) ); } - /** - * Sets a logger instance on the object. - * - * @param LoggerInterface $logger - * - * @return void - */ - public function setLogger(LoggerInterface $logger) + public function setLogger(LoggerInterface $logger): void { $this->logger = $logger; } diff --git a/src/Service/Database/Fake.php b/src/Service/Database/Fake.php index c2e0555..cc124b3 100644 --- a/src/Service/Database/Fake.php +++ b/src/Service/Database/Fake.php @@ -61,14 +61,7 @@ public function dump($identifier, $strip_tables = '') return $file; } - /** - * Sets a logger instance on the object. - * - * @param LoggerInterface $logger - * - * @return void - */ - public function setLogger(LoggerInterface $logger) + public function setLogger(LoggerInterface $logger): void { $this->logger = $logger; } diff --git a/src/Service/Database/Shell.php b/src/Service/Database/Shell.php index b1dba7d..54176b2 100644 --- a/src/Service/Database/Shell.php +++ b/src/Service/Database/Shell.php @@ -261,8 +261,7 @@ private function getStripTables(string $strip_tables_patterns): array return $this->tablePatternExpander->expand(explode(' ', $strip_tables_patterns), $this->getAllTables()); } - - public function setLogger(LoggerInterface $logger) + public function setLogger(LoggerInterface $logger): void { $this->logger = $logger; } diff --git a/src/Service/Storage/S3.php b/src/Service/Storage/S3.php index fb7b992..3092013 100644 --- a/src/Service/Storage/S3.php +++ b/src/Service/Storage/S3.php @@ -355,14 +355,7 @@ public function setPurpose($purpose) $this->purpose = $purpose; } - /** - * Sets a logger instance on the object. - * - * @param LoggerInterface $logger - * - * @return void - */ - public function setLogger(LoggerInterface $logger) + public function setLogger(LoggerInterface $logger): void { $this->logger = $logger; } From 5c3a94f70aae552524c3230e889c483cf1ac9b3b Mon Sep 17 00:00:00 2001 From: Igor Mursa Date: Wed, 25 Feb 2026 10:10:44 +0000 Subject: [PATCH 3/4] Update phpcs rules for php 8.1 + fixes from make lint --- phpcs.xml | 4 +- src/Application.php | 5 +- .../Config/DatabaseCredentials.php | 3 +- src/Application/Config/Option.php | 66 +++++++++---------- src/Application/Config/TableGroup.php | 8 +-- src/Application/ConfigInterface.php | 3 +- src/Application/ConfigLoader/FileLoader.php | 11 ++-- src/Command/BaseCommand.php | 9 +-- src/Command/ConfigureCommand.php | 20 +++--- src/Command/ExportCommand.php | 2 +- src/Command/GetCommand.php | 8 +-- src/Command/ImportCommand.php | 8 +-- src/Command/LsCommand.php | 6 +- src/Command/PutCommand.php | 8 +-- src/Command/RmCommand.php | 16 ++--- src/Command/ViewConfigurationCommand.php | 2 +- src/Exception/BaseException.php | 1 - src/Exception/ConfigurationException.php | 1 - src/Exception/ServiceException.php | 1 - src/Helper/TableGroupExpander.php | 18 ++--- src/Service/Anonymiser/Eav.php | 2 +- .../Anonymiser/Export/EavRowProcessor.php | 4 +- .../Anonymiser/Export/FlatRowProcessor.php | 4 +- .../Anonymiser/Export/RowProcessor.php | 2 +- src/Service/Database/Fake.php | 2 +- src/Service/Database/Shell.php | 13 +--- src/Service/Filesystem/Simple.php | 1 - src/Service/Storage/S3.php | 9 ++- src/Service/StorageInterface.php | 4 +- 29 files changed, 116 insertions(+), 125 deletions(-) diff --git a/phpcs.xml b/phpcs.xml index 9fcefaa..a2c4531 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -2,8 +2,8 @@ Custom Code Standard for magedbm2 - + - + diff --git a/src/Application.php b/src/Application.php index 525ea75..f4c7eb3 100644 --- a/src/Application.php +++ b/src/Application.php @@ -28,9 +28,8 @@ */ class Application extends \Symfony\Component\Console\Application { - - const APP_NAME = "magedbm2"; - const APP_VERSION = "3.0.1"; + public const APP_NAME = "magedbm2"; + public const APP_VERSION = "3.0.1"; /** @var ClassLoader $autoloader */ protected $autoloader; diff --git a/src/Application/Config/DatabaseCredentials.php b/src/Application/Config/DatabaseCredentials.php index a007a78..83fe113 100644 --- a/src/Application/Config/DatabaseCredentials.php +++ b/src/Application/Config/DatabaseCredentials.php @@ -90,7 +90,8 @@ public function getPort(): string return $this->port; } - public function getSSLCAPath(): ?string { + public function getSSLCAPath(): ?string + { return $this->sslCAPath; } diff --git a/src/Application/Config/Option.php b/src/Application/Config/Option.php index 875c74f..d5ba420 100644 --- a/src/Application/Config/Option.php +++ b/src/Application/Config/Option.php @@ -4,47 +4,47 @@ final class Option { - const GLOBAL_CONFIG_FILE = 'config'; - const PROJECT_CONFIG_FILE = 'project-config'; + public const GLOBAL_CONFIG_FILE = 'config'; + public const PROJECT_CONFIG_FILE = 'project-config'; - const ROOT_DIR = 'root-dir'; + public const ROOT_DIR = 'root-dir'; - const DB_HOST = 'db-host'; - const DB_NAME = 'db-name'; - const DB_USER = 'db-user'; - const DB_PASS = 'db-pass'; - const DB_PORT = 'db-port'; - const DB_SSL_CA = 'db-ssl-ca'; + public const DB_HOST = 'db-host'; + public const DB_NAME = 'db-name'; + public const DB_USER = 'db-user'; + public const DB_PASS = 'db-pass'; + public const DB_PORT = 'db-port'; + public const DB_SSL_CA = 'db-ssl-ca'; - const YAML_DB_HOST = 'db_host'; - const YAML_DB_NAME = 'db_name'; - const YAML_DB_USER = 'db_user'; - const YAML_DB_PASS = 'db_pass'; - const YAML_DB_PORT = 'db_port'; - const YAML_DB_SSL_CA = 'db_ssl_ca'; + public const YAML_DB_HOST = 'db_host'; + public const YAML_DB_NAME = 'db_name'; + public const YAML_DB_USER = 'db_user'; + public const YAML_DB_PASS = 'db_pass'; + public const YAML_DB_PORT = 'db_port'; + public const YAML_DB_SSL_CA = 'db_ssl_ca'; - const TABLE_GROUPS = 'table-groups'; - - const TEMPORARY_DIR = 'tmp-dir'; + public const TABLE_GROUPS = 'table-groups'; - const FORCE = 'force'; - const DOWNLOAD_ONLY = 'download-only'; - const STRIP = 'strip'; + public const TEMPORARY_DIR = 'tmp-dir'; - const CLEAN_COUNT = 'clean'; - const NO_CLEAN = 'no-clean'; + public const FORCE = 'force'; + public const DOWNLOAD_ONLY = 'download-only'; + public const STRIP = 'strip'; - const STORAGE_SECRET_KEY = 'secret-key'; - const STORAGE_ANONYMISED_BUCKET = 'anonymised-data-bucket'; - const STORAGE_BUCKET = 'bucket'; - const STORAGE_REGION = 'region'; - const STORAGE_ANONYMISED_REGION = 'anonymised-region'; - const STORAGE_ACCESS_KEY = 'access-key'; + public const CLEAN_COUNT = 'clean'; + public const NO_CLEAN = 'no-clean'; - const YAML_STORAGE_SECRET_KEY = 'secret_key'; - const YAML_STORAGE_ACCESS_KEY = 'access_key'; - const YAML_ANONYMISED_BUCKET = 'anonymised_data_bucket'; - const YAML_ANONYMISED_REGION = 'anonymised_region'; + public const STORAGE_SECRET_KEY = 'secret-key'; + public const STORAGE_ANONYMISED_BUCKET = 'anonymised-data-bucket'; + public const STORAGE_BUCKET = 'bucket'; + public const STORAGE_REGION = 'region'; + public const STORAGE_ANONYMISED_REGION = 'anonymised-region'; + public const STORAGE_ACCESS_KEY = 'access-key'; + + public const YAML_STORAGE_SECRET_KEY = 'secret_key'; + public const YAML_STORAGE_ACCESS_KEY = 'access_key'; + public const YAML_ANONYMISED_BUCKET = 'anonymised_data_bucket'; + public const YAML_ANONYMISED_REGION = 'anonymised_region'; /** * Options that a user is allowed to save in a configuration file. diff --git a/src/Application/Config/TableGroup.php b/src/Application/Config/TableGroup.php index 92fc81e..104a94b 100644 --- a/src/Application/Config/TableGroup.php +++ b/src/Application/Config/TableGroup.php @@ -7,14 +7,14 @@ class TableGroup private $id; private $description; private $tables; - + public function __construct(string $id, string $description, string $tables) { $this->id = $id; $this->description = $description; $this->tables = $this->processTablesString($tables); } - + /** * @return string */ @@ -22,7 +22,7 @@ public function getId(): string { return $this->id; } - + /** * @return string */ @@ -30,7 +30,7 @@ public function getDescription(): string { return $this->description; } - + /** * @return array */ diff --git a/src/Application/ConfigInterface.php b/src/Application/ConfigInterface.php index d74ded0..830da91 100644 --- a/src/Application/ConfigInterface.php +++ b/src/Application/ConfigInterface.php @@ -7,7 +7,6 @@ interface ConfigInterface { - /** * Get a config option value. * @@ -26,7 +25,7 @@ public function get($option, $graceful = true); * @return array */ public function all(); - + /** * Get the defined table groups. * diff --git a/src/Application/ConfigLoader/FileLoader.php b/src/Application/ConfigLoader/FileLoader.php index cad25d1..62fe323 100644 --- a/src/Application/ConfigLoader/FileLoader.php +++ b/src/Application/ConfigLoader/FileLoader.php @@ -43,21 +43,22 @@ public function asConfig() } return new Config($values); - } catch (ParseException $exception) { + } catch (ParseException) { $this->configurationError(); } } - // yaml doesn't like variable names with hyphens (https://github.com/Space48/magedbm2/issues/21) + // YAML doesn't like variable names with hyphens (https://github.com/Space48/magedbm2/issues/21) private function validateYamlVariables(array $variables) { $isValidYaml = true; - foreach ($variables as $variableName => $variableValue) { - if (strpos($variableName, '-') !== false) { + foreach (array_keys($variables) as $variableName) { + if (str_contains($variableName, '-')) { $isValidYaml = false; break; } } + return $isValidYaml; } @@ -74,7 +75,7 @@ private function formatConfigVariableNames(array $variables) } // the following line throws a void return not allowed for php <7.0, we do not support php 7.0 - private function configurationError(): void //phpcs:ignore + private function configurationError(): void { throw new ConfigurationException(sprintf( 'The configuration file at %s does not contain valid YAML', diff --git a/src/Command/BaseCommand.php b/src/Command/BaseCommand.php index 2360270..d4fdf7a 100644 --- a/src/Command/BaseCommand.php +++ b/src/Command/BaseCommand.php @@ -23,8 +23,8 @@ */ abstract class BaseCommand extends Command implements LoggerAwareInterface { - const RETURN_CODE_SUCCESS = 0; - const RETURN_CODE_CONFIGURATION_ERROR = 100; + public const RETURN_CODE_SUCCESS = 0; + public const RETURN_CODE_CONFIGURATION_ERROR = 100; private $servicesToValidate = []; @@ -106,6 +106,7 @@ protected function execute(InputInterface $input, OutputInterface $output) /** * Define our global options that can be used by any subcommand. + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ protected function configure() { @@ -115,7 +116,7 @@ protected function configure() Option::PROJECT_CONFIG_FILE, null, InputOption::VALUE_OPTIONAL, - // Note: Don't use the default parameter for the fall back file location as we want to distinguish + // Note: Don't use the default parameter for the fallback file location as we want to distinguish // between a user defined override and the actual default. sprintf( "Project configuration file to use (will search for .magedbm2.yml in your current working directory if not specified, currently: %s)", //phpcs:ignore @@ -126,7 +127,7 @@ protected function configure() Option::GLOBAL_CONFIG_FILE, null, InputOption::VALUE_OPTIONAL, - // Note: Don't use the default parameter for the fall back file location as we want to distinguish + // Note: Don't use the default parameter for the fallback file location as we want to distinguish // between a user defined override and the actual default. sprintf( "User configuration file to use (will search for ~/.magedbm2/config.yml if not specified, currently: %s)", //phpcs:ignore diff --git a/src/Command/ConfigureCommand.php b/src/Command/ConfigureCommand.php index ddec798..7989c94 100644 --- a/src/Command/ConfigureCommand.php +++ b/src/Command/ConfigureCommand.php @@ -24,10 +24,10 @@ */ class ConfigureCommand extends BaseCommand { - const RETURN_CODE_SAVE_ERROR = 1; - const NAME = 'configure'; + public const RETURN_CODE_SAVE_ERROR = 1; + public const NAME = 'configure'; - const ARG_CONFIG_FILE = 'config-file'; + public const ARG_CONFIG_FILE = 'config-file'; /** @var FilesystemInterface */ protected $filesystem; @@ -109,6 +109,8 @@ protected function configure() /** * @inheritdoc + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.NPathComplexity) */ protected function execute(InputInterface $input, OutputInterface $output) { @@ -168,10 +170,12 @@ protected function execute(InputInterface $input, OutputInterface $output) ); if ($this->input->isInteractive()) { - if (!$style->confirm( - sprintf('Are you sure you want to write these configuration values to %s?', $configurationFile), - false - )) { + if ( + !$style->confirm( + sprintf('Are you sure you want to write these configuration values to %s?', $configurationFile), + false + ) + ) { return 0; } } @@ -206,7 +210,7 @@ protected function execute(InputInterface $input, OutputInterface $output) protected function populateOptions(InputInterface $input, SymfonyStyle $style, array $data): array { foreach (Option::allowUserToPersist() as $optionName) { - $configName = Option::mapYamlOptionToConfigOption($optionName)?? $optionName; + $configName = Option::mapYamlOptionToConfigOption($optionName) ?? $optionName; if ($input->isInteractive()) { $currentValue = $this->config->get($configName, true); if ($currentValue) { diff --git a/src/Command/ExportCommand.php b/src/Command/ExportCommand.php index 2ac32d9..d6c39a8 100644 --- a/src/Command/ExportCommand.php +++ b/src/Command/ExportCommand.php @@ -20,7 +20,7 @@ */ class ExportCommand extends BaseCommand { - const NAME = 'export'; + public const NAME = 'export'; /** * @var Export diff --git a/src/Command/GetCommand.php b/src/Command/GetCommand.php index b0b4e4c..cd4f088 100644 --- a/src/Command/GetCommand.php +++ b/src/Command/GetCommand.php @@ -23,10 +23,10 @@ */ class GetCommand extends BaseCommand { - const RETURN_CODE_DOWNLOAD_ERROR = 1; - const RETURN_CODE_FILESYSTEM_ERROR = 2; - const RETURN_CODE_DATABASE_ERROR = 3; - const NAME = "get"; + public const RETURN_CODE_DOWNLOAD_ERROR = 1; + public const RETURN_CODE_FILESYSTEM_ERROR = 2; + public const RETURN_CODE_DATABASE_ERROR = 3; + public const NAME = "get"; /** @var DatabaseInterface */ protected $database; diff --git a/src/Command/ImportCommand.php b/src/Command/ImportCommand.php index 0049e09..cca9400 100644 --- a/src/Command/ImportCommand.php +++ b/src/Command/ImportCommand.php @@ -23,10 +23,10 @@ */ class ImportCommand extends BaseCommand { - const NAME = 'import'; - const OPT_NO_PROGRESS = 'no-progress'; - const ARG_PROJECT = "project"; - const ARG_FILE = "file"; + public const NAME = 'import'; + public const OPT_NO_PROGRESS = 'no-progress'; + public const ARG_PROJECT = "project"; + public const ARG_FILE = "file"; /** * @var \PDO diff --git a/src/Command/LsCommand.php b/src/Command/LsCommand.php index ce5a234..0da62d6 100644 --- a/src/Command/LsCommand.php +++ b/src/Command/LsCommand.php @@ -14,10 +14,10 @@ class LsCommand extends BaseCommand { - const RETURN_CODE_STORAGE_ERROR = 1; + public const RETURN_CODE_STORAGE_ERROR = 1; - const ARG_PROJECT = "project"; - const NAME = "ls"; + public const ARG_PROJECT = "project"; + public const NAME = "ls"; /** @var StorageInterface */ protected $storage; diff --git a/src/Command/PutCommand.php b/src/Command/PutCommand.php index d8d36a1..c8f514f 100644 --- a/src/Command/PutCommand.php +++ b/src/Command/PutCommand.php @@ -22,11 +22,11 @@ */ class PutCommand extends BaseCommand { - const RETURN_CODE_DATABASE_ERROR = 1; - const RETURN_CODE_STORAGE_ERROR = 2; + public const RETURN_CODE_DATABASE_ERROR = 1; + public const RETURN_CODE_STORAGE_ERROR = 2; - const ARG_PROJECT = "project"; - const NAME = "put"; + public const ARG_PROJECT = "project"; + public const NAME = "put"; /** @var DatabaseInterface */ protected $database; diff --git a/src/Command/RmCommand.php b/src/Command/RmCommand.php index 21b957f..f752222 100644 --- a/src/Command/RmCommand.php +++ b/src/Command/RmCommand.php @@ -12,15 +12,13 @@ class RmCommand extends BaseCommand { - const RETURN_CODE_STORAGE_ERROR = 1; - - const ARG_TYPE = "type"; - const ARG_PROJECT = "project"; - const ARG_FILE = "file"; - const NAME = "rm"; - - const TYPE_DATABASE = 'database'; - const TYPE_EXPORT = 'export'; + public const RETURN_CODE_STORAGE_ERROR = 1; + public const ARG_TYPE = "type"; + public const ARG_PROJECT = "project"; + public const ARG_FILE = "file"; + public const NAME = "rm"; + public const TYPE_DATABASE = 'database'; + public const TYPE_EXPORT = 'export'; /** @var StorageInterface */ protected $storage; diff --git a/src/Command/ViewConfigurationCommand.php b/src/Command/ViewConfigurationCommand.php index 2830b4f..e09636e 100644 --- a/src/Command/ViewConfigurationCommand.php +++ b/src/Command/ViewConfigurationCommand.php @@ -10,7 +10,7 @@ class ViewConfigurationCommand extends BaseCommand { - const NAME = 'view-config'; + public const NAME = 'view-config'; public function __construct(ConfigInterface $config) { diff --git a/src/Exception/BaseException.php b/src/Exception/BaseException.php index b5285b2..76787f0 100644 --- a/src/Exception/BaseException.php +++ b/src/Exception/BaseException.php @@ -4,5 +4,4 @@ abstract class BaseException extends \Exception { - } diff --git a/src/Exception/ConfigurationException.php b/src/Exception/ConfigurationException.php index 414fb83..cf9e013 100644 --- a/src/Exception/ConfigurationException.php +++ b/src/Exception/ConfigurationException.php @@ -7,5 +7,4 @@ */ class ConfigurationException extends BaseException { - } diff --git a/src/Exception/ServiceException.php b/src/Exception/ServiceException.php index ea9332d..c74154e 100644 --- a/src/Exception/ServiceException.php +++ b/src/Exception/ServiceException.php @@ -4,5 +4,4 @@ class ServiceException extends BaseException { - } diff --git a/src/Helper/TableGroupExpander.php b/src/Helper/TableGroupExpander.php index fb4489c..d72c57e 100644 --- a/src/Helper/TableGroupExpander.php +++ b/src/Helper/TableGroupExpander.php @@ -10,7 +10,7 @@ class TableGroupExpander * @var TableGroup[] */ private $tableGroups; - + /** * @param TableGroup[] $tableGroups */ @@ -26,18 +26,18 @@ public function setTableGroups(array $tableGroups) { $this->tableGroups = $tableGroups; } - + /** * @inheritdoc */ public function expand($tables = '') { $tableDefinitions = explode(' ', $tables); - + foreach ($tableDefinitions as $idx => $table) { if ($this->looksLikeTableDefinition($table)) { $tableGroup = $this->getTableDefinition($table); - + if ($tableGroup !== null) { $tableDefinitions[$idx] = implode(' ', $tableGroup->getTables()); } else { @@ -47,7 +47,7 @@ public function expand($tables = '') } $tableDefinitions = array_map('trim', $tableDefinitions); - + $tableDefinitionString = implode(' ', $tableDefinitions); if (!$this->containsTableDefinition($tableDefinitionString)) { @@ -56,7 +56,7 @@ public function expand($tables = '') return $this->expand($tableDefinitionString); } - + /** * @param $string * @return bool @@ -74,7 +74,7 @@ protected function containsTableDefinition($string): bool { return strpos($string, '@') !== false; } - + /** * @param $string * @return TableGroup|null @@ -82,13 +82,13 @@ protected function containsTableDefinition($string): bool protected function getTableDefinition($string) { $tableGroupId = substr($string, 1); - + foreach ($this->tableGroups as $tableGroup) { if ($tableGroup->getId() === $tableGroupId) { return $tableGroup; } } - + return null; } } diff --git a/src/Service/Anonymiser/Eav.php b/src/Service/Anonymiser/Eav.php index d0832ec..4b81971 100644 --- a/src/Service/Anonymiser/Eav.php +++ b/src/Service/Anonymiser/Eav.php @@ -4,7 +4,7 @@ class Eav { - const VALUE_TYPES = ['datetime', 'decimal', 'int', 'text', 'varchar']; + public const VALUE_TYPES = ['datetime', 'decimal', 'int', 'text', 'varchar']; /** * Gets tht entity name from a table. diff --git a/src/Service/Anonymiser/Export/EavRowProcessor.php b/src/Service/Anonymiser/Export/EavRowProcessor.php index 87c092b..e5869c0 100644 --- a/src/Service/Anonymiser/Export/EavRowProcessor.php +++ b/src/Service/Anonymiser/Export/EavRowProcessor.php @@ -15,7 +15,7 @@ class EavRowProcessor extends RowProcessor */ public function process(Row $row) { - $output = "\t\t" .''. "\n"; + $output = "\t\t" . '' . "\n"; if (Eav::isValueTable($row->table)) { $output .= $this->processDataTable($row); @@ -23,7 +23,7 @@ public function process(Row $row) $output .= $this->processEntityTable($row); } - $output .= "\t\t" .''. "\n"; + $output .= "\t\t" . '' . "\n"; return $output; } diff --git a/src/Service/Anonymiser/Export/FlatRowProcessor.php b/src/Service/Anonymiser/Export/FlatRowProcessor.php index 44784c0..f1c279c 100644 --- a/src/Service/Anonymiser/Export/FlatRowProcessor.php +++ b/src/Service/Anonymiser/Export/FlatRowProcessor.php @@ -14,13 +14,13 @@ class FlatRowProcessor extends RowProcessor */ public function process(Row $row) { - $output = "\t\t" . ''. "\n"; + $output = "\t\t" . '' . "\n"; foreach ($row->all() as $columnName => $columnValue) { $output .= $this->formattedValue($row->table, $columnName, $columnValue); } - $output .= "\t\t" .''. "\n"; + $output .= "\t\t" . '' . "\n"; return $output; } diff --git a/src/Service/Anonymiser/Export/RowProcessor.php b/src/Service/Anonymiser/Export/RowProcessor.php index f7ce767..d695aed 100644 --- a/src/Service/Anonymiser/Export/RowProcessor.php +++ b/src/Service/Anonymiser/Export/RowProcessor.php @@ -92,7 +92,7 @@ protected function runFormatter($value, $formatterSpec) if (in_array('Faker\Provider\Base', class_parents($class), true)) { $instance = new $class($this->faker); } else { - $instance = new $class; + $instance = new $class(); } if ($method) { diff --git a/src/Service/Database/Fake.php b/src/Service/Database/Fake.php index cc124b3..dc95e9d 100644 --- a/src/Service/Database/Fake.php +++ b/src/Service/Database/Fake.php @@ -8,7 +8,7 @@ class Fake implements DatabaseInterface { - const DUMP_FILE_LOCATION = '/fake-dump.sql.gz'; + public const DUMP_FILE_LOCATION = '/fake-dump.sql.gz'; /** * @var FileSystem diff --git a/src/Service/Database/Shell.php b/src/Service/Database/Shell.php index 54176b2..55e6f91 100644 --- a/src/Service/Database/Shell.php +++ b/src/Service/Database/Shell.php @@ -25,16 +25,6 @@ */ class Shell implements DatabaseInterface { - /** - * This is the amount of time that a process will be allowed to execute for. - */ - const PROCESS_TIMEOUT_SECONDS = 3600; - - /** - * @var Application - */ - private $app; - /** * @var Application\ConfigInterface */ @@ -50,9 +40,8 @@ class Shell implements DatabaseInterface */ private $logger; - public function __construct(Application $app, Application\ConfigInterface $config) + public function __construct(Application\ConfigInterface $config) { - $this->app = $app; $this->config = $config; $this->tablePatternExpander = new TablePatternExpander(); $this->logger = new NullLogger(); diff --git a/src/Service/Filesystem/Simple.php b/src/Service/Filesystem/Simple.php index cec3dba..1894151 100644 --- a/src/Service/Filesystem/Simple.php +++ b/src/Service/Filesystem/Simple.php @@ -6,7 +6,6 @@ class Simple implements FilesystemInterface { - /** * @inheritdoc */ diff --git a/src/Service/Storage/S3.php b/src/Service/Storage/S3.php index 3092013..6832802 100644 --- a/src/Service/Storage/S3.php +++ b/src/Service/Storage/S3.php @@ -276,7 +276,8 @@ protected function getClient() $params['region'] = $region; } - if (($access_key = $this->getConfig()->get(Option::STORAGE_ACCESS_KEY)) + if ( + ($access_key = $this->getConfig()->get(Option::STORAGE_ACCESS_KEY)) && ($secret_key = $this->getConfig()->get(Option::STORAGE_SECRET_KEY)) ) { $params["credentials"] = [ @@ -309,13 +310,15 @@ protected function getFileKey($project, $file) */ public function validateConfiguration(): bool { - if ($this->purpose === StorageInterface::PURPOSE_STRIPPED_DATABASE + if ( + $this->purpose === StorageInterface::PURPOSE_STRIPPED_DATABASE && !$this->getConfig()->get(Option::STORAGE_BUCKET, true) ) { throw new ConfigurationException('A bucket needs to be defined'); } - if ($this->purpose === StorageInterface::PURPOSE_ANONYMISED_DATA + if ( + $this->purpose === StorageInterface::PURPOSE_ANONYMISED_DATA && !$this->getConfig()->get(Option::STORAGE_ANONYMISED_BUCKET, true) ) { throw new ConfigurationException('A data bucket for anonymised exports needs to be defined'); diff --git a/src/Service/StorageInterface.php b/src/Service/StorageInterface.php index 4642cfa..bcae4c6 100644 --- a/src/Service/StorageInterface.php +++ b/src/Service/StorageInterface.php @@ -6,8 +6,8 @@ interface StorageInterface extends ConfigurableServiceInterface { - const PURPOSE_STRIPPED_DATABASE = 'stripped-database'; - const PURPOSE_ANONYMISED_DATA = 'anon-data'; + public final const PURPOSE_STRIPPED_DATABASE = 'stripped-database'; + public final const PURPOSE_ANONYMISED_DATA = 'anon-data'; /** * Define the purpose of this instantiation. From 2291fef6450893a02778a20e98df197c3e26ba26 Mon Sep 17 00:00:00 2001 From: Igor Mursa Date: Wed, 25 Feb 2026 16:32:17 +0000 Subject: [PATCH 4/4] Update command execution + after updating symfony related package --- src/Shell/Command/Base.php | 2 +- src/Shell/Pipe.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Shell/Command/Base.php b/src/Shell/Command/Base.php index 5c4389b..4ace8b4 100644 --- a/src/Shell/Command/Base.php +++ b/src/Shell/Command/Base.php @@ -95,6 +95,6 @@ public function toString(): string */ public function toProcess(): Process { - return new Process($this->toString(), null, null, null, 60 * 60 * 12); + return Process::fromShellCommandline($this->toString(), null, null, null, 60 * 60 * 12); } } diff --git a/src/Shell/Pipe.php b/src/Shell/Pipe.php index ffa47da..3dc9f44 100644 --- a/src/Shell/Pipe.php +++ b/src/Shell/Pipe.php @@ -31,6 +31,6 @@ public function toString(): string */ public function toProcess(): Process { - return new Process($this->toString(), null, null, null, 60 * 60 * 12); + return Process::fromShellCommandline($this->toString(), null, null, null, 60 * 60 * 12); } }