From 1298fa6ab297172ef0d0db154ae143ad1b4a37c8 Mon Sep 17 00:00:00 2001 From: Maxime Veber <nek.dev@gmail.com> Date: Fri, 25 Jun 2021 19:07:10 +0200 Subject: [PATCH] feat: add swarrot to the story --- README.md | 13 +- composer.json | 13 +- composer.lock | 664 ++++++++++++++------ docker-compose.yaml | 8 + src/Command/SwarrotConsumeSimpleCommand.php | 66 ++ symfony.lock | 9 + 6 files changed, 563 insertions(+), 210 deletions(-) create mode 100644 docker-compose.yaml create mode 100644 src/Command/SwarrotConsumeSimpleCommand.php diff --git a/README.md b/README.md index 5b54cc1..44ba419 100644 --- a/README.md +++ b/README.md @@ -13,12 +13,21 @@ Test docker-compose up -d bin/console app:gen-messages 1400 bin/console messenger:consume --limit=1400 +bin/console swarrot:consume:simple --limit 1400 ``` -Résultat --------- + + +Résultat Symfony 5.2 +-------------------- Le test précédent tourne environ en 10 secondes sur mon ordinateur. Par défaut messenger consume un message en 7ms environ sur ma machine. On peut atteindre 140 messages par seconde sur ma machine. + + +Résultat Symfony 5.3 +-------------------- + +Le test précédent tourne environ en 3 secondes sur mon ordinateur. Les performances sont comparables à swarrot. diff --git a/composer.json b/composer.json index 2287baa..edca29e 100644 --- a/composer.json +++ b/composer.json @@ -7,13 +7,14 @@ "php": ">=8.0.0", "ext-ctype": "*", "ext-iconv": "*", - "symfony/console": "5.2.*", - "symfony/dotenv": "5.2.*", + "swarrot/swarrot": "^4.11", + "symfony/console": "5.3.*", + "symfony/dotenv": "5.3.*", "symfony/flex": "^1.3.1", - "symfony/framework-bundle": "5.2.*", + "symfony/framework-bundle": "5.3.*", "symfony/maker-bundle": "^1.31", - "symfony/messenger": "5.2.*", - "symfony/yaml": "5.2.*" + "symfony/messenger": "5.3.*", + "symfony/yaml": "5.3.*" }, "config": { "optimize-autoloader": true, @@ -55,7 +56,7 @@ "extra": { "symfony": { "allow-contrib": false, - "require": "5.2.*" + "require": "5.3.*" } } } diff --git a/composer.lock b/composer.lock index de3c410..1424039 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e8c28de4a7e277065c3d75912e4cfabc", + "content-hash": "b74101562d7968b5c0d856cb9f6f9f22", "packages": [ { "name": "doctrine/inflector", @@ -354,24 +354,96 @@ }, "time": "2021-05-03T11:20:27+00:00" }, + { + "name": "swarrot/swarrot", + "version": "v4.11.0", + "source": { + "type": "git", + "url": "https://github.com/swarrot/swarrot.git", + "reference": "51e5c182e22a71ea2d3d05f66724f0afec03bf2d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swarrot/swarrot/zipball/51e5c182e22a71ea2d3d05f66724f0afec03bf2d", + "reference": "51e5c182e22a71ea2d3d05f66724f0afec03bf2d", + "shasum": "" + }, + "require": { + "php": ">7.2.5 || ^8.0", + "psr/log": "^1.0", + "symfony/options-resolver": "^3.4 || ^4.3 || ^5.0" + }, + "conflict": { + "doctrine/persistence": "<1.3" + }, + "require-dev": { + "doctrine/common": "^2.9", + "doctrine/dbal": "^2.4", + "php-amqplib/php-amqplib": "^2.1", + "php-http/curl-client": "^2.0", + "phpunit/phpunit": "^8.4", + "symfony/contracts": "^1.0 || ^2.0", + "symfony/error-handler": "^5.0", + "symfony/phpunit-bridge": "^5.0" + }, + "suggest": { + "pecl-amqp": "*", + "php-amqplib/php-amqplib": "^2.1", + "symfony/console": "^3.4 || ^4.3 || ^5.0", + "symfony/contracts": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.11.x-dev" + } + }, + "autoload": { + "psr-4": { + "Swarrot\\": "src/Swarrot" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Olivier Dolbeau", + "homepage": "http://odolbeau.fr/" + } + ], + "description": "A simple lib to consume RabbitMQ queues", + "keywords": [ + "AMQP", + "queue", + "swarrot", + "worker" + ], + "support": { + "issues": "https://github.com/swarrot/swarrot/issues", + "source": "https://github.com/swarrot/swarrot/tree/v4.11.0" + }, + "time": "2021-01-21T09:09:46+00:00" + }, { "name": "symfony/amqp-messenger", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/amqp-messenger.git", - "reference": "2dbdde5e095c1ee8df84560db5bdd4e7e48cbeac" + "reference": "2d8f975c1d0a826feb044dcbe5424cb9c35ae9fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/2dbdde5e095c1ee8df84560db5bdd4e7e48cbeac", - "reference": "2dbdde5e095c1ee8df84560db5bdd4e7e48cbeac", + "url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/2d8f975c1d0a826feb044dcbe5424cb9c35ae9fd", + "reference": "2d8f975c1d0a826feb044dcbe5424cb9c35ae9fd", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.1", - "symfony/messenger": "^5.1" + "symfony/messenger": "^5.3" }, "require-dev": { "symfony/event-dispatcher": "^4.4|^5.0", @@ -405,7 +477,7 @@ "description": "Symfony AMQP extension Messenger Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/amqp-messenger/tree/v5.2.7" + "source": "https://github.com/symfony/amqp-messenger/tree/v5.3.2" }, "funding": [ { @@ -421,20 +493,20 @@ "type": "tidelift" } ], - "time": "2021-04-07T16:27:53+00:00" + "time": "2021-06-17T12:34:27+00:00" }, { "name": "symfony/cache", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "1d801d1dc5e3840e832568db6b35a954cfb435a8" + "reference": "44fd0f97d1fb198d344f22379dfc56af2221e608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/1d801d1dc5e3840e832568db6b35a954cfb435a8", - "reference": "1d801d1dc5e3840e832568db6b35a954cfb435a8", + "url": "https://api.github.com/repos/symfony/cache/zipball/44fd0f97d1fb198d344f22379dfc56af2221e608", + "reference": "44fd0f97d1fb198d344f22379dfc56af2221e608", "shasum": "" }, "require": { @@ -442,6 +514,7 @@ "psr/cache": "^1.0|^2.0", "psr/log": "^1.1", "symfony/cache-contracts": "^1.1.7|^2", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2", "symfony/var-exporter": "^4.4|^5.0" @@ -459,7 +532,7 @@ }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/cache": "^1.6", + "doctrine/cache": "^1.6|^2.0", "doctrine/dbal": "^2.10|^3.0", "predis/predis": "^1.1", "psr/simple-cache": "^1.0", @@ -500,7 +573,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.2.7" + "source": "https://github.com/symfony/cache/tree/v5.3.0" }, "funding": [ { @@ -516,7 +589,7 @@ "type": "tidelift" } ], - "time": "2021-04-23T16:56:33+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/cache-contracts", @@ -599,16 +672,16 @@ }, { "name": "symfony/config", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "3817662ada105c8c4d1afdb4ec003003efd1d8d8" + "reference": "9c307728cfacbd50914f0db28aee1e0ecd82b99f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/3817662ada105c8c4d1afdb4ec003003efd1d8d8", - "reference": "3817662ada105c8c4d1afdb4ec003003efd1d8d8", + "url": "https://api.github.com/repos/symfony/config/zipball/9c307728cfacbd50914f0db28aee1e0ecd82b99f", + "reference": "9c307728cfacbd50914f0db28aee1e0ecd82b99f", "shasum": "" }, "require": { @@ -616,7 +689,8 @@ "symfony/deprecation-contracts": "^2.1", "symfony/filesystem": "^4.4|^5.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.15", + "symfony/polyfill-php81": "^1.22" }, "conflict": { "symfony/finder": "<4.4" @@ -657,7 +731,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v5.2.7" + "source": "https://github.com/symfony/config/tree/v5.3.2" }, "funding": [ { @@ -673,24 +747,25 @@ "type": "tidelift" } ], - "time": "2021-04-07T16:07:52+00:00" + "time": "2021-06-12T10:15:17+00:00" }, { "name": "symfony/console", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "90374b8ed059325b49a29b55b3f8bb4062c87629" + "reference": "649730483885ff2ca99ca0560ef0e5f6b03f2ac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/90374b8ed059325b49a29b55b3f8bb4062c87629", - "reference": "90374b8ed059325b49a29b55b3f8bb4062c87629", + "url": "https://api.github.com/repos/symfony/console/zipball/649730483885ff2ca99ca0560ef0e5f6b03f2ac1", + "reference": "649730483885ff2ca99ca0560ef0e5f6b03f2ac1", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", "symfony/polyfill-php80": "^1.15", @@ -754,7 +829,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.2.7" + "source": "https://github.com/symfony/console/tree/v5.3.2" }, "funding": [ { @@ -770,31 +845,32 @@ "type": "tidelift" } ], - "time": "2021-04-19T14:07:32+00:00" + "time": "2021-06-12T09:42:48+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "6ca378b99e3c9ba6127eb43b68389fb2b7348577" + "reference": "ddbff73bc4fa3d5b415431d486770ab0e72f6516" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/6ca378b99e3c9ba6127eb43b68389fb2b7348577", - "reference": "6ca378b99e3c9ba6127eb43b68389fb2b7348577", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ddbff73bc4fa3d5b415431d486770ab0e72f6516", + "reference": "ddbff73bc4fa3d5b415431d486770ab0e72f6516", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/container": "^1.0", + "psr/container": "^1.1.1", "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1.6|^2" }, "conflict": { - "symfony/config": "<5.1", + "ext-psr": "<1.1|>=2", + "symfony/config": "<5.3", "symfony/finder": "<4.4", "symfony/proxy-manager-bridge": "<4.4", "symfony/yaml": "<4.4" @@ -804,7 +880,7 @@ "symfony/service-implementation": "1.0|2.0" }, "require-dev": { - "symfony/config": "^5.1", + "symfony/config": "^5.3", "symfony/expression-language": "^4.4|^5.0", "symfony/yaml": "^4.4|^5.0" }, @@ -841,7 +917,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.2.7" + "source": "https://github.com/symfony/dependency-injection/tree/v5.3.2" }, "funding": [ { @@ -857,7 +933,7 @@ "type": "tidelift" } ], - "time": "2021-04-24T14:32:26+00:00" + "time": "2021-06-12T09:17:04+00:00" }, { "name": "symfony/deprecation-contracts", @@ -928,16 +1004,16 @@ }, { "name": "symfony/doctrine-messenger", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-messenger.git", - "reference": "f5544cd4a5d06ffb75a09c6cde099d22cd0e1255" + "reference": "beedb48475116c8c9c75fc6de70b35a656d4c442" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/f5544cd4a5d06ffb75a09c6cde099d22cd0e1255", - "reference": "f5544cd4a5d06ffb75a09c6cde099d22cd0e1255", + "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/beedb48475116c8c9c75fc6de70b35a656d4c442", + "reference": "beedb48475116c8c9c75fc6de70b35a656d4c442", "shasum": "" }, "require": { @@ -981,7 +1057,7 @@ "description": "Symfony Doctrine Messenger Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-messenger/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/doctrine-messenger/tree/v5.3.2" }, "funding": [ { @@ -997,20 +1073,20 @@ "type": "tidelift" } ], - "time": "2021-04-07T16:27:53+00:00" + "time": "2021-06-04T22:34:10+00:00" }, { "name": "symfony/dotenv", - "version": "v5.2.4", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "783f12027c6b40ab0e93d6136d9f642d1d67cd6b" + "reference": "1ac423fcc9548709077f90aca26c733cdb7e6e5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/783f12027c6b40ab0e93d6136d9f642d1d67cd6b", - "reference": "783f12027c6b40ab0e93d6136d9f642d1d67cd6b", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/1ac423fcc9548709077f90aca26c733cdb7e6e5c", + "reference": "1ac423fcc9548709077f90aca26c733cdb7e6e5c", "shasum": "" }, "require": { @@ -1051,7 +1127,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v5.2.4" + "source": "https://github.com/symfony/dotenv/tree/v5.3.0" }, "funding": [ { @@ -1067,20 +1143,20 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:01:46+00:00" + "time": "2021-05-26T12:52:38+00:00" }, { "name": "symfony/error-handler", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "ea3ddbf67615e883ca7c33a4de61213789846782" + "reference": "0e6768b8c0dcef26df087df2bbbaa143867a59b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/ea3ddbf67615e883ca7c33a4de61213789846782", - "reference": "ea3ddbf67615e883ca7c33a4de61213789846782", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/0e6768b8c0dcef26df087df2bbbaa143867a59b2", + "reference": "0e6768b8c0dcef26df087df2bbbaa143867a59b2", "shasum": "" }, "require": { @@ -1120,7 +1196,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.2.7" + "source": "https://github.com/symfony/error-handler/tree/v5.3.0" }, "funding": [ { @@ -1136,20 +1212,20 @@ "type": "tidelift" } ], - "time": "2021-04-07T15:57:33+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.2.4", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d08d6ec121a425897951900ab692b612a61d6240" + "reference": "67a5f354afa8e2f231081b3fa11a5912f933c3ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d08d6ec121a425897951900ab692b612a61d6240", - "reference": "d08d6ec121a425897951900ab692b612a61d6240", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/67a5f354afa8e2f231081b3fa11a5912f933c3ce", + "reference": "67a5f354afa8e2f231081b3fa11a5912f933c3ce", "shasum": "" }, "require": { @@ -1205,7 +1281,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.4" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.0" }, "funding": [ { @@ -1221,7 +1297,7 @@ "type": "tidelift" } ], - "time": "2021-02-18T17:12:37+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -1304,16 +1380,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0" + "reference": "348116319d7fb7d1faa781d26a48922428013eb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/056e92acc21d977c37e6ea8e97374b2a6c8551b0", - "reference": "056e92acc21d977c37e6ea8e97374b2a6c8551b0", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/348116319d7fb7d1faa781d26a48922428013eb2", + "reference": "348116319d7fb7d1faa781d26a48922428013eb2", "shasum": "" }, "require": { @@ -1346,7 +1422,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.2.7" + "source": "https://github.com/symfony/filesystem/tree/v5.3.0" }, "funding": [ { @@ -1362,20 +1438,20 @@ "type": "tidelift" } ], - "time": "2021-04-01T10:42:13+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/finder", - "version": "v5.2.4", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "0d639a0943822626290d169965804f79400e6a04" + "reference": "0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/0d639a0943822626290d169965804f79400e6a04", - "reference": "0d639a0943822626290d169965804f79400e6a04", + "url": "https://api.github.com/repos/symfony/finder/zipball/0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6", + "reference": "0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6", "shasum": "" }, "require": { @@ -1407,7 +1483,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.4" + "source": "https://github.com/symfony/finder/tree/v5.3.0" }, "funding": [ { @@ -1423,20 +1499,20 @@ "type": "tidelift" } ], - "time": "2021-02-15T18:55:04+00:00" + "time": "2021-05-26T12:52:38+00:00" }, { "name": "symfony/flex", - "version": "v1.12.2", + "version": "v1.13.3", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "e472606b4b3173564f0edbca8f5d32b52fc4f2c9" + "reference": "2597d0dda8042c43eed44a9cd07236b897e427d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/e472606b4b3173564f0edbca8f5d32b52fc4f2c9", - "reference": "e472606b4b3173564f0edbca8f5d32b52fc4f2c9", + "url": "https://api.github.com/repos/symfony/flex/zipball/2597d0dda8042c43eed44a9cd07236b897e427d7", + "reference": "2597d0dda8042c43eed44a9cd07236b897e427d7", "shasum": "" }, "require": { @@ -1453,7 +1529,7 @@ "type": "composer-plugin", "extra": { "branch-alias": { - "dev-main": "1.12-dev" + "dev-main": "1.13-dev" }, "class": "Symfony\\Flex\\Flex" }, @@ -1475,7 +1551,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v1.12.2" + "source": "https://github.com/symfony/flex/tree/v1.13.3" }, "funding": [ { @@ -1491,45 +1567,45 @@ "type": "tidelift" } ], - "time": "2021-02-16T14:05:05+00:00" + "time": "2021-05-19T07:19:15+00:00" }, { "name": "symfony/framework-bundle", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "af652965c2a598e192200c6932ab9edd283ffe42" + "reference": "120e80e882debd7e705d53a3b054e1a0fae91fbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/af652965c2a598e192200c6932ab9edd283ffe42", - "reference": "af652965c2a598e192200c6932ab9edd283ffe42", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/120e80e882debd7e705d53a3b054e1a0fae91fbc", + "reference": "120e80e882debd7e705d53a3b054e1a0fae91fbc", "shasum": "" }, "require": { "ext-xml": "*", "php": ">=7.2.5", "symfony/cache": "^5.2", - "symfony/config": "^5.0", - "symfony/dependency-injection": "^5.2", + "symfony/config": "^5.3", + "symfony/dependency-injection": "^5.3", "symfony/deprecation-contracts": "^2.1", "symfony/error-handler": "^4.4.1|^5.0.1", "symfony/event-dispatcher": "^5.1", "symfony/filesystem": "^4.4|^5.0", "symfony/finder": "^4.4|^5.0", - "symfony/http-foundation": "^5.2.1", - "symfony/http-kernel": "^5.2.1", + "symfony/http-foundation": "^5.3", + "symfony/http-kernel": "^5.3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "^1.15", - "symfony/routing": "^5.2" + "symfony/routing": "^5.3" }, "conflict": { "doctrine/persistence": "<1.3", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "phpunit/phpunit": "<5.4.3", - "symfony/asset": "<5.1", + "symfony/asset": "<5.3", "symfony/browser-kit": "<4.4", "symfony/console": "<5.2.5", "symfony/dom-crawler": "<4.4", @@ -1540,11 +1616,13 @@ "symfony/mailer": "<5.2", "symfony/messenger": "<4.4", "symfony/mime": "<4.4", - "symfony/property-access": "<5.2", + "symfony/property-access": "<5.3", "symfony/property-info": "<4.4", + "symfony/security-core": "<5.3", + "symfony/security-csrf": "<5.3", "symfony/serializer": "<5.2", "symfony/stopwatch": "<4.4", - "symfony/translation": "<5.0", + "symfony/translation": "<5.3", "symfony/twig-bridge": "<4.4", "symfony/twig-bundle": "<4.4", "symfony/validator": "<5.2", @@ -1553,39 +1631,71 @@ }, "require-dev": { "doctrine/annotations": "^1.10.4", - "doctrine/cache": "~1.0", + "doctrine/cache": "^1.0|^2.0", "doctrine/persistence": "^1.3|^2.0", "paragonie/sodium_compat": "^1.8", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/asset": "^5.1", + "symfony/allmysms-notifier": "^5.3", + "symfony/asset": "^5.3", "symfony/browser-kit": "^4.4|^5.0", + "symfony/clickatell-notifier": "^5.3", "symfony/console": "^5.2", "symfony/css-selector": "^4.4|^5.0", + "symfony/discord-notifier": "^5.3", "symfony/dom-crawler": "^4.4|^5.0", "symfony/dotenv": "^5.1", + "symfony/esendex-notifier": "^5.3", "symfony/expression-language": "^4.4|^5.0", + "symfony/fake-chat-notifier": "^5.3", + "symfony/fake-sms-notifier": "^5.3", + "symfony/firebase-notifier": "^5.3", "symfony/form": "^5.2", + "symfony/free-mobile-notifier": "^5.3", + "symfony/gatewayapi-notifier": "^5.3", + "symfony/gitter-notifier": "^5.3", + "symfony/google-chat-notifier": "^5.3", "symfony/http-client": "^4.4|^5.0", + "symfony/infobip-notifier": "^5.3", + "symfony/iqsms-notifier": "^5.3", + "symfony/light-sms-notifier": "^5.3", + "symfony/linked-in-notifier": "^5.3", "symfony/lock": "^4.4|^5.0", "symfony/mailer": "^5.2", + "symfony/mattermost-notifier": "^5.3", + "symfony/message-bird-notifier": "^5.3", "symfony/messenger": "^5.2", + "symfony/microsoft-teams-notifier": "^5.3", "symfony/mime": "^4.4|^5.0", + "symfony/mobyt-notifier": "^5.3", + "symfony/nexmo-notifier": "^5.3", + "symfony/notifier": "^5.3", + "symfony/octopush-notifier": "^5.3", + "symfony/ovh-cloud-notifier": "^5.3", + "symfony/phpunit-bridge": "^5.3", "symfony/polyfill-intl-icu": "~1.0", "symfony/process": "^4.4|^5.0", "symfony/property-info": "^4.4|^5.0", - "symfony/security-bundle": "^5.1", - "symfony/security-core": "^4.4|^5.2", - "symfony/security-csrf": "^4.4|^5.0", - "symfony/security-http": "^4.4|^5.0", + "symfony/rate-limiter": "^5.2", + "symfony/rocket-chat-notifier": "^5.3", + "symfony/security-bundle": "^5.3", + "symfony/sendinblue-notifier": "^5.3", "symfony/serializer": "^5.2", + "symfony/sinch-notifier": "^5.3", + "symfony/slack-notifier": "^5.3", + "symfony/sms-biuras-notifier": "^5.3", + "symfony/smsapi-notifier": "^5.3", + "symfony/spot-hit-notifier": "^5.3", "symfony/stopwatch": "^4.4|^5.0", "symfony/string": "^5.0", - "symfony/translation": "^5.0", + "symfony/telegram-notifier": "^5.3", + "symfony/translation": "^5.3", "symfony/twig-bundle": "^4.4|^5.0", + "symfony/twilio-notifier": "^5.3", "symfony/validator": "^5.2", "symfony/web-link": "^4.4|^5.0", "symfony/workflow": "^5.2", "symfony/yaml": "^4.4|^5.0", + "symfony/zulip-notifier": "^5.3", "twig/twig": "^2.10|^3.0" }, "suggest": { @@ -1624,7 +1734,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v5.2.7" + "source": "https://github.com/symfony/framework-bundle/tree/v5.3.2" }, "funding": [ { @@ -1640,7 +1750,7 @@ "type": "tidelift" } ], - "time": "2021-04-16T17:21:25+00:00" + "time": "2021-06-17T13:29:40+00:00" }, { "name": "symfony/http-client-contracts", @@ -1722,16 +1832,16 @@ }, { "name": "symfony/http-foundation", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "a416487a73bb9c9d120e9ba3a60547f4a3fb7a1f" + "reference": "7b6dd714d95106b831aaa7f3c9c612ab886516bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a416487a73bb9c9d120e9ba3a60547f4a3fb7a1f", - "reference": "a416487a73bb9c9d120e9ba3a60547f4a3fb7a1f", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7b6dd714d95106b831aaa7f3c9c612ab886516bd", + "reference": "7b6dd714d95106b831aaa7f3c9c612ab886516bd", "shasum": "" }, "require": { @@ -1775,7 +1885,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.2.7" + "source": "https://github.com/symfony/http-foundation/tree/v5.3.2" }, "funding": [ { @@ -1791,20 +1901,20 @@ "type": "tidelift" } ], - "time": "2021-05-01T13:46:24+00:00" + "time": "2021-06-12T10:15:17+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "1e9f6879f070f718e0055fbac232a56f67b8b6bd" + "reference": "e7021165d9dbfb4051296b8de827e92c8a7b5c87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1e9f6879f070f718e0055fbac232a56f67b8b6bd", - "reference": "1e9f6879f070f718e0055fbac232a56f67b8b6bd", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e7021165d9dbfb4051296b8de827e92c8a7b5c87", + "reference": "e7021165d9dbfb4051296b8de827e92c8a7b5c87", "shasum": "" }, "require": { @@ -1814,7 +1924,7 @@ "symfony/error-handler": "^4.4|^5.0", "symfony/event-dispatcher": "^5.0", "symfony/http-client-contracts": "^1.1|^2", - "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-foundation": "^5.3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9", "symfony/polyfill-php80": "^1.15" @@ -1824,7 +1934,7 @@ "symfony/cache": "<5.0", "symfony/config": "<5.0", "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.1.8", + "symfony/dependency-injection": "<5.3", "symfony/doctrine-bridge": "<5.0", "symfony/form": "<5.0", "symfony/http-client": "<5.0", @@ -1844,7 +1954,7 @@ "symfony/config": "^5.0", "symfony/console": "^4.4|^5.0", "symfony/css-selector": "^4.4|^5.0", - "symfony/dependency-injection": "^5.1.8", + "symfony/dependency-injection": "^5.3", "symfony/dom-crawler": "^4.4|^5.0", "symfony/expression-language": "^4.4|^5.0", "symfony/finder": "^4.4|^5.0", @@ -1887,7 +1997,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.2.7" + "source": "https://github.com/symfony/http-kernel/tree/v5.3.2" }, "funding": [ { @@ -1903,20 +2013,20 @@ "type": "tidelift" } ], - "time": "2021-05-01T14:53:15+00:00" + "time": "2021-06-17T14:18:27+00:00" }, { "name": "symfony/maker-bundle", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/maker-bundle.git", - "reference": "d01a475fb9a96a46d0c75dbc7fae6eb9a8c85ddb" + "reference": "702558c5fc5a27796eedad12a82bb27be76247dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/d01a475fb9a96a46d0c75dbc7fae6eb9a8c85ddb", - "reference": "d01a475fb9a96a46d0c75dbc7fae6eb9a8c85ddb", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/702558c5fc5a27796eedad12a82bb27be76247dc", + "reference": "702558c5fc5a27796eedad12a82bb27be76247dc", "shasum": "" }, "require": { @@ -1975,7 +2085,7 @@ ], "support": { "issues": "https://github.com/symfony/maker-bundle/issues", - "source": "https://github.com/symfony/maker-bundle/tree/v1.31.0" + "source": "https://github.com/symfony/maker-bundle/tree/v1.32.0" }, "funding": [ { @@ -1991,20 +2101,20 @@ "type": "tidelift" } ], - "time": "2021-05-05T18:41:31+00:00" + "time": "2021-06-18T18:00:44+00:00" }, { "name": "symfony/messenger", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/messenger.git", - "reference": "91c9283dab9294d30e55bd9697f5a7527b3fef3e" + "reference": "552b671a36b3f58e32e8c551a92559e571f60613" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/91c9283dab9294d30e55bd9697f5a7527b3fef3e", - "reference": "91c9283dab9294d30e55bd9697f5a7527b3fef3e", + "url": "https://api.github.com/repos/symfony/messenger/zipball/552b671a36b3f58e32e8c551a92559e571f60613", + "reference": "552b671a36b3f58e32e8c551a92559e571f60613", "shasum": "" }, "require": { @@ -2029,6 +2139,7 @@ "symfony/http-kernel": "^4.4|^5.0", "symfony/process": "^4.4|^5.0", "symfony/property-access": "^4.4|^5.0", + "symfony/routing": "^4.4|^5.0", "symfony/serializer": "^4.4|^5.0", "symfony/service-contracts": "^1.1|^2", "symfony/stopwatch": "^4.4|^5.0", @@ -2063,7 +2174,7 @@ "description": "Helps applications send and receive messages to/from other applications or via message queues", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/messenger/tree/v5.2.7" + "source": "https://github.com/symfony/messenger/tree/v5.3.2" }, "funding": [ { @@ -2079,20 +2190,89 @@ "type": "tidelift" } ], - "time": "2021-04-08T10:27:02+00:00" + "time": "2021-06-16T22:22:36+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v5.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "162e886ca035869866d233a2bfef70cc28f9bbe5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/162e886ca035869866d233a2bfef70cc28f9bbe5", + "reference": "162e886ca035869866d233a2bfef70cc28f9bbe5", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.15" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "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": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" + "reference": "24b72c6baa32c746a4d0840147c9715e42bb68ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", - "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/24b72c6baa32c746a4d0840147c9715e42bb68ab", + "reference": "24b72c6baa32c746a4d0840147c9715e42bb68ab", "shasum": "" }, "require": { @@ -2104,7 +2284,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2144,7 +2324,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.0" }, "funding": [ { @@ -2160,20 +2340,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T09:17:38+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", "shasum": "" }, "require": { @@ -2185,7 +2365,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2228,7 +2408,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" }, "funding": [ { @@ -2244,20 +2424,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1", + "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1", "shasum": "" }, "require": { @@ -2269,7 +2449,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2308,7 +2488,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0" }, "funding": [ { @@ -2324,20 +2504,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T09:27:20+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", "shasum": "" }, "require": { @@ -2346,7 +2526,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2387,7 +2567,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" }, "funding": [ { @@ -2403,20 +2583,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0", + "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0", "shasum": "" }, "require": { @@ -2425,7 +2605,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2470,7 +2650,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.0" }, "funding": [ { @@ -2486,20 +2666,99 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.23.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "e66119f3de95efc359483f810c4c3e6436279436" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/e66119f3de95efc359483f810c4c3e6436279436", + "reference": "e66119f3de95efc359483f810c4c3e6436279436", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.23.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-05-21T13:25:03+00:00" }, { "name": "symfony/redis-messenger", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/redis-messenger.git", - "reference": "70c0adb4edd401ed97fbe88568e16381c13a69d2" + "reference": "caf341c2e11335d8db5a261bb199be13804ee983" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/redis-messenger/zipball/70c0adb4edd401ed97fbe88568e16381c13a69d2", - "reference": "70c0adb4edd401ed97fbe88568e16381c13a69d2", + "url": "https://api.github.com/repos/symfony/redis-messenger/zipball/caf341c2e11335d8db5a261bb199be13804ee983", + "reference": "caf341c2e11335d8db5a261bb199be13804ee983", "shasum": "" }, "require": { @@ -2537,7 +2796,7 @@ "description": "Symfony Redis extension Messenger Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/redis-messenger/tree/v5.2.7" + "source": "https://github.com/symfony/redis-messenger/tree/v5.3.2" }, "funding": [ { @@ -2553,20 +2812,20 @@ "type": "tidelift" } ], - "time": "2021-04-07T16:07:52+00:00" + "time": "2021-06-05T08:59:26+00:00" }, { "name": "symfony/routing", - "version": "v5.2.7", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c" + "reference": "368e81376a8e049c37cb80ae87dbfbf411279199" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c", - "reference": "3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c", + "url": "https://api.github.com/repos/symfony/routing/zipball/368e81376a8e049c37cb80ae87dbfbf411279199", + "reference": "368e81376a8e049c37cb80ae87dbfbf411279199", "shasum": "" }, "require": { @@ -2575,14 +2834,15 @@ "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/config": "<5.0", + "doctrine/annotations": "<1.12", + "symfony/config": "<5.3", "symfony/dependency-injection": "<4.4", "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "^1.12", "psr/log": "~1.0", - "symfony/config": "^5.0", + "symfony/config": "^5.3", "symfony/dependency-injection": "^4.4|^5.0", "symfony/expression-language": "^4.4|^5.0", "symfony/http-foundation": "^4.4|^5.0", @@ -2626,7 +2886,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.2.7" + "source": "https://github.com/symfony/routing/tree/v5.3.0" }, "funding": [ { @@ -2642,7 +2902,7 @@ "type": "tidelift" } ], - "time": "2021-04-11T22:55:21+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/service-contracts", @@ -2725,16 +2985,16 @@ }, { "name": "symfony/string", - "version": "v5.2.6", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572" + "reference": "0732e97e41c0a590f77e231afc16a327375d50b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572", - "reference": "ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572", + "url": "https://api.github.com/repos/symfony/string/zipball/0732e97e41c0a590f77e231afc16a327375d50b0", + "reference": "0732e97e41c0a590f77e231afc16a327375d50b0", "shasum": "" }, "require": { @@ -2788,7 +3048,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.2.6" + "source": "https://github.com/symfony/string/tree/v5.3.2" }, "funding": [ { @@ -2804,20 +3064,20 @@ "type": "tidelift" } ], - "time": "2021-03-17T17:12:15+00:00" + "time": "2021-06-06T09:51:56+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "27cb9f7cfa3853c736425c7233a8f68814b19636" + "reference": "905a22c68b292ffb6f20d7636c36b220d1fba5ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/27cb9f7cfa3853c736425c7233a8f68814b19636", - "reference": "27cb9f7cfa3853c736425c7233a8f68814b19636", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/905a22c68b292ffb6f20d7636c36b220d1fba5ae", + "reference": "905a22c68b292ffb6f20d7636c36b220d1fba5ae", "shasum": "" }, "require": { @@ -2876,7 +3136,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.2.7" + "source": "https://github.com/symfony/var-dumper/tree/v5.3.2" }, "funding": [ { @@ -2892,20 +3152,20 @@ "type": "tidelift" } ], - "time": "2021-04-19T14:07:32+00:00" + "time": "2021-06-06T09:51:56+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "01184a5ab95eb9500b9b0ef3e525979e003d9c81" + "reference": "df663fb63bdcd7298373cbd431165ab031706cb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/01184a5ab95eb9500b9b0ef3e525979e003d9c81", - "reference": "01184a5ab95eb9500b9b0ef3e525979e003d9c81", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df663fb63bdcd7298373cbd431165ab031706cb2", + "reference": "df663fb63bdcd7298373cbd431165ab031706cb2", "shasum": "" }, "require": { @@ -2949,7 +3209,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/var-exporter/tree/v5.3.2" }, "funding": [ { @@ -2965,20 +3225,20 @@ "type": "tidelift" } ], - "time": "2021-04-01T10:42:13+00:00" + "time": "2021-06-09T10:57:10+00:00" }, { "name": "symfony/yaml", - "version": "v5.2.7", + "version": "v5.3.2", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5" + "reference": "71719ab2409401711d619765aa255f9d352a59b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", - "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", + "url": "https://api.github.com/repos/symfony/yaml/zipball/71719ab2409401711d619765aa255f9d352a59b2", + "reference": "71719ab2409401711d619765aa255f9d352a59b2", "shasum": "" }, "require": { @@ -3024,7 +3284,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.2.7" + "source": "https://github.com/symfony/yaml/tree/v5.3.2" }, "funding": [ { @@ -3040,7 +3300,7 @@ "type": "tidelift" } ], - "time": "2021-04-29T20:47:09+00:00" + "time": "2021-06-06T09:51:56+00:00" } ], "packages-dev": [], diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..d3965ee --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,8 @@ +version: "3.9" + +services: + rabbitmq: + image: rabbitmq:3-management + ports: + - 5672:5672 + - 8080:15672 diff --git a/src/Command/SwarrotConsumeSimpleCommand.php b/src/Command/SwarrotConsumeSimpleCommand.php new file mode 100644 index 0000000..2c1a193 --- /dev/null +++ b/src/Command/SwarrotConsumeSimpleCommand.php @@ -0,0 +1,66 @@ +<?php + +namespace App\Command; + +use Psr\Log\NullLogger; +use Swarrot\Broker\Message; +use Swarrot\Broker\MessageProvider\PeclPackageMessageProvider; +use Swarrot\Consumer; +use Swarrot\Processor\ProcessorInterface; +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; + +class SwarrotConsumeSimpleCommand extends Command +{ + public const QUEUE_NAME = 'messages'; + protected static $defaultName = 'swarrot:consume:simple'; + protected static $defaultDescription = 'Consume swarrot simple message'; + + protected function configure(): void + { + $this + ->setDescription(self::$defaultDescription) + ->addOption('limit', null, InputOption::VALUE_OPTIONAL, 'Maximum message to manage', 1000) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output): int + { +// Create connection + $connection = new \AMQPConnection(); + $connection->connect(); + $channel = new \AMQPChannel($connection); +// Get the queue to consume + $queue = new \AMQPQueue($channel); + $queue->setName(self::QUEUE_NAME); + + $messageProvider = new PeclPackageMessageProvider($queue); + + $processor = new class implements ProcessorInterface { + public function process(Message $message, array $options): bool + { + //echo sprintf("Consume message #%d\n", $message->getId()); + + return true; + } + }; + + $stack = (new \Swarrot\Processor\Stack\Builder()) + ->push('Swarrot\Processor\MaxMessages\MaxMessagesProcessor', new NullLogger()) + ->push('Swarrot\Processor\ExceptionCatcher\ExceptionCatcherProcessor') + ->push('Swarrot\Processor\Ack\AckProcessor', $messageProvider) + ; + + $processor = $stack->resolve($processor); + + + $consumer = new Consumer($messageProvider, $processor); + $consumer->consume(['max_messages' => (int) $input->getOption('limit')]); + + return Command::SUCCESS; + } +} diff --git a/symfony.lock b/symfony.lock index 3162f3e..86844d2 100644 --- a/symfony.lock +++ b/symfony.lock @@ -17,6 +17,9 @@ "psr/log": { "version": "1.1.4" }, + "swarrot/swarrot": { + "version": "v4.11.0" + }, "symfony/amqp-messenger": { "version": "v5.2.7" }, @@ -130,6 +133,9 @@ "config/packages/messenger.yaml" ] }, + "symfony/options-resolver": { + "version": "v5.2.4" + }, "symfony/polyfill-intl-grapheme": { "version": "v1.22.1" }, @@ -145,6 +151,9 @@ "symfony/polyfill-php80": { "version": "v1.22.1" }, + "symfony/polyfill-php81": { + "version": "v1.23.0" + }, "symfony/redis-messenger": { "version": "v5.2.7" }, -- GitLab