diff --git a/composer.json b/composer.json index 7478347..3e5b9e5 100644 --- a/composer.json +++ b/composer.json @@ -56,7 +56,8 @@ }, "config": { "allow-plugins": { - "symfony/*": true + "symfony/*": true, + "php-http/discovery": true }, "optimize-autoloader": true, "preferred-install": { diff --git a/composer.lock b/composer.lock index f8c2610..c63f9d2 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": "89a944b8a4a05503830884861028d8f4", + "content-hash": "a7ce5357a0524f6847becf0c63e1ef9e", "packages": [ { "name": "composer/package-versions-deprecated", @@ -174,16 +174,16 @@ }, { "name": "doctrine/collections", - "version": "2.2.1", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "420480fc085bc65f3c956af13abe8e7546f94813" + "reference": "d8af7f248c74f195f7347424600fd9e17b57af59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/420480fc085bc65f3c956af13abe8e7546f94813", - "reference": "420480fc085bc65f3c956af13abe8e7546f94813", + "url": "https://api.github.com/repos/doctrine/collections/zipball/d8af7f248c74f195f7347424600fd9e17b57af59", + "reference": "d8af7f248c74f195f7347424600fd9e17b57af59", "shasum": "" }, "require": { @@ -240,7 +240,7 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/2.2.1" + "source": "https://github.com/doctrine/collections/tree/2.2.2" }, "funding": [ { @@ -256,20 +256,20 @@ "type": "tidelift" } ], - "time": "2024-03-05T22:28:45+00:00" + "time": "2024-04-18T06:56:21+00:00" }, { "name": "doctrine/dbal", - "version": "4.0.1", + "version": "4.0.2", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "9e588fe1f38a443cb17de6b86b803d9e028e2156" + "reference": "61d79c6e379a39dc1fea6b4e50a23dfc3cd2076a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/9e588fe1f38a443cb17de6b86b803d9e028e2156", - "reference": "9e588fe1f38a443cb17de6b86b803d9e028e2156", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/61d79c6e379a39dc1fea6b4e50a23dfc3cd2076a", + "reference": "61d79c6e379a39dc1fea6b4e50a23dfc3cd2076a", "shasum": "" }, "require": { @@ -348,7 +348,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/4.0.1" + "source": "https://github.com/doctrine/dbal/tree/4.0.2" }, "funding": [ { @@ -364,7 +364,7 @@ "type": "tidelift" } ], - "time": "2024-03-03T15:59:11+00:00" + "time": "2024-04-25T08:29:52+00:00" }, { "name": "doctrine/deprecations", @@ -1057,16 +1057,16 @@ }, { "name": "doctrine/orm", - "version": "3.1.1", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "9c560713925ac5859342e6ff370c4c997acf2fd4" + "reference": "f79d166a4e844beb9389f23bdb44abdbf58cec38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/9c560713925ac5859342e6ff370c4c997acf2fd4", - "reference": "9c560713925ac5859342e6ff370c4c997acf2fd4", + "url": "https://api.github.com/repos/doctrine/orm/zipball/f79d166a4e844beb9389f23bdb44abdbf58cec38", + "reference": "f79d166a4e844beb9389f23bdb44abdbf58cec38", "shasum": "" }, "require": { @@ -1139,9 +1139,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/3.1.1" + "source": "https://github.com/doctrine/orm/tree/3.1.2" }, - "time": "2024-03-21T11:37:52+00:00" + "time": "2024-04-15T14:20:40+00:00" }, { "name": "doctrine/persistence", @@ -2136,16 +2136,16 @@ }, { "name": "symfony/asset", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "3ae493792fc17cc31b84e231f30f2d154575f171" + "reference": "dc7600afc7e6676b3401326ae9c9abfcee4b40c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/3ae493792fc17cc31b84e231f30f2d154575f171", - "reference": "3ae493792fc17cc31b84e231f30f2d154575f171", + "url": "https://api.github.com/repos/symfony/asset/zipball/dc7600afc7e6676b3401326ae9c9abfcee4b40c5", + "reference": "dc7600afc7e6676b3401326ae9c9abfcee4b40c5", "shasum": "" }, "require": { @@ -2185,7 +2185,7 @@ "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset/tree/v7.0.3" + "source": "https://github.com/symfony/asset/tree/v7.0.7" }, "funding": [ { @@ -2201,20 +2201,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/cache", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "2d0d3f92c74c445410d05374908b03e0a1131e2b" + "reference": "48e3508338987d63b0114a00c208c4cbb76e5303" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/2d0d3f92c74c445410d05374908b03e0a1131e2b", - "reference": "2d0d3f92c74c445410d05374908b03e0a1131e2b", + "url": "https://api.github.com/repos/symfony/cache/zipball/48e3508338987d63b0114a00c208c4cbb76e5303", + "reference": "48e3508338987d63b0114a00c208c4cbb76e5303", "shasum": "" }, "require": { @@ -2281,7 +2281,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.0.6" + "source": "https://github.com/symfony/cache/tree/v7.0.7" }, "funding": [ { @@ -2297,7 +2297,7 @@ "type": "tidelift" } ], - "time": "2024-03-27T19:55:25+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/cache-contracts", @@ -2377,16 +2377,16 @@ }, { "name": "symfony/clock", - "version": "v7.0.5", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "8b9d08887353d627d5f6c3bf3373b398b49051c2" + "reference": "2008671acb4a30b01c453de193cf9c80549ebda6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/8b9d08887353d627d5f6c3bf3373b398b49051c2", - "reference": "8b9d08887353d627d5f6c3bf3373b398b49051c2", + "url": "https://api.github.com/repos/symfony/clock/zipball/2008671acb4a30b01c453de193cf9c80549ebda6", + "reference": "2008671acb4a30b01c453de193cf9c80549ebda6", "shasum": "" }, "require": { @@ -2431,7 +2431,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.0.5" + "source": "https://github.com/symfony/clock/tree/v7.0.7" }, "funding": [ { @@ -2447,20 +2447,20 @@ "type": "tidelift" } ], - "time": "2024-03-02T12:46:12+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/config", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "7fc7e18a73ec8125fd95928c0340470d64760deb" + "reference": "f66f908a975500aa4594258bf454dc66e3939eac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/7fc7e18a73ec8125fd95928c0340470d64760deb", - "reference": "7fc7e18a73ec8125fd95928c0340470d64760deb", + "url": "https://api.github.com/repos/symfony/config/zipball/f66f908a975500aa4594258bf454dc66e3939eac", + "reference": "f66f908a975500aa4594258bf454dc66e3939eac", "shasum": "" }, "require": { @@ -2506,7 +2506,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/v7.0.6" + "source": "https://github.com/symfony/config/tree/v7.0.7" }, "funding": [ { @@ -2522,20 +2522,20 @@ "type": "tidelift" } ], - "time": "2024-03-27T19:55:25+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/console", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "fde915cd8e7eb99b3d531d3d5c09531429c3f9e5" + "reference": "c981e0e9380ce9f146416bde3150c79197ce9986" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/fde915cd8e7eb99b3d531d3d5c09531429c3f9e5", - "reference": "fde915cd8e7eb99b3d531d3d5c09531429c3f9e5", + "url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986", + "reference": "c981e0e9380ce9f146416bde3150c79197ce9986", "shasum": "" }, "require": { @@ -2599,7 +2599,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.0.6" + "source": "https://github.com/symfony/console/tree/v7.0.7" }, "funding": [ { @@ -2615,20 +2615,20 @@ "type": "tidelift" } ], - "time": "2024-04-01T11:04:53+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "ff57b5c7d518c39eeb4e69dc0d1ec70723a117b9" + "reference": "4db1314337f4dd864113f88e08c9a7f98b1c1324" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ff57b5c7d518c39eeb4e69dc0d1ec70723a117b9", - "reference": "ff57b5c7d518c39eeb4e69dc0d1ec70723a117b9", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/4db1314337f4dd864113f88e08c9a7f98b1c1324", + "reference": "4db1314337f4dd864113f88e08c9a7f98b1c1324", "shasum": "" }, "require": { @@ -2679,7 +2679,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/v7.0.6" + "source": "https://github.com/symfony/dependency-injection/tree/v7.0.7" }, "funding": [ { @@ -2695,7 +2695,7 @@ "type": "tidelift" } ], - "time": "2024-03-28T09:20:36+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2766,16 +2766,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "929527febf8e134eaba620de1f9396da1db0df85" + "reference": "da605530d1a75162359d494efc00f767f7fcd68a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/929527febf8e134eaba620de1f9396da1db0df85", - "reference": "929527febf8e134eaba620de1f9396da1db0df85", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/da605530d1a75162359d494efc00f767f7fcd68a", + "reference": "da605530d1a75162359d494efc00f767f7fcd68a", "shasum": "" }, "require": { @@ -2852,7 +2852,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v7.0.6" + "source": "https://github.com/symfony/doctrine-bridge/tree/v7.0.7" }, "funding": [ { @@ -2868,20 +2868,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T09:29:21+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "symfony/dotenv", - "version": "v7.0.4", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "8017ea2f0ff4fbda6ae1bf3f5409d5ecff982067" + "reference": "0fd573c141e1990848702d56329050efd5bf25cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/8017ea2f0ff4fbda6ae1bf3f5409d5ecff982067", - "reference": "8017ea2f0ff4fbda6ae1bf3f5409d5ecff982067", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/0fd573c141e1990848702d56329050efd5bf25cc", + "reference": "0fd573c141e1990848702d56329050efd5bf25cc", "shasum": "" }, "require": { @@ -2926,7 +2926,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v7.0.4" + "source": "https://github.com/symfony/dotenv/tree/v7.0.7" }, "funding": [ { @@ -2942,20 +2942,20 @@ "type": "tidelift" } ], - "time": "2024-02-09T10:53:15+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/error-handler", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "46a4cc138f799886d4bd70477c55c699d3e9dfc8" + "reference": "cf97429887e40480c847bfeb6c3991e1e2c086ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/46a4cc138f799886d4bd70477c55c699d3e9dfc8", - "reference": "46a4cc138f799886d4bd70477c55c699d3e9dfc8", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/cf97429887e40480c847bfeb6c3991e1e2c086ab", + "reference": "cf97429887e40480c847bfeb6c3991e1e2c086ab", "shasum": "" }, "require": { @@ -3001,7 +3001,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/v7.0.6" + "source": "https://github.com/symfony/error-handler/tree/v7.0.7" }, "funding": [ { @@ -3017,20 +3017,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T11:57:22+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e" + "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/834c28d533dd0636f910909d01b9ff45cc094b5e", - "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/db2a7fab994d67d92356bb39c367db115d9d30f9", + "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9", "shasum": "" }, "require": { @@ -3081,7 +3081,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/v7.0.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.7" }, "funding": [ { @@ -3097,7 +3097,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3177,16 +3177,16 @@ }, { "name": "symfony/expression-language", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "0877c599cb260c9614f9229c0a2090d6919fd621" + "reference": "b8ec919a6d3d47fc4e7845c256d164413207bf73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/0877c599cb260c9614f9229c0a2090d6919fd621", - "reference": "0877c599cb260c9614f9229c0a2090d6919fd621", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/b8ec919a6d3d47fc4e7845c256d164413207bf73", + "reference": "b8ec919a6d3d47fc4e7845c256d164413207bf73", "shasum": "" }, "require": { @@ -3220,7 +3220,7 @@ "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v7.0.3" + "source": "https://github.com/symfony/expression-language/tree/v7.0.7" }, "funding": [ { @@ -3236,26 +3236,27 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/filesystem", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "408105dff4c104454100730bdfd1a9cdd993f04d" + "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/408105dff4c104454100730bdfd1a9cdd993f04d", - "reference": "408105dff4c104454100730bdfd1a9cdd993f04d", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/cc168be6fbdcdf3401f50ae863ee3818ed4338f5", + "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5", "shasum": "" }, "require": { "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" + "symfony/polyfill-mbstring": "~1.8", + "symfony/process": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3283,7 +3284,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.0.6" + "source": "https://github.com/symfony/filesystem/tree/v7.0.7" }, "funding": [ { @@ -3299,20 +3300,20 @@ "type": "tidelift" } ], - "time": "2024-03-21T19:37:36+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/finder", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56" + "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", + "url": "https://api.github.com/repos/symfony/finder/zipball/4d58f0f4fe95a30d7b538d71197135483560b97c", + "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c", "shasum": "" }, "require": { @@ -3347,7 +3348,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.0.0" + "source": "https://github.com/symfony/finder/tree/v7.0.7" }, "funding": [ { @@ -3363,7 +3364,7 @@ "type": "tidelift" } ], - "time": "2023-10-31T17:59:56+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "symfony/flex", @@ -3432,16 +3433,16 @@ }, { "name": "symfony/form", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "d5db6599775a563792391d0045decc240e7ebd1e" + "reference": "b4df6a399a2b03782a0163807239db342659f54f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/d5db6599775a563792391d0045decc240e7ebd1e", - "reference": "d5db6599775a563792391d0045decc240e7ebd1e", + "url": "https://api.github.com/repos/symfony/form/zipball/b4df6a399a2b03782a0163807239db342659f54f", + "reference": "b4df6a399a2b03782a0163807239db342659f54f", "shasum": "" }, "require": { @@ -3508,7 +3509,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v7.0.6" + "source": "https://github.com/symfony/form/tree/v7.0.7" }, "funding": [ { @@ -3524,20 +3525,20 @@ "type": "tidelift" } ], - "time": "2024-03-28T09:20:36+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "symfony/framework-bundle", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "5ebf6771f92d135c2bdbda7133998feb74713658" + "reference": "5d9cee370509056b8b7a5009d7112d045d8f0a64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5ebf6771f92d135c2bdbda7133998feb74713658", - "reference": "5ebf6771f92d135c2bdbda7133998feb74713658", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5d9cee370509056b8b7a5009d7112d045d8f0a64", + "reference": "5d9cee370509056b8b7a5009d7112d045d8f0a64", "shasum": "" }, "require": { @@ -3654,7 +3655,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/v7.0.6" + "source": "https://github.com/symfony/framework-bundle/tree/v7.0.7" }, "funding": [ { @@ -3670,20 +3671,20 @@ "type": "tidelift" } ], - "time": "2024-03-27T19:55:25+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/http-client", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "6e70473909f46fe5dd3b994a0f1b20ecb6b2f858" + "reference": "6ce3c4c899051b3d7326ea1a1dda3729e29ae6d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/6e70473909f46fe5dd3b994a0f1b20ecb6b2f858", - "reference": "6e70473909f46fe5dd3b994a0f1b20ecb6b2f858", + "url": "https://api.github.com/repos/symfony/http-client/zipball/6ce3c4c899051b3d7326ea1a1dda3729e29ae6d7", + "reference": "6ce3c4c899051b3d7326ea1a1dda3729e29ae6d7", "shasum": "" }, "require": { @@ -3746,7 +3747,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v7.0.6" + "source": "https://github.com/symfony/http-client/tree/v7.0.7" }, "funding": [ { @@ -3762,7 +3763,7 @@ "type": "tidelift" } ], - "time": "2024-04-01T20:49:44+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/http-client-contracts", @@ -3844,16 +3845,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "8789625dcf36e5fbf753014678a1e090f1bc759c" + "reference": "0194e064b8bdc29381462f790bab04e1cac8fdc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8789625dcf36e5fbf753014678a1e090f1bc759c", - "reference": "8789625dcf36e5fbf753014678a1e090f1bc759c", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0194e064b8bdc29381462f790bab04e1cac8fdc8", + "reference": "0194e064b8bdc29381462f790bab04e1cac8fdc8", "shasum": "" }, "require": { @@ -3901,7 +3902,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.0.6" + "source": "https://github.com/symfony/http-foundation/tree/v7.0.7" }, "funding": [ { @@ -3917,20 +3918,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T11:46:48+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "34c872391046d59af804af62d4573b829cfe4824" + "reference": "e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/34c872391046d59af804af62d4573b829cfe4824", - "reference": "34c872391046d59af804af62d4573b829cfe4824", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25", + "reference": "e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25", "shasum": "" }, "require": { @@ -3984,6 +3985,7 @@ "symfony/translation-contracts": "^2.5|^3", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0", "symfony/var-exporter": "^6.4|^7.0", "twig/twig": "^3.0.4" }, @@ -4013,7 +4015,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/v7.0.6" + "source": "https://github.com/symfony/http-kernel/tree/v7.0.7" }, "funding": [ { @@ -4029,20 +4031,20 @@ "type": "tidelift" } ], - "time": "2024-04-03T06:12:25+00:00" + "time": "2024-04-29T12:20:25+00:00" }, { "name": "symfony/intl", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "295995df4acf6790a35b9ce6ec32b313efb11ff8" + "reference": "dd12042707110995e2e7d80103f8d9928bea8621" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/295995df4acf6790a35b9ce6ec32b313efb11ff8", - "reference": "295995df4acf6790a35b9ce6ec32b313efb11ff8", + "url": "https://api.github.com/repos/symfony/intl/zipball/dd12042707110995e2e7d80103f8d9928bea8621", + "reference": "dd12042707110995e2e7d80103f8d9928bea8621", "shasum": "" }, "require": { @@ -4059,7 +4061,8 @@ "Symfony\\Component\\Intl\\": "" }, "exclude-from-classmap": [ - "/Tests/" + "/Tests/", + "/Resources/data/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4095,7 +4098,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v7.0.3" + "source": "https://github.com/symfony/intl/tree/v7.0.7" }, "funding": [ { @@ -4111,20 +4114,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/mailer", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "eb0c3187c7ddfde12d8aa0e1fa5fb29e730a41e0" + "reference": "4ff41a7c7998a88cfdc31b5841ef64d9246fc56a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/eb0c3187c7ddfde12d8aa0e1fa5fb29e730a41e0", - "reference": "eb0c3187c7ddfde12d8aa0e1fa5fb29e730a41e0", + "url": "https://api.github.com/repos/symfony/mailer/zipball/4ff41a7c7998a88cfdc31b5841ef64d9246fc56a", + "reference": "4ff41a7c7998a88cfdc31b5841ef64d9246fc56a", "shasum": "" }, "require": { @@ -4175,7 +4178,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.0.6" + "source": "https://github.com/symfony/mailer/tree/v7.0.7" }, "funding": [ { @@ -4191,49 +4194,49 @@ "type": "tidelift" } ], - "time": "2024-03-28T09:20:36+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/messenger", - "version": "v6.1.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/messenger.git", - "reference": "3d7fbc507ad31e71a96e8e65342243e2dbe22fa1" + "reference": "90c217478f85d5289aae597551e2a4251e4d08c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/3d7fbc507ad31e71a96e8e65342243e2dbe22fa1", - "reference": "3d7fbc507ad31e71a96e8e65342243e2dbe22fa1", + "url": "https://api.github.com/repos/symfony/messenger/zipball/90c217478f85d5289aae597551e2a4251e4d08c3", + "reference": "90c217478f85d5289aae597551e2a4251e4d08c3", "shasum": "" }, "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3" + "php": ">=8.2", + "psr/log": "^1|^2|^3", + "symfony/clock": "^6.4|^7.0" }, "conflict": { - "symfony/event-dispatcher": "<5.4", - "symfony/event-dispatcher-contracts": "<2", - "symfony/framework-bundle": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/serializer": "<5.4" + "symfony/console": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/event-dispatcher-contracts": "<2.5", + "symfony/framework-bundle": "<6.4", + "symfony/http-kernel": "<6.4", + "symfony/serializer": "<6.4" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/routing": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/validator": "^5.4|^6.0" - }, - "suggest": { - "enqueue/messenger-adapter": "For using the php-enqueue library as a transport." + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4261,7 +4264,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/v6.1.6" + "source": "https://github.com/symfony/messenger/tree/v7.0.7" }, "funding": [ { @@ -4277,20 +4280,20 @@ "type": "tidelift" } ], - "time": "2022-10-10T09:34:31+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/mime", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "99362408c9abdf8c7cadcf0529b6fc8b16f5ace2" + "reference": "3adbf110c306546f6f00337f421d2edca0e8d3c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/99362408c9abdf8c7cadcf0529b6fc8b16f5ace2", - "reference": "99362408c9abdf8c7cadcf0529b6fc8b16f5ace2", + "url": "https://api.github.com/repos/symfony/mime/zipball/3adbf110c306546f6f00337f421d2edca0e8d3c0", + "reference": "3adbf110c306546f6f00337f421d2edca0e8d3c0", "shasum": "" }, "require": { @@ -4345,7 +4348,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.0.6" + "source": "https://github.com/symfony/mime/tree/v7.0.7" }, "funding": [ { @@ -4361,20 +4364,20 @@ "type": "tidelift" } ], - "time": "2024-03-21T19:37:36+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "5d4f188e60d1e38a1d9d4bb6fbbbc13111dff2b1" + "reference": "aaa40a0a6512976a6e07d5def7ce9476862ebd65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/5d4f188e60d1e38a1d9d4bb6fbbbc13111dff2b1", - "reference": "5d4f188e60d1e38a1d9d4bb6fbbbc13111dff2b1", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/aaa40a0a6512976a6e07d5def7ce9476862ebd65", + "reference": "aaa40a0a6512976a6e07d5def7ce9476862ebd65", "shasum": "" }, "require": { @@ -4423,7 +4426,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v7.0.3" + "source": "https://github.com/symfony/monolog-bridge/tree/v7.0.7" }, "funding": [ { @@ -4439,7 +4442,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/monolog-bundle", @@ -4524,16 +4527,16 @@ }, { "name": "symfony/notifier", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/notifier.git", - "reference": "515326dab227ecd3198b04df50edf949f7767a9a" + "reference": "1eeee1522fad108d7f094b1bf5453e5466e6f8fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/notifier/zipball/515326dab227ecd3198b04df50edf949f7767a9a", - "reference": "515326dab227ecd3198b04df50edf949f7767a9a", + "url": "https://api.github.com/repos/symfony/notifier/zipball/1eeee1522fad108d7f094b1bf5453e5466e6f8fc", + "reference": "1eeee1522fad108d7f094b1bf5453e5466e6f8fc", "shasum": "" }, "require": { @@ -4582,7 +4585,7 @@ "notifier" ], "support": { - "source": "https://github.com/symfony/notifier/tree/v7.0.3" + "source": "https://github.com/symfony/notifier/tree/v7.0.7" }, "funding": [ { @@ -4598,20 +4601,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "700ff4096e346f54cb628ea650767c8130f1001f" + "reference": "23cc173858776ad451e31f053b1c9f47840b2cfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f", - "reference": "700ff4096e346f54cb628ea650767c8130f1001f", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/23cc173858776ad451e31f053b1c9f47840b2cfa", + "reference": "23cc173858776ad451e31f053b1c9f47840b2cfa", "shasum": "" }, "require": { @@ -4649,7 +4652,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.0.0" + "source": "https://github.com/symfony/options-resolver/tree/v7.0.7" }, "funding": [ { @@ -4665,20 +4668,20 @@ "type": "tidelift" } ], - "time": "2023-08-08T10:20:21+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/password-hasher", - "version": "v7.0.4", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "0eba656c16ecdf5588b3ddd2b2337b06173d839f" + "reference": "5148b049248935f8a7b0a392aece2f22e9a1803d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/0eba656c16ecdf5588b3ddd2b2337b06173d839f", - "reference": "0eba656c16ecdf5588b3ddd2b2337b06173d839f", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/5148b049248935f8a7b0a392aece2f22e9a1803d", + "reference": "5148b049248935f8a7b0a392aece2f22e9a1803d", "shasum": "" }, "require": { @@ -4721,7 +4724,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v7.0.4" + "source": "https://github.com/symfony/password-hasher/tree/v7.0.7" }, "funding": [ { @@ -4737,7 +4740,7 @@ "type": "tidelift" } ], - "time": "2024-02-12T11:15:03+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/polyfill-intl-grapheme", @@ -5305,16 +5308,16 @@ }, { "name": "symfony/process", - "version": "v7.0.4", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "0e7727191c3b71ebec6d529fa0e50a01ca5679e9" + "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/0e7727191c3b71ebec6d529fa0e50a01ca5679e9", - "reference": "0e7727191c3b71ebec6d529fa0e50a01ca5679e9", + "url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0", + "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0", "shasum": "" }, "require": { @@ -5346,7 +5349,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.0.4" + "source": "https://github.com/symfony/process/tree/v7.0.7" }, "funding": [ { @@ -5362,20 +5365,20 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/property-access", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "1c268ba954ccc5e78cf035b391abb67759e24423" + "reference": "8661b861480d2807eb2789ff99d034c0c71ab955" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/1c268ba954ccc5e78cf035b391abb67759e24423", - "reference": "1c268ba954ccc5e78cf035b391abb67759e24423", + "url": "https://api.github.com/repos/symfony/property-access/zipball/8661b861480d2807eb2789ff99d034c0c71ab955", + "reference": "8661b861480d2807eb2789ff99d034c0c71ab955", "shasum": "" }, "require": { @@ -5422,7 +5425,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v7.0.6" + "source": "https://github.com/symfony/property-access/tree/v7.0.7" }, "funding": [ { @@ -5438,20 +5441,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T11:57:22+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/property-info", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "b8844ddce7d53f78b57ec9be59da80fceddf3167" + "reference": "f0bdb46e19ab308527b324b7ec36161f6880a532" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/b8844ddce7d53f78b57ec9be59da80fceddf3167", - "reference": "b8844ddce7d53f78b57ec9be59da80fceddf3167", + "url": "https://api.github.com/repos/symfony/property-info/zipball/f0bdb46e19ab308527b324b7ec36161f6880a532", + "reference": "f0bdb46e19ab308527b324b7ec36161f6880a532", "shasum": "" }, "require": { @@ -5505,7 +5508,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.0.6" + "source": "https://github.com/symfony/property-info/tree/v7.0.7" }, "funding": [ { @@ -5521,20 +5524,20 @@ "type": "tidelift" } ], - "time": "2024-03-28T09:20:36+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "symfony/proxy-manager-bridge", - "version": "v6.4.6", + "version": "v6.4.7", "source": { "type": "git", "url": "https://github.com/symfony/proxy-manager-bridge.git", - "reference": "1d67cac97e3a4987ffadec3faf9e6b8c00cf12cc" + "reference": "9352e4c11174eabb11e4732745a0278c217eb254" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/1d67cac97e3a4987ffadec3faf9e6b8c00cf12cc", - "reference": "1d67cac97e3a4987ffadec3faf9e6b8c00cf12cc", + "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/9352e4c11174eabb11e4732745a0278c217eb254", + "reference": "9352e4c11174eabb11e4732745a0278c217eb254", "shasum": "" }, "require": { @@ -5572,7 +5575,7 @@ "description": "Provides integration for ProxyManager with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/proxy-manager-bridge/tree/v6.4.6" + "source": "https://github.com/symfony/proxy-manager-bridge/tree/v6.4.7" }, "funding": [ { @@ -5588,20 +5591,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T11:56:30+00:00" + "time": "2024-04-18T09:22:46+00:00" }, { "name": "symfony/routing", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "cded64e5bbf9f31786f1055fcc76718fdd77519c" + "reference": "9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/cded64e5bbf9f31786f1055fcc76718fdd77519c", - "reference": "cded64e5bbf9f31786f1055fcc76718fdd77519c", + "url": "https://api.github.com/repos/symfony/routing/zipball/9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b", + "reference": "9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b", "shasum": "" }, "require": { @@ -5653,7 +5656,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.0.6" + "source": "https://github.com/symfony/routing/tree/v7.0.7" }, "funding": [ { @@ -5669,20 +5672,20 @@ "type": "tidelift" } ], - "time": "2024-03-28T21:02:11+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/runtime", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "ef2c2fd4b40fb8cd22221154399ad8888e81cdb5" + "reference": "e120730ef206b31bb5521b1a2389c058adbba9c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/ef2c2fd4b40fb8cd22221154399ad8888e81cdb5", - "reference": "ef2c2fd4b40fb8cd22221154399ad8888e81cdb5", + "url": "https://api.github.com/repos/symfony/runtime/zipball/e120730ef206b31bb5521b1a2389c058adbba9c7", + "reference": "e120730ef206b31bb5521b1a2389c058adbba9c7", "shasum": "" }, "require": { @@ -5732,7 +5735,7 @@ "runtime" ], "support": { - "source": "https://github.com/symfony/runtime/tree/v7.0.3" + "source": "https://github.com/symfony/runtime/tree/v7.0.7" }, "funding": [ { @@ -5748,20 +5751,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/security-bundle", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "96a9e4eaf76514674d8ffd6127d8ec1204b72e7f" + "reference": "8d11101574ce8e2147a04245f4b968911a43ffd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/96a9e4eaf76514674d8ffd6127d8ec1204b72e7f", - "reference": "96a9e4eaf76514674d8ffd6127d8ec1204b72e7f", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/8d11101574ce8e2147a04245f4b968911a43ffd5", + "reference": "8d11101574ce8e2147a04245f4b968911a43ffd5", "shasum": "" }, "require": { @@ -5843,7 +5846,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v7.0.6" + "source": "https://github.com/symfony/security-bundle/tree/v7.0.7" }, "funding": [ { @@ -5859,20 +5862,20 @@ "type": "tidelift" } ], - "time": "2024-03-15T12:53:12+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/security-core", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "72b9d961a5dcd21e6bc29b99df51a9000a15dde0" + "reference": "6af8ac3b4d9c41a0ce0a4e33d532ba2000b47348" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/72b9d961a5dcd21e6bc29b99df51a9000a15dde0", - "reference": "72b9d961a5dcd21e6bc29b99df51a9000a15dde0", + "url": "https://api.github.com/repos/symfony/security-core/zipball/6af8ac3b4d9c41a0ce0a4e33d532ba2000b47348", + "reference": "6af8ac3b4d9c41a0ce0a4e33d532ba2000b47348", "shasum": "" }, "require": { @@ -5927,7 +5930,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v7.0.3" + "source": "https://github.com/symfony/security-core/tree/v7.0.7" }, "funding": [ { @@ -5943,20 +5946,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/security-csrf", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "f0f724e599f069b768e335e4bdf795726c7dfe8e" + "reference": "671d6736736555309991457dd877e7f6f3317d08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/f0f724e599f069b768e335e4bdf795726c7dfe8e", - "reference": "f0f724e599f069b768e335e4bdf795726c7dfe8e", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/671d6736736555309991457dd877e7f6f3317d08", + "reference": "671d6736736555309991457dd877e7f6f3317d08", "shasum": "" }, "require": { @@ -5995,7 +5998,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v7.0.3" + "source": "https://github.com/symfony/security-csrf/tree/v7.0.7" }, "funding": [ { @@ -6011,20 +6014,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/security-http", - "version": "v7.0.4", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "f3a70a937128f47366821a9f4b5dbfaa0ba9c862" + "reference": "836a338f51cd46d57e77fcba61c6f8c6111a3717" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/f3a70a937128f47366821a9f4b5dbfaa0ba9c862", - "reference": "f3a70a937128f47366821a9f4b5dbfaa0ba9c862", + "url": "https://api.github.com/repos/symfony/security-http/zipball/836a338f51cd46d57e77fcba61c6f8c6111a3717", + "reference": "836a338f51cd46d57e77fcba61c6f8c6111a3717", "shasum": "" }, "require": { @@ -6082,7 +6085,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v7.0.4" + "source": "https://github.com/symfony/security-http/tree/v7.0.7" }, "funding": [ { @@ -6098,20 +6101,20 @@ "type": "tidelift" } ], - "time": "2024-02-26T07:52:39+00:00" + "time": "2024-04-19T13:26:52+00:00" }, { "name": "symfony/serializer", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "dbdc0c04c28ac53de1fa35f92fca26e9b1345d98" + "reference": "08f0c517acf4b12dfc0d3963cd12f7b8023aea31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/dbdc0c04c28ac53de1fa35f92fca26e9b1345d98", - "reference": "dbdc0c04c28ac53de1fa35f92fca26e9b1345d98", + "url": "https://api.github.com/repos/symfony/serializer/zipball/08f0c517acf4b12dfc0d3963cd12f7b8023aea31", + "reference": "08f0c517acf4b12dfc0d3963cd12f7b8023aea31", "shasum": "" }, "require": { @@ -6177,7 +6180,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.0.6" + "source": "https://github.com/symfony/serializer/tree/v7.0.7" }, "funding": [ { @@ -6193,7 +6196,7 @@ "type": "tidelift" } ], - "time": "2024-03-28T09:20:36+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "symfony/service-contracts", @@ -6279,16 +6282,16 @@ }, { "name": "symfony/stopwatch", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "983900d6fddf2b0cbaacacbbad07610854bd8112" + "reference": "41a7a24aa1dc82adf46a06bc292d1923acfe6b84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/983900d6fddf2b0cbaacacbbad07610854bd8112", - "reference": "983900d6fddf2b0cbaacacbbad07610854bd8112", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/41a7a24aa1dc82adf46a06bc292d1923acfe6b84", + "reference": "41a7a24aa1dc82adf46a06bc292d1923acfe6b84", "shasum": "" }, "require": { @@ -6321,7 +6324,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.0.3" + "source": "https://github.com/symfony/stopwatch/tree/v7.0.7" }, "funding": [ { @@ -6337,20 +6340,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/string", - "version": "v7.0.4", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b" + "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f5832521b998b0bec40bee688ad5de98d4cf111b", - "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b", + "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63", + "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63", "shasum": "" }, "require": { @@ -6407,7 +6410,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.4" + "source": "https://github.com/symfony/string/tree/v7.0.7" }, "funding": [ { @@ -6423,20 +6426,20 @@ "type": "tidelift" } ], - "time": "2024-02-01T13:17:36+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/translation", - "version": "v7.0.4", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "5b75e872f7d135d7abb4613809fadc8d9f3d30a0" + "reference": "1515e03afaa93e6419aba5d5c9d209159317100b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/5b75e872f7d135d7abb4613809fadc8d9f3d30a0", - "reference": "5b75e872f7d135d7abb4613809fadc8d9f3d30a0", + "url": "https://api.github.com/repos/symfony/translation/zipball/1515e03afaa93e6419aba5d5c9d209159317100b", + "reference": "1515e03afaa93e6419aba5d5c9d209159317100b", "shasum": "" }, "require": { @@ -6501,7 +6504,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.0.4" + "source": "https://github.com/symfony/translation/tree/v7.0.7" }, "funding": [ { @@ -6517,7 +6520,7 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/translation-contracts", @@ -6599,16 +6602,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "1d5745dac2e043553177a3b88a76b99c2a2f6c2e" + "reference": "214237f7b3b82eeb430e85ea415c4a2915c304f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/1d5745dac2e043553177a3b88a76b99c2a2f6c2e", - "reference": "1d5745dac2e043553177a3b88a76b99c2a2f6c2e", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/214237f7b3b82eeb430e85ea415c4a2915c304f6", + "reference": "214237f7b3b82eeb430e85ea415c4a2915c304f6", "shasum": "" }, "require": { @@ -6687,7 +6690,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v7.0.6" + "source": "https://github.com/symfony/twig-bridge/tree/v7.0.7" }, "funding": [ { @@ -6703,20 +6706,20 @@ "type": "tidelift" } ], - "time": "2024-03-28T21:02:11+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/twig-bundle", - "version": "v7.0.4", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "acab2368f53491e018bf31ef48b39df55a6812ef" + "reference": "4dd8a395b955045d031d9525a7149cfcee8d0b02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/acab2368f53491e018bf31ef48b39df55a6812ef", - "reference": "acab2368f53491e018bf31ef48b39df55a6812ef", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/4dd8a395b955045d031d9525a7149cfcee8d0b02", + "reference": "4dd8a395b955045d031d9525a7149cfcee8d0b02", "shasum": "" }, "require": { @@ -6771,7 +6774,7 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v7.0.4" + "source": "https://github.com/symfony/twig-bundle/tree/v7.0.7" }, "funding": [ { @@ -6787,20 +6790,20 @@ "type": "tidelift" } ], - "time": "2024-02-15T11:33:06+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/validator", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "a2df2c63b7944a162dee86ab8065f2f91b7d6e36" + "reference": "ab4e75b9d23ba70e78480aecbe4d8da15adf10eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/a2df2c63b7944a162dee86ab8065f2f91b7d6e36", - "reference": "a2df2c63b7944a162dee86ab8065f2f91b7d6e36", + "url": "https://api.github.com/repos/symfony/validator/zipball/ab4e75b9d23ba70e78480aecbe4d8da15adf10eb", + "reference": "ab4e75b9d23ba70e78480aecbe4d8da15adf10eb", "shasum": "" }, "require": { @@ -6865,7 +6868,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v7.0.6" + "source": "https://github.com/symfony/validator/tree/v7.0.7" }, "funding": [ { @@ -6881,20 +6884,20 @@ "type": "tidelift" } ], - "time": "2024-03-28T09:20:36+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "66d13dc207d5dab6b4f4c2b5460efe1bea29dbfb" + "reference": "d1627b66fd87c8b4d90cabe5671c29d575690924" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/66d13dc207d5dab6b4f4c2b5460efe1bea29dbfb", - "reference": "66d13dc207d5dab6b4f4c2b5460efe1bea29dbfb", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d1627b66fd87c8b4d90cabe5671c29d575690924", + "reference": "d1627b66fd87c8b4d90cabe5671c29d575690924", "shasum": "" }, "require": { @@ -6948,7 +6951,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.0.6" + "source": "https://github.com/symfony/var-dumper/tree/v7.0.7" }, "funding": [ { @@ -6964,20 +6967,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T11:57:22+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "c74c568d2a15a1d407cf40d61ea82bc2d521e27b" + "reference": "cdecc0022e40e90340ba1a59a3d5ccf069777078" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/c74c568d2a15a1d407cf40d61ea82bc2d521e27b", - "reference": "c74c568d2a15a1d407cf40d61ea82bc2d521e27b", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/cdecc0022e40e90340ba1a59a3d5ccf069777078", + "reference": "cdecc0022e40e90340ba1a59a3d5ccf069777078", "shasum": "" }, "require": { @@ -7024,7 +7027,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.0.6" + "source": "https://github.com/symfony/var-exporter/tree/v7.0.7" }, "funding": [ { @@ -7040,20 +7043,20 @@ "type": "tidelift" } ], - "time": "2024-03-20T21:25:22+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/web-link", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/web-link.git", - "reference": "855a347feb2ecfc1d1a379c739aff956d4cbec00" + "reference": "19312f38543e77b09f04f374368b73530bfb9482" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-link/zipball/855a347feb2ecfc1d1a379c739aff956d4cbec00", - "reference": "855a347feb2ecfc1d1a379c739aff956d4cbec00", + "url": "https://api.github.com/repos/symfony/web-link/zipball/19312f38543e77b09f04f374368b73530bfb9482", + "reference": "19312f38543e77b09f04f374368b73530bfb9482", "shasum": "" }, "require": { @@ -7107,7 +7110,7 @@ "push" ], "support": { - "source": "https://github.com/symfony/web-link/tree/v7.0.3" + "source": "https://github.com/symfony/web-link/tree/v7.0.7" }, "funding": [ { @@ -7123,20 +7126,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/yaml", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "2d4fca631c00700597e9442a0b2451ce234513d3" + "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/2d4fca631c00700597e9442a0b2451ce234513d3", - "reference": "2d4fca631c00700597e9442a0b2451ce234513d3", + "url": "https://api.github.com/repos/symfony/yaml/zipball/0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c", + "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c", "shasum": "" }, "require": { @@ -7178,7 +7181,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.0.3" + "source": "https://github.com/symfony/yaml/tree/v7.0.7" }, "funding": [ { @@ -7194,38 +7197,38 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "twig/extra-bundle", - "version": "v3.8.0", + "version": "v3.9.3", "source": { "type": "git", "url": "https://github.com/twigphp/twig-extra-bundle.git", - "reference": "32807183753de0388c8e59f7ac2d13bb47311140" + "reference": "ef6869adf1fdab66f7e495771a7ba01496ffc0d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/32807183753de0388c8e59f7ac2d13bb47311140", - "reference": "32807183753de0388c8e59f7ac2d13bb47311140", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/ef6869adf1fdab66f7e495771a7ba01496ffc0d5", + "reference": "ef6869adf1fdab66f7e495771a7ba01496ffc0d5", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/framework-bundle": "^5.4|^6.0|^7.0", - "symfony/twig-bundle": "^5.4|^6.0|^7.0", + "symfony/framework-bundle": "^5.4|^6.4|^7.0", + "symfony/twig-bundle": "^5.4|^6.4|^7.0", "twig/twig": "^3.0" }, "require-dev": { "league/commonmark": "^1.0|^2.0", "symfony/phpunit-bridge": "^6.4|^7.0", "twig/cache-extra": "^3.0", - "twig/cssinliner-extra": "^2.12|^3.0", - "twig/html-extra": "^2.12|^3.0", - "twig/inky-extra": "^2.12|^3.0", - "twig/intl-extra": "^2.12|^3.0", - "twig/markdown-extra": "^2.12|^3.0", - "twig/string-extra": "^2.12|^3.0" + "twig/cssinliner-extra": "^3.0", + "twig/html-extra": "^3.0", + "twig/inky-extra": "^3.0", + "twig/intl-extra": "^3.0", + "twig/markdown-extra": "^3.0", + "twig/string-extra": "^3.0" }, "type": "symfony-bundle", "autoload": { @@ -7256,7 +7259,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.8.0" + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.9.3" }, "funding": [ { @@ -7268,34 +7271,41 @@ "type": "tidelift" } ], - "time": "2023-11-21T14:02:01+00:00" + "time": "2024-04-18T09:24:21+00:00" }, { "name": "twig/twig", - "version": "v3.8.0", + "version": "v3.9.3", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d" + "reference": "a842d75fed59cdbcbd3a3ad7fb9eb768fc350d58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", - "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a842d75fed59cdbcbd3a3ad7fb9eb768fc350d58", + "reference": "a842d75fed59cdbcbd3a3ad7fb9eb768fc350d58", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3", "symfony/polyfill-php80": "^1.22" }, "require-dev": { "psr/container": "^1.0|^2.0", - "symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0" + "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, "type": "library", "autoload": { + "files": [ + "src/Resources/core.php", + "src/Resources/debug.php", + "src/Resources/escaper.php", + "src/Resources/string_loader.php" + ], "psr-4": { "Twig\\": "src/" } @@ -7328,7 +7338,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.8.0" + "source": "https://github.com/twigphp/Twig/tree/v3.9.3" }, "funding": [ { @@ -7340,7 +7350,7 @@ "type": "tidelift" } ], - "time": "2023-11-21T18:54:41+00:00" + "time": "2024-04-18T11:59:33+00:00" }, { "name": "webmozart/assert", @@ -8299,23 +8309,23 @@ }, { "name": "qossmic/deptrac-shim", - "version": "0.24.0", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/qossmic/deptrac-shim.git", - "reference": "2ff8320c94b4fa5cfeaf08b3f98b5679c959cdd2" + "reference": "3179a2c4978654add865309e3c280ef3d60f0043" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/qossmic/deptrac-shim/zipball/2ff8320c94b4fa5cfeaf08b3f98b5679c959cdd2", - "reference": "2ff8320c94b4fa5cfeaf08b3f98b5679c959cdd2", + "url": "https://api.github.com/repos/qossmic/deptrac-shim/zipball/3179a2c4978654add865309e3c280ef3d60f0043", + "reference": "3179a2c4978654add865309e3c280ef3d60f0043", "shasum": "" }, "require": { "ext-json": "*", "ext-tokenizer": "*", "ext-zlib": "*", - "php": "^7.4 || 8.0.* || 8.1.*" + "php": "^8.1" }, "replace": { "qossmic/deptrac": "self.version" @@ -8332,10 +8342,12 @@ "MIT" ], "authors": [ + { + "name": "Tim Glabisch" + }, { "name": "Simon Mönch", - "email": "simon.moench@qossmic.com", - "role": "maintainer" + "email": "simon.moench@qossmic.com" }, { "name": "Denis Brumann", @@ -8346,9 +8358,9 @@ "description": "deptrac phar distribution", "support": { "issues": "https://github.com/qossmic/deptrac-shim/issues", - "source": "https://github.com/qossmic/deptrac-shim/tree/0.24.0" + "source": "https://github.com/qossmic/deptrac-shim/tree/1.0.2" }, - "time": "2022-08-12T10:10:47+00:00" + "time": "2022-12-02T11:47:53+00:00" }, { "name": "sebastian/cli-parser", @@ -9315,16 +9327,16 @@ }, { "name": "symfony/browser-kit", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "725d5b15681685ac17b20b575254c75639722488" + "reference": "0a48e67a7975c07d8cc0661fbbdddce56c58425e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/725d5b15681685ac17b20b575254c75639722488", - "reference": "725d5b15681685ac17b20b575254c75639722488", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/0a48e67a7975c07d8cc0661fbbdddce56c58425e", + "reference": "0a48e67a7975c07d8cc0661fbbdddce56c58425e", "shasum": "" }, "require": { @@ -9363,7 +9375,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v7.0.3" + "source": "https://github.com/symfony/browser-kit/tree/v7.0.7" }, "funding": [ { @@ -9379,20 +9391,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/css-selector", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be" + "reference": "b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/ec60a4edf94e63b0556b6a0888548bb400a3a3be", - "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc", + "reference": "b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc", "shasum": "" }, "require": { @@ -9428,7 +9440,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.0.3" + "source": "https://github.com/symfony/css-selector/tree/v7.0.7" }, "funding": [ { @@ -9444,20 +9456,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/debug-bundle", - "version": "v7.0.3", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/debug-bundle.git", - "reference": "b0db5c443883ce5c10c2265c77feb9833c3d9d6d" + "reference": "4b013a2c886cfd0292d90a9a9cebfa29ec7b578c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/b0db5c443883ce5c10c2265c77feb9833c3d9d6d", - "reference": "b0db5c443883ce5c10c2265c77feb9833c3d9d6d", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/4b013a2c886cfd0292d90a9a9cebfa29ec7b578c", + "reference": "4b013a2c886cfd0292d90a9a9cebfa29ec7b578c", "shasum": "" }, "require": { @@ -9502,7 +9514,7 @@ "description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/debug-bundle/tree/v7.0.3" + "source": "https://github.com/symfony/debug-bundle/tree/v7.0.7" }, "funding": [ { @@ -9518,20 +9530,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/dom-crawler", - "version": "v7.0.4", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "6cb272cbec4dc7a30a853d2931766b03bea92dda" + "reference": "7cb4ae7166a8a36916be390dbb3819474fb06a29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/6cb272cbec4dc7a30a853d2931766b03bea92dda", - "reference": "6cb272cbec4dc7a30a853d2931766b03bea92dda", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/7cb4ae7166a8a36916be390dbb3819474fb06a29", + "reference": "7cb4ae7166a8a36916be390dbb3819474fb06a29", "shasum": "" }, "require": { @@ -9569,7 +9581,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v7.0.4" + "source": "https://github.com/symfony/dom-crawler/tree/v7.0.7" }, "funding": [ { @@ -9585,20 +9597,20 @@ "type": "tidelift" } ], - "time": "2024-02-12T11:15:03+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/maker-bundle", - "version": "v1.58.0", + "version": "v1.59.0", "source": { "type": "git", "url": "https://github.com/symfony/maker-bundle.git", - "reference": "c4f8d2c5d55950e1a49e822efc83a8511bee8a36" + "reference": "1f02b59b98003b2c1f51bc8f178aee5cbf36779c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c4f8d2c5d55950e1a49e822efc83a8511bee8a36", - "reference": "c4f8d2c5d55950e1a49e822efc83a8511bee8a36", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/1f02b59b98003b2c1f51bc8f178aee5cbf36779c", + "reference": "1f02b59b98003b2c1f51bc8f178aee5cbf36779c", "shasum": "" }, "require": { @@ -9661,7 +9673,7 @@ ], "support": { "issues": "https://github.com/symfony/maker-bundle/issues", - "source": "https://github.com/symfony/maker-bundle/tree/v1.58.0" + "source": "https://github.com/symfony/maker-bundle/tree/v1.59.0" }, "funding": [ { @@ -9677,20 +9689,20 @@ "type": "tidelift" } ], - "time": "2024-04-06T15:08:12+00:00" + "time": "2024-04-27T21:12:25+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v7.0.6", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "a014167aa1f66cb9990675840da65609d3e61612" + "reference": "0a0b90ba08b9a03e09ad49f8d613bdf3eca3a7a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/a014167aa1f66cb9990675840da65609d3e61612", - "reference": "a014167aa1f66cb9990675840da65609d3e61612", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/0a0b90ba08b9a03e09ad49f8d613bdf3eca3a7a9", + "reference": "0a0b90ba08b9a03e09ad49f8d613bdf3eca3a7a9", "shasum": "" }, "require": { @@ -9742,7 +9754,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v7.0.6" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.0.7" }, "funding": [ { @@ -9758,20 +9770,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T11:57:22+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v7.0.4", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "542daea1345fe181cbfd52db00717174a838ea0a" + "reference": "a9a722210b391d7f6d97f140a5f2f7eee604d81a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/542daea1345fe181cbfd52db00717174a838ea0a", - "reference": "542daea1345fe181cbfd52db00717174a838ea0a", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/a9a722210b391d7f6d97f140a5f2f7eee604d81a", + "reference": "a9a722210b391d7f6d97f140a5f2f7eee604d81a", "shasum": "" }, "require": { @@ -9823,7 +9835,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.0.4" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.0.7" }, "funding": [ { @@ -9839,7 +9851,7 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "theseer/tokenizer", @@ -9903,5 +9915,5 @@ "ext-iconv": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.2.0" } diff --git a/config/services.yaml b/config/services.yaml index 941cb31..986a486 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -14,3 +14,6 @@ services: resource: '../src/Application/' exclude: - '../src/Application/DomainEventsHandler/' + + Infrastructure\Doctrine\DataFixtures\: + resource: '../src/Infrastructure/Doctrine/DataFixtures/**.php' diff --git a/config/services/doctrine_event_listeners.yaml b/config/services/doctrine_event_listeners.yaml index 6e23be2..13ccdb0 100644 --- a/config/services/doctrine_event_listeners.yaml +++ b/config/services/doctrine_event_listeners.yaml @@ -8,4 +8,4 @@ services: Infrastructure\Doctrine\EventListener\HashUserPasswordListener: tags: - { name: doctrine.event_listener, event: prePersist } - - { name: doctrine.event_listener, event: preUpdate } \ No newline at end of file + - { name: doctrine.event_listener, event: preUpdate } diff --git a/config/services/domain_events.yaml b/config/services/domain_events.yaml index a3030d7..952b1b6 100644 --- a/config/services/domain_events.yaml +++ b/config/services/domain_events.yaml @@ -2,6 +2,7 @@ services: _defaults: autowire: true + autoconfigure: true public: false Domain\EventsRegisterer: ~ diff --git a/config/services/use_cases.yaml b/config/services/use_cases.yaml index 38f66c4..f462146 100644 --- a/config/services/use_cases.yaml +++ b/config/services/use_cases.yaml @@ -8,4 +8,4 @@ services: Domain\UseCase\: resource: '%kernel.project_dir%/src/Domain/UseCase/**/Handler.php' tags: - - { name: messenger.message_handler, bus: command.bus } \ No newline at end of file + - { name: messenger.message_handler, bus: command.bus } diff --git a/src/Application/Controller/AuthenticationController.php b/src/Application/Controller/AuthenticationController.php index 2065439..910e337 100644 --- a/src/Application/Controller/AuthenticationController.php +++ b/src/Application/Controller/AuthenticationController.php @@ -18,8 +18,8 @@ final class AuthenticationController extends AbstractController { public function __construct( - private UsersCollection $usersCollection, - private CommandBus $commandBus + private readonly UsersCollection $usersCollection, + private readonly CommandBus $commandBus ) { } diff --git a/src/Application/Controller/DinosaursController.php b/src/Application/Controller/DinosaursController.php index 2d67bca..8ad107f 100644 --- a/src/Application/Controller/DinosaursController.php +++ b/src/Application/Controller/DinosaursController.php @@ -7,7 +7,6 @@ use Application\MessageBus\CommandBus; use Application\MessageBus\EventBus; use Application\MessageBus\QueryBus; -use Domain\Event\DinosaurIsBorn; use Domain\Exception\DinosaurNotFoundException; use Domain\Query\GetSingleDinosaur; use Domain\Query\GetAllDinosaurs; @@ -23,9 +22,9 @@ final class DinosaursController extends AbstractController { public function __construct( - private CommandBus $commandBus, - private QueryBus $queryBus, - private EventBus $eventBus + private readonly CommandBus $commandBus, + private readonly QueryBus $queryBus, + private readonly EventBus $eventBus ) { } diff --git a/src/Application/Controller/SpeciesController.php b/src/Application/Controller/SpeciesController.php index 09f2ac5..dd49f09 100644 --- a/src/Application/Controller/SpeciesController.php +++ b/src/Application/Controller/SpeciesController.php @@ -22,8 +22,8 @@ final class SpeciesController extends AbstractController { public function __construct( - private CommandBus $commandBus, - private QueryBus $queryBus + private readonly CommandBus $commandBus, + private readonly QueryBus $queryBus ) { } diff --git a/src/Application/DomainEventsHandler/LogWhenDinosaurDied.php b/src/Application/DomainEventsHandler/LogWhenDinosaurDied.php index 944baea..58735b8 100644 --- a/src/Application/DomainEventsHandler/LogWhenDinosaurDied.php +++ b/src/Application/DomainEventsHandler/LogWhenDinosaurDied.php @@ -5,31 +5,22 @@ namespace Application\DomainEventsHandler; use Domain\Event\DinosaurDied; -use Domain\Event\EventInterface; use Psr\Log\LoggerInterface; -use Symfony\Component\Messenger\Handler\MessageSubscriberInterface; +use Symfony\Component\Messenger\Attribute\AsMessageHandler; -class LogWhenDinosaurDied implements MessageSubscriberInterface +#[AsMessageHandler] +final class LogWhenDinosaurDied { public function __construct( - private LoggerInterface $logger + private readonly LoggerInterface $logger, ) { } - public function __invoke(EventInterface $event): void + public function __invoke(DinosaurDied $event): void { - if (!$event instanceof DinosaurDied) { - return; - } - $this->logger->info(sprintf( 'Dinosaur %s died', - $event->getDinosaurName() + $event->dinosaurName )); } - - public static function getHandledMessages(): iterable - { - yield DinosaurDied::class; - } } diff --git a/src/Application/DomainEventsHandler/LogWhenDinosaurIsBorn.php b/src/Application/DomainEventsHandler/LogWhenDinosaurIsBorn.php index 70bde7a..9c1d27e 100644 --- a/src/Application/DomainEventsHandler/LogWhenDinosaurIsBorn.php +++ b/src/Application/DomainEventsHandler/LogWhenDinosaurIsBorn.php @@ -6,38 +6,27 @@ use Domain\Collection\DinosaursCollection; use Domain\Event\DinosaurIsBorn; -use Domain\Event\EventInterface; -use Domain\Exception\DinosaurNotFoundException; -use Domain\Model\Dinosaur; use Psr\Log\LoggerInterface; -use Symfony\Component\Messenger\Handler\MessageSubscriberInterface; +use Symfony\Component\Messenger\Attribute\AsMessageHandler; -class LogWhenDinosaurIsBorn implements MessageSubscriberInterface +#[AsMessageHandler] +final class LogWhenDinosaurIsBorn { public function __construct( - private DinosaursCollection $dinosaursCollection, - private LoggerInterface $logger + private readonly DinosaursCollection $dinosaursCollection, + private readonly LoggerInterface $logger ) { } - public function __invoke(EventInterface $event): void + public function __invoke(DinosaurIsBorn $event): void { $dinosaurId = $event->getAggregateRootId(); $dinosaur = $this->dinosaursCollection->find($dinosaurId); - if (!$dinosaur instanceof Dinosaur) { - throw new DinosaurNotFoundException($dinosaurId); - } - $this->logger->info(sprintf( 'Dinosaur %s was born', $dinosaur->getName() )); } - - public static function getHandledMessages(): iterable - { - yield DinosaurIsBorn::class; - } } diff --git a/src/Application/Form/DataTransformer/SpeciesReadToModel.php b/src/Application/Form/DataTransformer/SpeciesReadToModel.php index bc2e187..79b2a76 100644 --- a/src/Application/Form/DataTransformer/SpeciesReadToModel.php +++ b/src/Application/Form/DataTransformer/SpeciesReadToModel.php @@ -10,14 +10,14 @@ use Domain\ReadModel\Species; use Symfony\Component\Form\DataTransformerInterface; -class SpeciesReadToModel implements DataTransformerInterface +final class SpeciesReadToModel implements DataTransformerInterface { public function __construct( - private SpeciesCollection $speciesCollection + private readonly SpeciesCollection $speciesCollection ) { } - public function transform(mixed $value) + public function transform(mixed $value): mixed { if (!$value instanceof Species) { return $value; @@ -34,7 +34,7 @@ public function transform(mixed $value) return $species; } - public function reverseTransform(mixed $value) + public function reverseTransform(mixed $value): mixed { if (!$value instanceof ModelSpecies) { return $value; diff --git a/src/Application/Form/Type/DinosaurType.php b/src/Application/Form/Type/DinosaurType.php index 5a944d5..7cecc3d 100644 --- a/src/Application/Form/Type/DinosaurType.php +++ b/src/Application/Form/Type/DinosaurType.php @@ -15,7 +15,7 @@ final class DinosaurType extends AbstractType { public function __construct( - private SpeciesReadToModel $speciesReadToModel + private readonly SpeciesReadToModel $speciesReadToModel ) { } diff --git a/src/Application/Form/Type/UserType.php b/src/Application/Form/Type/UserType.php index fefabf9..2fe680b 100644 --- a/src/Application/Form/Type/UserType.php +++ b/src/Application/Form/Type/UserType.php @@ -10,7 +10,7 @@ use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\FormBuilderInterface; -class UserType extends AbstractType +final class UserType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { diff --git a/src/Application/MessageBus/QueryBus.php b/src/Application/MessageBus/QueryBus.php index a46d977..fa556ff 100644 --- a/src/Application/MessageBus/QueryBus.php +++ b/src/Application/MessageBus/QueryBus.php @@ -7,4 +7,4 @@ interface QueryBus { public function dispatch(object $input): mixed; -} \ No newline at end of file +} diff --git a/src/Application/Security/User.php b/src/Application/Security/User.php index 7488943..610fc56 100644 --- a/src/Application/Security/User.php +++ b/src/Application/Security/User.php @@ -11,16 +11,18 @@ final class User implements UserInterface, PasswordAuthenticatedUserInterface { public function __construct( - private ModelUser $user + private readonly ModelUser $user ) { } public function getRoles(): array { - return ['ROLE_USER']; + return $this->user->getRoles(); } - public function eraseCredentials() { } + public function eraseCredentials(): void + { + } public function getUserIdentifier(): string { diff --git a/src/Application/Security/UserProvider.php b/src/Application/Security/UserProvider.php index 46fa96a..abf82a8 100644 --- a/src/Application/Security/UserProvider.php +++ b/src/Application/Security/UserProvider.php @@ -4,21 +4,16 @@ namespace Application\Security; -use Domain; +use Domain\Collection\UsersCollection; use Symfony\Component\Security\Core\Exception\UserNotFoundException; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\UserProviderInterface; final class UserProvider implements UserProviderInterface { - /** - * @var Domain\Repository\Users - */ - private $users; - - public function __construct(Domain\Collection\UsersCollection $users) - { - $this->users = $users; + public function __construct( + private readonly UsersCollection $users + ) { } public function loadUserByIdentifier(string $identifier): UserInterface @@ -32,16 +27,15 @@ public function loadUserByIdentifier(string $identifier): UserInterface return new User($user); } - public function refreshUser(UserInterface $user) + public function refreshUser(UserInterface $user): UserInterface { return $this->loadUserByIdentifier( $user->getUserIdentifier() ); } - public function supportsClass($class) + public function supportsClass($class): bool { return User::class === $class; } } - diff --git a/src/Domain/Collection/UsersCollection.php b/src/Domain/Collection/UsersCollection.php index efc9cb2..eee4b47 100644 --- a/src/Domain/Collection/UsersCollection.php +++ b/src/Domain/Collection/UsersCollection.php @@ -8,7 +8,7 @@ interface UsersCollection { - public function findByEmail(string $email): ?User; + public function findOneByEmail(string $email): ?User; public function add(User $user): void; } diff --git a/src/Domain/Event/DinosaurDied.php b/src/Domain/Event/DinosaurDied.php index cb10371..0af15a3 100644 --- a/src/Domain/Event/DinosaurDied.php +++ b/src/Domain/Event/DinosaurDied.php @@ -4,24 +4,16 @@ namespace Domain\Event; -use Domain\Model\Dinosaur; - -final class DinosaurDied implements EventInterface +final readonly class DinosaurDied implements EventInterface { - private string $dinosaurName; - - public function __construct(private Dinosaur $dinosaur) - { - $this->dinosaurName = $dinosaur->getName(); + public function __construct( + public int $dinosaurId, + public string $dinosaurName, + ) { } public function getAggregateRootId(): string { - return (string) $this->dinosaur->getId(); - } - - public function getDinosaurName(): string - { - return $this->dinosaurName; + return (string) $this->dinosaurId; } } diff --git a/src/Domain/Event/DinosaurIsBorn.php b/src/Domain/Event/DinosaurIsBorn.php index 1dd3af3..70d304e 100644 --- a/src/Domain/Event/DinosaurIsBorn.php +++ b/src/Domain/Event/DinosaurIsBorn.php @@ -4,17 +4,15 @@ namespace Domain\Event; -use Domain\Model\Dinosaur; - -class DinosaurIsBorn implements EventInterface +final readonly class DinosaurIsBorn implements EventInterface { public function __construct( - private Dinosaur $dinosaur + public int $dinosaurId, ) { } public function getAggregateRootId(): string { - return (string) $this->dinosaur->getId(); + return (string) $this->dinosaurId; } -} \ No newline at end of file +} diff --git a/src/Domain/EventsRegisterer.php b/src/Domain/EventsRegisterer.php index cfc75ba..50a0034 100644 --- a/src/Domain/EventsRegisterer.php +++ b/src/Domain/EventsRegisterer.php @@ -6,7 +6,7 @@ use Domain\Event\EventInterface; -class EventsRegisterer +final class EventsRegisterer { /** @var array */ private array $events = []; diff --git a/src/Domain/Exception/DinosaurAlreadyExistsException.php b/src/Domain/Exception/DinosaurAlreadyExistsException.php index 34edbbb..c4c0e02 100644 --- a/src/Domain/Exception/DinosaurAlreadyExistsException.php +++ b/src/Domain/Exception/DinosaurAlreadyExistsException.php @@ -6,10 +6,11 @@ use DomainException; -class DinosaurAlreadyExistsException extends DomainException +final class DinosaurAlreadyExistsException extends DomainException { - public function __construct(string $name) - { + public function __construct( + private readonly string $name + ) { parent::__construct(sprintf('Dinosaur "%s" already exists', $name)); } } diff --git a/src/Domain/Exception/DinosaurNotFoundException.php b/src/Domain/Exception/DinosaurNotFoundException.php index fd07e0e..0d6fb76 100644 --- a/src/Domain/Exception/DinosaurNotFoundException.php +++ b/src/Domain/Exception/DinosaurNotFoundException.php @@ -6,7 +6,7 @@ use DomainException; -class DinosaurNotFoundException extends DomainException +final class DinosaurNotFoundException extends DomainException { public function __construct( public readonly string $id diff --git a/src/Domain/Exception/SpeciesAlreadyExistsException.php b/src/Domain/Exception/SpeciesAlreadyExistsException.php index 2a81037..0b065be 100644 --- a/src/Domain/Exception/SpeciesAlreadyExistsException.php +++ b/src/Domain/Exception/SpeciesAlreadyExistsException.php @@ -6,10 +6,11 @@ use DomainException; -class SpeciesAlreadyExistsException extends DomainException +final class SpeciesAlreadyExistsException extends DomainException { - public function __construct(string $name) - { + public function __construct( + private readonly string $name + ) { parent::__construct(sprintf('Species "%s" already exists', $name)); } } diff --git a/src/Domain/Exception/SpeciesNotFoundException.php b/src/Domain/Exception/SpeciesNotFoundException.php index 445aa3b..b58a431 100644 --- a/src/Domain/Exception/SpeciesNotFoundException.php +++ b/src/Domain/Exception/SpeciesNotFoundException.php @@ -6,11 +6,11 @@ use DomainException; -class SpeciesNotFoundException extends DomainException +final class SpeciesNotFoundException extends DomainException { - public function __construct(string $id) - { + public function __construct( + private readonly string $id + ) { parent::__construct(sprintf('Species with id "%s" already exists', $id)); } } - diff --git a/src/Domain/Exception/UserAlreadyExistsException.php b/src/Domain/Exception/UserAlreadyExistsException.php index 5fdf082..f48b29f 100644 --- a/src/Domain/Exception/UserAlreadyExistsException.php +++ b/src/Domain/Exception/UserAlreadyExistsException.php @@ -6,11 +6,11 @@ use DomainException; -class UserAlreadyExistsException extends DomainException +final class UserAlreadyExistsException extends DomainException { - public function __construct(string $email) - { + public function __construct( + private readonly string $email + ) { parent::__construct(sprintf('User "%s" already exists', $email)); } } - diff --git a/src/Domain/HasEventsRegisterer.php b/src/Domain/HasEventsRegisterer.php deleted file mode 100644 index 8737095..0000000 --- a/src/Domain/HasEventsRegisterer.php +++ /dev/null @@ -1,30 +0,0 @@ -eventsRegisterer = $eventsRegisterer; - } - - public function getEventsRegisterer(): EventsRegisterer - { - return $this->eventsRegisterer; - } - - public function registerEvents(EventInterface ...$events): void - { - $this->eventsRegisterer->register(...$events); - } -} diff --git a/src/Domain/Model/AggregateRoot.php b/src/Domain/Model/AggregateRoot.php index dc5be02..5d6622f 100644 --- a/src/Domain/Model/AggregateRoot.php +++ b/src/Domain/Model/AggregateRoot.php @@ -8,4 +8,3 @@ interface AggregateRoot { public function getId(): int; } - diff --git a/src/Domain/Model/User.php b/src/Domain/Model/User.php index a8a4970..837d095 100644 --- a/src/Domain/Model/User.php +++ b/src/Domain/Model/User.php @@ -45,4 +45,12 @@ public function getPassword(): ?string { return $this->password; } + + public function getRoles(): array + { + $roles = $this->roles; + $roles[] = 'ROLE_USER'; + + return array_unique($roles); + } } diff --git a/src/Domain/Query/GetAllDinosaurs/Handler.php b/src/Domain/Query/GetAllDinosaurs/Handler.php index b8acb56..9b897a4 100644 --- a/src/Domain/Query/GetAllDinosaurs/Handler.php +++ b/src/Domain/Query/GetAllDinosaurs/Handler.php @@ -8,7 +8,7 @@ use Domain\Model\Dinosaur as ModelDinosaur; use Domain\ReadModel\Dinosaur; -class Handler +final readonly class Handler { public function __construct( private DinosaursCollection $dinosaursCollection diff --git a/src/Domain/Query/GetAllDinosaurs/Query.php b/src/Domain/Query/GetAllDinosaurs/Query.php index e4e78f3..215bb66 100644 --- a/src/Domain/Query/GetAllDinosaurs/Query.php +++ b/src/Domain/Query/GetAllDinosaurs/Query.php @@ -4,10 +4,10 @@ namespace Domain\Query\GetAllDinosaurs; -final class Query +final readonly class Query { public function __construct( - public readonly ?string $search = null + public ?string $search = null ) { } } diff --git a/src/Domain/Query/GetAllSpecies/Handler.php b/src/Domain/Query/GetAllSpecies/Handler.php index 15927f1..f45f119 100644 --- a/src/Domain/Query/GetAllSpecies/Handler.php +++ b/src/Domain/Query/GetAllSpecies/Handler.php @@ -8,7 +8,7 @@ use Domain\Model\Species as ModelSpecies; use Domain\ReadModel\Species; -class Handler +final readonly class Handler { public function __construct( private SpeciesCollection $speciesCollection diff --git a/src/Domain/Query/GetAllSpecies/Query.php b/src/Domain/Query/GetAllSpecies/Query.php index c5294e2..54a4a7c 100644 --- a/src/Domain/Query/GetAllSpecies/Query.php +++ b/src/Domain/Query/GetAllSpecies/Query.php @@ -4,9 +4,9 @@ namespace Domain\Query\GetAllSpecies; -final class Query +final readonly class Query { - public function __construct( - ) { + public function __construct() + { } } diff --git a/src/Domain/Query/GetSingleDinosaur/Handler.php b/src/Domain/Query/GetSingleDinosaur/Handler.php index 8927bbf..e6b16c5 100644 --- a/src/Domain/Query/GetSingleDinosaur/Handler.php +++ b/src/Domain/Query/GetSingleDinosaur/Handler.php @@ -8,7 +8,7 @@ use Domain\Exception\DinosaurNotFoundException; use Domain\ReadModel\Dinosaur; -class Handler +final readonly class Handler { public function __construct( private DinosaursCollection $dinosaursCollection diff --git a/src/Domain/Query/GetSingleDinosaur/Query.php b/src/Domain/Query/GetSingleDinosaur/Query.php index af1b738..9456f39 100644 --- a/src/Domain/Query/GetSingleDinosaur/Query.php +++ b/src/Domain/Query/GetSingleDinosaur/Query.php @@ -4,10 +4,10 @@ namespace Domain\Query\GetSingleDinosaur; -final class Query +final readonly class Query { public function __construct( - public readonly string $id, + public string $id, ) { } } diff --git a/src/Domain/Query/GetSingleSpecies/Handler.php b/src/Domain/Query/GetSingleSpecies/Handler.php index 8f65072..91143e8 100644 --- a/src/Domain/Query/GetSingleSpecies/Handler.php +++ b/src/Domain/Query/GetSingleSpecies/Handler.php @@ -8,10 +8,10 @@ use Domain\Exception\SpeciesNotFoundException; use Domain\ReadModel\Species; -class Handler +final readonly class Handler { public function __construct( - private readonly SpeciesCollection $speciesCollection, + private SpeciesCollection $speciesCollection, ) { } diff --git a/src/Domain/Query/GetSingleSpecies/Query.php b/src/Domain/Query/GetSingleSpecies/Query.php index 6dd0056..2073385 100644 --- a/src/Domain/Query/GetSingleSpecies/Query.php +++ b/src/Domain/Query/GetSingleSpecies/Query.php @@ -4,10 +4,10 @@ namespace Domain\Query\GetSingleSpecies; -final class Query +final readonly class Query { public function __construct( - public readonly string $id, + public string $id, ) { } } diff --git a/src/Domain/UseCase/CreateDinosaur/Handler.php b/src/Domain/UseCase/CreateDinosaur/Handler.php index ad82ada..913f4e8 100644 --- a/src/Domain/UseCase/CreateDinosaur/Handler.php +++ b/src/Domain/UseCase/CreateDinosaur/Handler.php @@ -7,18 +7,17 @@ use Domain\Collection\DinosaursCollection; use Domain\Collection\SpeciesCollection; use Domain\Event\DinosaurIsBorn; +use Domain\EventsRegisterer; use Domain\Exception\DinosaurAlreadyExistsException; use Domain\Exception\SpeciesNotFoundException; -use Domain\HasEventsRegisterer; use Domain\Model\Dinosaur; -class Handler +final class Handler { - use HasEventsRegisterer; - public function __construct( - private DinosaursCollection $dinosaursCollection, - private SpeciesCollection $speciesCollection + private readonly DinosaursCollection $dinosaursCollection, + private readonly SpeciesCollection $speciesCollection, + private readonly EventsRegisterer $eventsRegisterer ) { } @@ -26,8 +25,7 @@ public function __invoke(Input $input): Output { $existingDinosaurs = $this ->dinosaursCollection - ->findByName($input->name) - ; + ->findByName($input->name); if (null !== $existingDinosaurs) { throw new DinosaurAlreadyExistsException($input->name); @@ -35,8 +33,7 @@ public function __invoke(Input $input): Output $species = $this ->speciesCollection - ->find($input->speciesId) - ; + ->find($input->speciesId); if (null === $species) { throw new SpeciesNotFoundException($input->speciesId); @@ -52,7 +49,7 @@ public function __invoke(Input $input): Output $this->dinosaursCollection->add($dinosaur); - $this->registerEvents(new DinosaurIsBorn($dinosaur)); + $this->eventsRegisterer->register(new DinosaurIsBorn($dinosaur->getId())); return new Output($dinosaur); } diff --git a/src/Domain/UseCase/CreateDinosaur/Input.php b/src/Domain/UseCase/CreateDinosaur/Input.php index f62857e..7de1e8c 100644 --- a/src/Domain/UseCase/CreateDinosaur/Input.php +++ b/src/Domain/UseCase/CreateDinosaur/Input.php @@ -4,14 +4,14 @@ namespace Domain\UseCase\CreateDinosaur; -final class Input +final readonly class Input { public function __construct( - public readonly string $name, - public readonly string $gender, - public readonly string $speciesId, - public readonly int $age, - public readonly string $eyesColor + public string $name, + public string $gender, + public string $speciesId, + public int $age, + public string $eyesColor ) { } -} \ No newline at end of file +} diff --git a/src/Domain/UseCase/CreateDinosaur/Output.php b/src/Domain/UseCase/CreateDinosaur/Output.php index daa319b..0aa93e2 100644 --- a/src/Domain/UseCase/CreateDinosaur/Output.php +++ b/src/Domain/UseCase/CreateDinosaur/Output.php @@ -6,10 +6,10 @@ use Domain\Model\Dinosaur; -final class Output +final readonly class Output { public function __construct( - public readonly Dinosaur $dinosaur + public Dinosaur $dinosaur ) { } } diff --git a/src/Domain/UseCase/CreateSpecies/Handler.php b/src/Domain/UseCase/CreateSpecies/Handler.php index 13275d5..ff2ff09 100644 --- a/src/Domain/UseCase/CreateSpecies/Handler.php +++ b/src/Domain/UseCase/CreateSpecies/Handler.php @@ -8,7 +8,7 @@ use Domain\Exception\SpeciesAlreadyExistsException; use Domain\Model\Species; -class Handler +final readonly class Handler { public function __construct( private SpeciesCollection $speciesCollection, diff --git a/src/Domain/UseCase/CreateSpecies/Input.php b/src/Domain/UseCase/CreateSpecies/Input.php index 02ddce3..f24a7e0 100644 --- a/src/Domain/UseCase/CreateSpecies/Input.php +++ b/src/Domain/UseCase/CreateSpecies/Input.php @@ -4,12 +4,12 @@ namespace Domain\UseCase\CreateSpecies; -final class Input +final readonly class Input { public function __construct( - public readonly string $name, - public readonly array $habitats, - public readonly string $feeding, + public string $name, + public array $habitats, + public string $feeding, ) { } } diff --git a/src/Domain/UseCase/CreateSpecies/Output.php b/src/Domain/UseCase/CreateSpecies/Output.php index abb4fc9..61ff7de 100644 --- a/src/Domain/UseCase/CreateSpecies/Output.php +++ b/src/Domain/UseCase/CreateSpecies/Output.php @@ -6,10 +6,10 @@ use Domain\Model\Species; -final class Output +final readonly class Output { public function __construct( - public readonly Species $species + public Species $species ) { } } diff --git a/src/Domain/UseCase/EditDinosaur/Handler.php b/src/Domain/UseCase/EditDinosaur/Handler.php index 24304f7..07ac51f 100644 --- a/src/Domain/UseCase/EditDinosaur/Handler.php +++ b/src/Domain/UseCase/EditDinosaur/Handler.php @@ -9,7 +9,7 @@ use Domain\Exception\DinosaurAlreadyExistsException; use Domain\Exception\SpeciesNotFoundException; -class Handler +final readonly class Handler { public function __construct( private DinosaursCollection $dinosaursCollection, @@ -21,8 +21,7 @@ public function __invoke(Input $input): Output { $dinosaur = $this ->dinosaursCollection - ->find($input->id) - ; + ->find($input->id); if (null === $dinosaur) { throw new DinosaurAlreadyExistsException($input->name); @@ -30,8 +29,7 @@ public function __invoke(Input $input): Output $species = $this ->speciesCollection - ->find($input->speciesId) - ; + ->find($input->speciesId); if (null === $species) { throw new SpeciesNotFoundException($input->speciesId); diff --git a/src/Domain/UseCase/EditDinosaur/Input.php b/src/Domain/UseCase/EditDinosaur/Input.php index 6e22464..61ee172 100644 --- a/src/Domain/UseCase/EditDinosaur/Input.php +++ b/src/Domain/UseCase/EditDinosaur/Input.php @@ -6,15 +6,15 @@ use Domain\ReadModel\Dinosaur; -final class Input +final readonly class Input { public function __construct( - public readonly string $id, - public readonly string $name, - public readonly string $gender, - public readonly string $speciesId, - public readonly int $age, - public readonly string $eyesColor + public string $id, + public string $name, + public string $gender, + public string $speciesId, + public int $age, + public string $eyesColor ) { } @@ -29,4 +29,4 @@ public static function fromReadModel(Dinosaur $dinosaur): self $dinosaur->getEyesColor() ); } -} \ No newline at end of file +} diff --git a/src/Domain/UseCase/EditDinosaur/Output.php b/src/Domain/UseCase/EditDinosaur/Output.php index dff763b..329bcf6 100644 --- a/src/Domain/UseCase/EditDinosaur/Output.php +++ b/src/Domain/UseCase/EditDinosaur/Output.php @@ -6,10 +6,10 @@ use Domain\Model\Dinosaur; -final class Output +final readonly class Output { public function __construct( - public readonly Dinosaur $dinosaur + public Dinosaur $dinosaur ) { } } diff --git a/src/Domain/UseCase/EditSpecies/Handler.php b/src/Domain/UseCase/EditSpecies/Handler.php index 891c965..d5a5712 100644 --- a/src/Domain/UseCase/EditSpecies/Handler.php +++ b/src/Domain/UseCase/EditSpecies/Handler.php @@ -8,7 +8,7 @@ use Domain\Exception\SpeciesNotFoundException; use Domain\Model\Species; -class Handler +final readonly class Handler { public function __construct( private SpeciesCollection $speciesCollection, diff --git a/src/Domain/UseCase/EditSpecies/Input.php b/src/Domain/UseCase/EditSpecies/Input.php index e2a5680..f2e5a5d 100644 --- a/src/Domain/UseCase/EditSpecies/Input.php +++ b/src/Domain/UseCase/EditSpecies/Input.php @@ -6,13 +6,13 @@ use Domain\ReadModel\Species; -final class Input +final readonly class Input { public function __construct( - public readonly string $speciesId, - public readonly string $name, - public readonly array $habitats, - public readonly string $feeding + public string $speciesId, + public string $name, + public array $habitats, + public string $feeding ) { } diff --git a/src/Domain/UseCase/EditSpecies/Output.php b/src/Domain/UseCase/EditSpecies/Output.php index 30c24e6..58e6102 100644 --- a/src/Domain/UseCase/EditSpecies/Output.php +++ b/src/Domain/UseCase/EditSpecies/Output.php @@ -6,11 +6,10 @@ use Domain\Model\Species; -final class Output +final readonly class Output { public function __construct( - public readonly Species $species + public Species $species ) { } } - diff --git a/src/Domain/UseCase/RegisterUser/Handler.php b/src/Domain/UseCase/RegisterUser/Handler.php index 2f60081..a1c496b 100644 --- a/src/Domain/UseCase/RegisterUser/Handler.php +++ b/src/Domain/UseCase/RegisterUser/Handler.php @@ -8,7 +8,7 @@ use Domain\Exception\UserAlreadyExistsException; use Domain\Model\User; -class Handler +final readonly class Handler { public function __construct( private UsersCollection $usersCollection @@ -17,7 +17,7 @@ public function __construct( public function __invoke(Input $input): Output { - $existingUser = $this->usersCollection->findByEmail($input->email); + $existingUser = $this->usersCollection->findOneByEmail($input->email); if (null !== $existingUser) { throw new UserAlreadyExistsException($input->email); diff --git a/src/Domain/UseCase/RegisterUser/Input.php b/src/Domain/UseCase/RegisterUser/Input.php index bd31ddd..8582252 100644 --- a/src/Domain/UseCase/RegisterUser/Input.php +++ b/src/Domain/UseCase/RegisterUser/Input.php @@ -4,11 +4,11 @@ namespace Domain\UseCase\RegisterUser; -final class Input +final readonly class Input { public function __construct( - public readonly string $email, - public readonly string $password + public string $email, + public string $password ) { } } diff --git a/src/Domain/UseCase/RegisterUser/Output.php b/src/Domain/UseCase/RegisterUser/Output.php index 7b0b083..4bf7de5 100644 --- a/src/Domain/UseCase/RegisterUser/Output.php +++ b/src/Domain/UseCase/RegisterUser/Output.php @@ -6,10 +6,10 @@ use Domain\Model\User; -final class Output +final readonly class Output { public function __construct( - public readonly User $user + public User $user ) { } } diff --git a/src/Domain/UseCase/RemoveDinosaur/Handler.php b/src/Domain/UseCase/RemoveDinosaur/Handler.php index f4b493d..2510a11 100644 --- a/src/Domain/UseCase/RemoveDinosaur/Handler.php +++ b/src/Domain/UseCase/RemoveDinosaur/Handler.php @@ -7,14 +7,13 @@ use Domain\Collection\DinosaursCollection; use Domain\Event\DinosaurDied; use Domain\Exception\DinosaurNotFoundException; -use Domain\HasEventsRegisterer; +use Domain\EventsRegisterer; -class Handler +final class Handler { - use HasEventsRegisterer; - public function __construct( - private DinosaursCollection $dinosaursCollection + private readonly DinosaursCollection $dinosaursCollection, + private readonly EventsRegisterer $eventsRegisterer ) { } @@ -22,8 +21,7 @@ public function __invoke(Input $input): Output { $dinosaur = $this ->dinosaursCollection - ->find($input->id) - ; + ->find($input->id); if (null === $dinosaur) { throw new DinosaurNotFoundException($input->id); @@ -31,7 +29,10 @@ public function __invoke(Input $input): Output $this->dinosaursCollection->remove($dinosaur); - $this->registerEvents(new DinosaurDied($dinosaur)); + $this->eventsRegisterer->register(new DinosaurDied( + $dinosaur->getId(), + $dinosaur->getName() + )); return new Output(); } diff --git a/src/Domain/UseCase/RemoveDinosaur/Input.php b/src/Domain/UseCase/RemoveDinosaur/Input.php index ffcb7ab..ad21392 100644 --- a/src/Domain/UseCase/RemoveDinosaur/Input.php +++ b/src/Domain/UseCase/RemoveDinosaur/Input.php @@ -4,10 +4,10 @@ namespace Domain\UseCase\RemoveDinosaur; -final class Input +final readonly class Input { public function __construct( - public readonly string $id + public string $id ) { } } diff --git a/src/Domain/UseCase/RemoveDinosaur/Output.php b/src/Domain/UseCase/RemoveDinosaur/Output.php index 33c9efe..5b5bb0f 100644 --- a/src/Domain/UseCase/RemoveDinosaur/Output.php +++ b/src/Domain/UseCase/RemoveDinosaur/Output.php @@ -4,6 +4,6 @@ namespace Domain\UseCase\RemoveDinosaur; -final class Output +final readonly class Output { } diff --git a/src/Domain/UseCase/RemoveSpecies/Handler.php b/src/Domain/UseCase/RemoveSpecies/Handler.php index 10341a4..ace7e85 100644 --- a/src/Domain/UseCase/RemoveSpecies/Handler.php +++ b/src/Domain/UseCase/RemoveSpecies/Handler.php @@ -7,11 +7,12 @@ use Domain\Collection\SpeciesCollection; use Domain\Exception\SpeciesNotFoundException; -class Handler +final readonly class Handler { public function __construct( private SpeciesCollection $speciesCollection - ) {} + ) { + } public function __invoke(Input $input): Output { diff --git a/src/Domain/UseCase/RemoveSpecies/Input.php b/src/Domain/UseCase/RemoveSpecies/Input.php index 3d2f8de..5503757 100644 --- a/src/Domain/UseCase/RemoveSpecies/Input.php +++ b/src/Domain/UseCase/RemoveSpecies/Input.php @@ -4,10 +4,10 @@ namespace Domain\UseCase\RemoveSpecies; -final class Input +final readonly class Input { public function __construct( - public readonly string $id, + public string $id, ) { } } diff --git a/src/Domain/UseCase/RemoveSpecies/Output.php b/src/Domain/UseCase/RemoveSpecies/Output.php index 63a54bc..74489e9 100644 --- a/src/Domain/UseCase/RemoveSpecies/Output.php +++ b/src/Domain/UseCase/RemoveSpecies/Output.php @@ -4,6 +4,6 @@ namespace Domain\UseCase\RemoveSpecies; -final class Output +final readonly class Output { } diff --git a/src/Infrastructure/Doctrine/DataFixtures/AppFixtures.php b/src/Infrastructure/Doctrine/DataFixtures/AppFixtures.php index da111cf..523be5b 100644 --- a/src/Infrastructure/Doctrine/DataFixtures/AppFixtures.php +++ b/src/Infrastructure/Doctrine/DataFixtures/AppFixtures.php @@ -2,9 +2,10 @@ namespace Infrastructure\Doctrine\DataFixtures; -use App\Entity\Dinosaur; -use App\Entity\Species; -use App\Entity\User; +use Application\Security\User; +use Domain\Model\User as ModelUser; +use Domain\Model\Dinosaur; +use Domain\Model\Species; use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Persistence\ObjectManager; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; @@ -21,12 +22,12 @@ public function load(ObjectManager $manager): void /** * Create a user with the role ROLE_ADMIN. */ - $admin = new User( + $admin = new ModelUser( 'admin@mail.com', ['ROLE_ADMIN'] ); - $hashedPassword = $this->passwordHasher->hashPassword($admin, 'admin'); + $hashedPassword = $this->passwordHasher->hashPassword(new User($admin), 'admin'); $admin->setHashedPassword($hashedPassword); $manager->persist($admin); @@ -35,11 +36,11 @@ public function load(ObjectManager $manager): void * Create basic users with the default role ROLE_USER */ for ($i = 0; $i < 10; ++$i) { - $user = new User( + $user = new ModelUser( 'user_' . $i . '@mail.com' ); - $hashedPassword = $this->passwordHasher->hashPassword($user, 'password'); + $hashedPassword = $this->passwordHasher->hashPassword(new User($user), 'password'); $user->setHashedPassword($hashedPassword); $manager->persist($user); diff --git a/src/Infrastructure/Doctrine/EventListener/HashUserPasswordListener.php b/src/Infrastructure/Doctrine/EventListener/HashUserPasswordListener.php index 95e5762..3af4cff 100644 --- a/src/Infrastructure/Doctrine/EventListener/HashUserPasswordListener.php +++ b/src/Infrastructure/Doctrine/EventListener/HashUserPasswordListener.php @@ -9,7 +9,7 @@ use Domain\Model\User; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; -class HashUserPasswordListener +final readonly class HashUserPasswordListener { public function __construct( private UserPasswordHasherInterface $passwordHasher diff --git a/src/Infrastructure/Doctrine/Repository/DinosaurRepository.php b/src/Infrastructure/Doctrine/Repository/DinosaurRepository.php index 64228fe..e897fb6 100644 --- a/src/Infrastructure/Doctrine/Repository/DinosaurRepository.php +++ b/src/Infrastructure/Doctrine/Repository/DinosaurRepository.php @@ -10,7 +10,7 @@ use Doctrine\Persistence\ObjectManager; use Domain\Collection\DinosaursCollection; -class DinosaurRepository extends ServiceEntityRepository implements DinosaursCollection +final class DinosaurRepository extends ServiceEntityRepository implements DinosaursCollection { private ObjectManager $objectManager; @@ -26,8 +26,7 @@ public function findByName(string $name): ?Dinosaur ->where('d.name = :name') ->setParameter('name', $name) ->getQuery() - ->getOneOrNullResult() - ; + ->getOneOrNullResult(); } public function search(?string $q): array diff --git a/src/Infrastructure/Doctrine/Repository/UserRepository.php b/src/Infrastructure/Doctrine/Repository/UserRepository.php index c5cbc1c..8c00952 100644 --- a/src/Infrastructure/Doctrine/Repository/UserRepository.php +++ b/src/Infrastructure/Doctrine/Repository/UserRepository.php @@ -10,7 +10,7 @@ use Domain\Collection\UsersCollection; use Domain\Model\User; -class UserRepository extends ServiceEntityRepository implements UsersCollection +final class UserRepository extends ServiceEntityRepository implements UsersCollection { private ObjectManager $objectManager; @@ -20,14 +20,13 @@ public function __construct(ManagerRegistry $registry) $this->objectManager = $registry->getManager(); } - public function findByEmail(string $email): ?User + public function findOneByEmail(string $email): ?User { return $this->createQueryBuilder('u') ->where('u.email = :email') ->setParameter('email', $email) ->getQuery() - ->getOneOrNullResult() - ; + ->getOneOrNullResult(); } public function add(User $user): void diff --git a/src/Infrastructure/Symfony/Messenger/CommandBus.php b/src/Infrastructure/Symfony/Messenger/CommandBus.php index 3695aac..1eaebed 100644 --- a/src/Infrastructure/Symfony/Messenger/CommandBus.php +++ b/src/Infrastructure/Symfony/Messenger/CommandBus.php @@ -9,11 +9,12 @@ use Symfony\Component\Messenger\HandleTrait; use Symfony\Component\Messenger\MessageBusInterface; -class CommandBus implements CommandBusInterface +final class CommandBus implements CommandBusInterface { use HandleTrait; - public function __construct(private MessageBusInterface $messageBus) { + public function __construct(private MessageBusInterface $messageBus) + { } public function dispatch(object $input): mixed @@ -21,7 +22,7 @@ public function dispatch(object $input): mixed try { return $this->handle($input); } catch (HandlerFailedException $handlerFailedException) { - $nestedExceptions = $handlerFailedException->getNestedExceptions(); + $nestedExceptions = $handlerFailedException->getWrappedExceptions(); if (false === $nested = current($nestedExceptions)) { throw $handlerFailedException; @@ -31,4 +32,3 @@ public function dispatch(object $input): mixed } } } - diff --git a/src/Infrastructure/Symfony/Messenger/EventBus.php b/src/Infrastructure/Symfony/Messenger/EventBus.php index 21be1ff..ce47601 100644 --- a/src/Infrastructure/Symfony/Messenger/EventBus.php +++ b/src/Infrastructure/Symfony/Messenger/EventBus.php @@ -9,11 +9,12 @@ use Symfony\Component\Messenger\HandleTrait; use Symfony\Component\Messenger\MessageBusInterface; -class EventBus implements EventBusInterface +final class EventBus implements EventBusInterface { use HandleTrait; - public function __construct(private MessageBusInterface $messageBus) { + public function __construct(private MessageBusInterface $messageBus) + { } public function dispatch(object $event): void @@ -21,7 +22,7 @@ public function dispatch(object $event): void try { $this->handle($event); } catch (HandlerFailedException $handlerFailedException) { - $nestedExceptions = $handlerFailedException->getNestedExceptions(); + $nestedExceptions = $handlerFailedException->getWrappedExceptions(); if (false === $nested = current($nestedExceptions)) { throw $handlerFailedException; diff --git a/src/Infrastructure/Symfony/Messenger/QueryBus.php b/src/Infrastructure/Symfony/Messenger/QueryBus.php index d93770e..2f81666 100644 --- a/src/Infrastructure/Symfony/Messenger/QueryBus.php +++ b/src/Infrastructure/Symfony/Messenger/QueryBus.php @@ -9,11 +9,12 @@ use Symfony\Component\Messenger\HandleTrait; use Symfony\Component\Messenger\MessageBusInterface; -class QueryBus implements QueryBusInterface +final class QueryBus implements QueryBusInterface { use HandleTrait; - public function __construct(private MessageBusInterface $messageBus) { + public function __construct(private MessageBusInterface $messageBus) + { } public function dispatch(object $input): mixed @@ -21,7 +22,7 @@ public function dispatch(object $input): mixed try { return $this->handle($input); } catch (HandlerFailedException $handlerFailedException) { - $nestedExceptions = $handlerFailedException->getNestedExceptions(); + $nestedExceptions = $handlerFailedException->getWrappedExceptions(); if (false === $nested = current($nestedExceptions)) { throw $handlerFailedException;