diff --git a/composer.json b/composer.json index 2faf4ac8..50f2ccaa 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "symfony/cache": "^6.4.0 || ^7.0.0 || ^8.0.0", "symfony/config": "^6.4.0 || ^7.0.0 || ^8.0.0", "symfony/console": "^6.4.1 || ^7.0.1 || ^8.0.0", - "symfony/dependency-injection": "^6.4.1 || ^7.0.1 || ^8.0.0", + "symfony/dependency-injection": "^7.3.0 || ^8.0.0", "symfony/event-dispatcher": "^6.4.1 || ^7.0.1 || ^8.0.0", "symfony/finder": "^6.4.0 || ^7.0.0 || ^8.0.0", "symfony/http-kernel": "^6.4.1 || ^7.0.1 || ^8.0.0", diff --git a/composer.lock b/composer.lock index 26874152..bc6a0b87 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": "c9107847f5836dc26077ad33dc2e96cf", + "content-hash": "e329a27a02407435fdda60ac5161f11e", "packages": [ { "name": "brick/math", @@ -68,16 +68,16 @@ }, { "name": "doctrine/dbal", - "version": "4.4.0", + "version": "4.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "e8c5163fbec0f34e357431bd1e5fc4056cdf4fdc" + "reference": "3d544473fb93f5c25b483ea4f4ce99f8c4d9d44c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/e8c5163fbec0f34e357431bd1e5fc4056cdf4fdc", - "reference": "e8c5163fbec0f34e357431bd1e5fc4056cdf4fdc", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/3d544473fb93f5c25b483ea4f4ce99f8c4d9d44c", + "reference": "3d544473fb93f5c25b483ea4f4ce99f8c4d9d44c", "shasum": "" }, "require": { @@ -154,7 +154,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/4.4.0" + "source": "https://github.com/doctrine/dbal/tree/4.4.1" }, "funding": [ { @@ -170,7 +170,7 @@ "type": "tidelift" } ], - "time": "2025-11-29T12:17:09+00:00" + "time": "2025-12-04T10:11:03+00:00" }, { "name": "doctrine/deprecations", @@ -420,12 +420,12 @@ "source": { "type": "git", "url": "https://github.com/patchlevel/event-sourcing.git", - "reference": "8dd45305c7dde2daf5e337b9704fd20c2afe2604" + "reference": "ed316c771872bc1efd34caee9705f60267a0c368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/patchlevel/event-sourcing/zipball/8dd45305c7dde2daf5e337b9704fd20c2afe2604", - "reference": "8dd45305c7dde2daf5e337b9704fd20c2afe2604", + "url": "https://api.github.com/repos/patchlevel/event-sourcing/zipball/ed316c771872bc1efd34caee9705f60267a0c368", + "reference": "ed316c771872bc1efd34caee9705f60267a0c368", "shasum": "" }, "require": { @@ -494,7 +494,7 @@ "issues": "https://github.com/patchlevel/event-sourcing/issues", "source": "https://github.com/patchlevel/event-sourcing/tree/4.0.x" }, - "time": "2025-12-01T17:19:55+00:00" + "time": "2025-12-09T10:43:48+00:00" }, { "name": "patchlevel/hydrator", @@ -1077,16 +1077,16 @@ }, { "name": "symfony/cache", - "version": "v8.0.0", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "1005fe1988f719db8e0c6db5b8ce24284336530f" + "reference": "0e67dc8145810d4e1c0d13c0e1d29ceb930b1c8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/1005fe1988f719db8e0c6db5b8ce24284336530f", - "reference": "1005fe1988f719db8e0c6db5b8ce24284336530f", + "url": "https://api.github.com/repos/symfony/cache/zipball/0e67dc8145810d4e1c0d13c0e1d29ceb930b1c8e", + "reference": "0e67dc8145810d4e1c0d13c0e1d29ceb930b1c8e", "shasum": "" }, "require": { @@ -1153,7 +1153,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v8.0.0" + "source": "https://github.com/symfony/cache/tree/v8.0.1" }, "funding": [ { @@ -1173,7 +1173,7 @@ "type": "tidelift" } ], - "time": "2025-11-16T10:17:21+00:00" + "time": "2025-12-04T18:17:06+00:00" }, { "name": "symfony/cache-contracts", @@ -1330,16 +1330,16 @@ }, { "name": "symfony/config", - "version": "v8.0.0", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "12d43bf5ebe79ab96da294f468c38794e1a2c98b" + "reference": "a5a054e613da565d46183a845ae4c0c996a3fbce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/12d43bf5ebe79ab96da294f468c38794e1a2c98b", - "reference": "12d43bf5ebe79ab96da294f468c38794e1a2c98b", + "url": "https://api.github.com/repos/symfony/config/zipball/a5a054e613da565d46183a845ae4c0c996a3fbce", + "reference": "a5a054e613da565d46183a845ae4c0c996a3fbce", "shasum": "" }, "require": { @@ -1384,7 +1384,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/v8.0.0" + "source": "https://github.com/symfony/config/tree/v8.0.1" }, "funding": [ { @@ -1404,20 +1404,20 @@ "type": "tidelift" } ], - "time": "2025-11-02T08:10:27+00:00" + "time": "2025-12-05T14:08:45+00:00" }, { "name": "symfony/console", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8" + "reference": "6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", - "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", + "url": "https://api.github.com/repos/symfony/console/zipball/6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e", + "reference": "6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e", "shasum": "" }, "require": { @@ -1482,7 +1482,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.0" + "source": "https://github.com/symfony/console/tree/v7.4.1" }, "funding": [ { @@ -1502,20 +1502,20 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2025-12-05T15:23:39+00:00" }, { "name": "symfony/dependency-injection", - "version": "v8.0.0", + "version": "v8.0.2", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "8b61252a5e897809ebbe9c7856aa7738830e6002" + "reference": "90f6c3364b8f444f85bdb6939664c80af9e0d576" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8b61252a5e897809ebbe9c7856aa7738830e6002", - "reference": "8b61252a5e897809ebbe9c7856aa7738830e6002", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/90f6c3364b8f444f85bdb6939664c80af9e0d576", + "reference": "90f6c3364b8f444f85bdb6939664c80af9e0d576", "shasum": "" }, "require": { @@ -1563,7 +1563,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/v8.0.0" + "source": "https://github.com/symfony/dependency-injection/tree/v8.0.2" }, "funding": [ { @@ -1583,7 +1583,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T08:09:45+00:00" + "time": "2025-12-08T06:57:48+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2034,16 +2034,16 @@ }, { "name": "symfony/http-foundation", - "version": "v8.0.0", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "19f925ff62437970e56fcdf793aa93607622d8be" + "reference": "3690740e2e8b19d877f20d4f10b7a489cddf0fe2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/19f925ff62437970e56fcdf793aa93607622d8be", - "reference": "19f925ff62437970e56fcdf793aa93607622d8be", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3690740e2e8b19d877f20d4f10b7a489cddf0fe2", + "reference": "3690740e2e8b19d877f20d4f10b7a489cddf0fe2", "shasum": "" }, "require": { @@ -2090,7 +2090,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v8.0.0" + "source": "https://github.com/symfony/http-foundation/tree/v8.0.1" }, "funding": [ { @@ -2110,20 +2110,20 @@ "type": "tidelift" } ], - "time": "2025-11-13T08:54:25+00:00" + "time": "2025-12-07T11:23:24+00:00" }, { "name": "symfony/http-kernel", - "version": "v8.0.0", + "version": "v8.0.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "33a41d7f17dfb65519670e7f9c2813896ae2a2aa" + "reference": "bcef77a3c8ae8934ce7067172e2a1a6491a62a7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/33a41d7f17dfb65519670e7f9c2813896ae2a2aa", - "reference": "33a41d7f17dfb65519670e7f9c2813896ae2a2aa", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/bcef77a3c8ae8934ce7067172e2a1a6491a62a7d", + "reference": "bcef77a3c8ae8934ce7067172e2a1a6491a62a7d", "shasum": "" }, "require": { @@ -2194,7 +2194,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/v8.0.0" + "source": "https://github.com/symfony/http-kernel/tree/v8.0.2" }, "funding": [ { @@ -2214,7 +2214,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T08:33:14+00:00" + "time": "2025-12-08T07:59:34+00:00" }, { "name": "symfony/messenger", @@ -2874,16 +2874,16 @@ }, { "name": "symfony/string", - "version": "v8.0.0", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f929eccf09531078c243df72398560e32fa4cf4f" + "reference": "ba65a969ac918ce0cc3edfac6cdde847eba231dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f929eccf09531078c243df72398560e32fa4cf4f", - "reference": "f929eccf09531078c243df72398560e32fa4cf4f", + "url": "https://api.github.com/repos/symfony/string/zipball/ba65a969ac918ce0cc3edfac6cdde847eba231dc", + "reference": "ba65a969ac918ce0cc3edfac6cdde847eba231dc", "shasum": "" }, "require": { @@ -2940,7 +2940,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v8.0.0" + "source": "https://github.com/symfony/string/tree/v8.0.1" }, "funding": [ { @@ -2960,20 +2960,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T14:37:55+00:00" + "time": "2025-12-01T09:13:36+00:00" }, { "name": "symfony/type-info", - "version": "v8.0.0", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "9de828eae6aeb33806f8f2fec161a8f8e79338d0" + "reference": "bb091cec1f70383538c7d000699781813f8d1a6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/9de828eae6aeb33806f8f2fec161a8f8e79338d0", - "reference": "9de828eae6aeb33806f8f2fec161a8f8e79338d0", + "url": "https://api.github.com/repos/symfony/type-info/zipball/bb091cec1f70383538c7d000699781813f8d1a6a", + "reference": "bb091cec1f70383538c7d000699781813f8d1a6a", "shasum": "" }, "require": { @@ -3022,7 +3022,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v8.0.0" + "source": "https://github.com/symfony/type-info/tree/v8.0.1" }, "funding": [ { @@ -3042,7 +3042,7 @@ "type": "tidelift" } ], - "time": "2025-11-08T16:30:39+00:00" + "time": "2025-12-05T14:08:45+00:00" }, { "name": "symfony/var-dumper", @@ -5096,16 +5096,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.6.2", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "3a454ca033b9e06b63282ce19562e892747449bb" + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb", - "reference": "3a454ca033b9e06b63282ce19562e892747449bb", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", "shasum": "" }, "require": { @@ -5148,9 +5148,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" }, - "time": "2025-10-21T19:32:17+00:00" + "time": "2025-12-06T11:56:16+00:00" }, { "name": "ondram/ci-detector", @@ -5452,11 +5452,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.1.32", + "version": "2.1.33", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e126cad1e30a99b137b8ed75a85a676450ebb227", - "reference": "e126cad1e30a99b137b8ed75a85a676450ebb227", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9e800e6bee7d5bd02784d4c6069b48032d16224f", + "reference": "9e800e6bee7d5bd02784d4c6069b48032d16224f", "shasum": "" }, "require": { @@ -5501,7 +5501,7 @@ "type": "github" } ], - "time": "2025-11-11T15:18:17+00:00" + "time": "2025-12-05T10:24:31+00:00" }, { "name": "phpstan/phpstan-symfony", @@ -5911,16 +5911,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.45", + "version": "11.5.46", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "faf5fff4fb9beb290affa53f812b05380819c51a" + "reference": "75dfe79a2aa30085b7132bb84377c24062193f33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/faf5fff4fb9beb290affa53f812b05380819c51a", - "reference": "faf5fff4fb9beb290affa53f812b05380819c51a", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/75dfe79a2aa30085b7132bb84377c24062193f33", + "reference": "75dfe79a2aa30085b7132bb84377c24062193f33", "shasum": "" }, "require": { @@ -5992,7 +5992,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.45" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.46" }, "funding": [ { @@ -6016,7 +6016,7 @@ "type": "tidelift" } ], - "time": "2025-12-01T07:38:43+00:00" + "time": "2025-12-06T08:01:15+00:00" }, { "name": "roave/security-advisories", @@ -6024,12 +6024,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "eeebba0043eaddd36fd8747cc144b9b661d9b392" + "reference": "75d4ccd9c135c4ac904cd4211a43e51d12feb1ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/eeebba0043eaddd36fd8747cc144b9b661d9b392", - "reference": "eeebba0043eaddd36fd8747cc144b9b661d9b392", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/75d4ccd9c135c4ac904cd4211a43e51d12feb1ef", + "reference": "75d4ccd9c135c4ac904cd4211a43e51d12feb1ef", "shasum": "" }, "conflict": { @@ -6281,6 +6281,7 @@ "feehi/feehicms": "<=2.1.1", "fenom/fenom": "<=2.12.1", "filament/actions": ">=3.2,<3.2.123", + "filament/filament": ">=4,<4.3.1", "filament/infolists": ">=3,<3.2.115", "filament/tables": ">=3,<3.2.115", "filegator/filegator": "<7.8", @@ -6535,6 +6536,7 @@ "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15", "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", + "neuron-core/neuron-ai": "<=2.8.11", "nilsteampassnet/teampass": "<3.1.3.1-dev", "nitsan/ns-backup": "<13.0.1", "nonfiction/nterchange": "<4.1.1", @@ -6554,7 +6556,7 @@ "october/system": "<3.7.5", "oliverklee/phpunit": "<3.5.15", "omeka/omeka-s": "<4.0.3", - "onelogin/php-saml": "<2.10.4", + "onelogin/php-saml": "<2.21.1|>=3,<3.8.1|>=4,<4.3.1", "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5", "open-web-analytics/open-web-analytics": "<1.8.1", "opencart/opencart": ">=0", @@ -6688,8 +6690,8 @@ "shopware/core": "<6.6.10.9-dev|>=6.7,<6.7.4.1-dev", "shopware/platform": "<6.6.10.7-dev|>=6.7,<6.7.3.1-dev", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<=5.7.17|>=6.7,<6.7.2.1-dev", - "shopware/storefront": "<=6.4.8.1|>=6.5.8,<6.5.8.7-dev", + "shopware/shopware": "<=5.7.17|>=6.4.6,<6.6.10.10-dev|>=6.7,<6.7.5.1-dev", + "shopware/storefront": "<6.6.10.10-dev|>=6.7,<6.7.5.1-dev", "shopxo/shopxo": "<=6.4", "showdoc/showdoc": "<2.10.4", "shuchkin/simplexlsx": ">=1.0.12,<1.1.13", @@ -7015,7 +7017,7 @@ "type": "tidelift" } ], - "time": "2025-12-08T23:05:37+00:00" + "time": "2025-12-09T18:07:05+00:00" }, { "name": "sanmai/di-container", @@ -8472,16 +8474,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v8.0.0", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "01cdaf3f26e981c3d9dc87a13cdf7352a8cf6ef8" + "reference": "194b5edd7a00703aaf836b56bbf079cd6c4d4a87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/01cdaf3f26e981c3d9dc87a13cdf7352a8cf6ef8", - "reference": "01cdaf3f26e981c3d9dc87a13cdf7352a8cf6ef8", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/194b5edd7a00703aaf836b56bbf079cd6c4d4a87", + "reference": "194b5edd7a00703aaf836b56bbf079cd6c4d4a87", "shasum": "" }, "require": { @@ -8520,6 +8522,7 @@ "doctrine/persistence": "^1.3|^2|^3", "dragonmantank/cron-expression": "^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", "seld/jsonlint": "^1.10", "symfony/asset": "^7.4|^8.0", "symfony/asset-mapper": "^7.4|^8.0", @@ -8553,7 +8556,7 @@ "symfony/string": "^7.4|^8.0", "symfony/translation": "^7.4|^8.0", "symfony/twig-bundle": "^7.4|^8.0", - "symfony/type-info": "^7.4|^8.0", + "symfony/type-info": "^7.4.1|^8.0.1", "symfony/uid": "^7.4|^8.0", "symfony/validator": "^7.4|^8.0", "symfony/web-link": "^7.4|^8.0", @@ -8587,7 +8590,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/v8.0.0" + "source": "https://github.com/symfony/framework-bundle/tree/v8.0.1" }, "funding": [ { @@ -8607,7 +8610,7 @@ "type": "tidelift" } ], - "time": "2025-11-21T13:19:49+00:00" + "time": "2025-12-06T16:55:34+00:00" }, { "name": "symfony/polyfill-php80", @@ -8923,16 +8926,16 @@ }, { "name": "symfony/routing", - "version": "v8.0.0", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8da1cf2796c9cef09b170208ddb9bc00d997502e" + "reference": "bc8fa314a61fb7c4190e964b18a5bd000d3b45ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8da1cf2796c9cef09b170208ddb9bc00d997502e", - "reference": "8da1cf2796c9cef09b170208ddb9bc00d997502e", + "url": "https://api.github.com/repos/symfony/routing/zipball/bc8fa314a61fb7c4190e964b18a5bd000d3b45ce", + "reference": "bc8fa314a61fb7c4190e964b18a5bd000d3b45ce", "shasum": "" }, "require": { @@ -8979,7 +8982,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v8.0.0" + "source": "https://github.com/symfony/routing/tree/v8.0.1" }, "funding": [ { @@ -8999,7 +9002,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T08:09:45+00:00" + "time": "2025-12-01T09:13:36+00:00" }, { "name": "symfony/translation-contracts", @@ -9085,16 +9088,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v8.0.0", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "6fd7fdb536c0c7b6bd54080f0785841ff794c1fd" + "reference": "a5d2d4fdd63a0c96fe9dd28e7c3cf21512689f7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/6fd7fdb536c0c7b6bd54080f0785841ff794c1fd", - "reference": "6fd7fdb536c0c7b6bd54080f0785841ff794c1fd", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/a5d2d4fdd63a0c96fe9dd28e7c3cf21512689f7b", + "reference": "a5d2d4fdd63a0c96fe9dd28e7c3cf21512689f7b", "shasum": "" }, "require": { @@ -9117,7 +9120,7 @@ "symfony/emoji": "^7.4|^8.0", "symfony/expression-language": "^7.4|^8.0", "symfony/finder": "^7.4|^8.0", - "symfony/form": "^7.4|^8.0", + "symfony/form": "^7.4.1|^8.0.1", "symfony/html-sanitizer": "^7.4|^8.0", "symfony/http-foundation": "^7.4|^8.0", "symfony/http-kernel": "^7.4|^8.0", @@ -9167,7 +9170,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v8.0.0" + "source": "https://github.com/symfony/twig-bridge/tree/v8.0.1" }, "funding": [ { @@ -9187,7 +9190,7 @@ "type": "tidelift" } ], - "time": "2025-11-05T14:36:47+00:00" + "time": "2025-12-05T14:08:45+00:00" }, { "name": "symfony/twig-bundle", diff --git a/src/DependencyInjection/CommandHandlerCompilerPass.php b/src/DependencyInjection/CommandHandlerCompilerPass.php index dad31be7..833e1e0c 100644 --- a/src/DependencyInjection/CommandHandlerCompilerPass.php +++ b/src/DependencyInjection/CommandHandlerCompilerPass.php @@ -7,7 +7,6 @@ use Patchlevel\EventSourcing\CommandBus\Handler\CreateAggregateHandler; use Patchlevel\EventSourcing\CommandBus\Handler\UpdateAggregateHandler; use Patchlevel\EventSourcing\CommandBus\HandlerFinder; -use Patchlevel\EventSourcing\Metadata\AggregateRoot\AggregateRootRegistry; use Patchlevel\EventSourcing\Repository\RepositoryManager; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; @@ -27,10 +26,7 @@ public function process(ContainerBuilder $container): void $bus = $container->getParameter('patchlevel_event_sourcing.aggregate_handlers.bus'); - /** @var AggregateRootRegistry $aggregateRootRegistry */ - $aggregateRootRegistry = $container->get(AggregateRootRegistry::class); - - foreach ($aggregateRootRegistry->aggregateClasses() as $aggregateName => $aggregateClass) { + foreach ($container->getParameter('event_sourcing.aggregates') as $aggregateName => $aggregateClass) { $parameterResolverId = sprintf('.event_sourcing.handler_parameter_resolver.%s', $aggregateName); foreach (HandlerFinder::findInClass($aggregateClass) as $aggregateHandler) { diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index f0e42fe6..1911d913 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -65,9 +65,6 @@ * translators: list * } * }, - * aggregates: list, - * events: list, - * headers: list, * snapshot_stores: array, * migration: array{path: string, namespace: string}, * cryptography: array{ @@ -143,24 +140,6 @@ public function getConfigTreeBuilder(): TreeBuilder ->end() ->end() - ->arrayNode('events') - ->beforeNormalization()->castToArray()->end() - ->defaultValue([]) - ->scalarPrototype()->end() - ->end() - - ->arrayNode('aggregates') - ->beforeNormalization()->castToArray()->end() - ->defaultValue([]) - ->scalarPrototype()->end() - ->end() - - ->arrayNode('headers') - ->beforeNormalization()->castToArray()->end() - ->defaultValue([]) - ->scalarPrototype()->end() - ->end() - ->arrayNode('clock') ->addDefaultsIfNotSet() ->children() diff --git a/src/DependencyInjection/HandlerServiceLocatorCompilerPass.php b/src/DependencyInjection/HandlerServiceLocatorCompilerPass.php index 87eb52a6..42a9448c 100644 --- a/src/DependencyInjection/HandlerServiceLocatorCompilerPass.php +++ b/src/DependencyInjection/HandlerServiceLocatorCompilerPass.php @@ -7,7 +7,6 @@ use Patchlevel\EventSourcing\Attribute\Inject; use Patchlevel\EventSourcing\CommandBus\Handler\ServiceNotResolvable; use Patchlevel\EventSourcing\CommandBus\HandlerFinder; -use Patchlevel\EventSourcing\Metadata\AggregateRoot\AggregateRootRegistry; use Patchlevel\EventSourcingBundle\CommandBus\SymfonyParameterResolver; use Psr\Container\ContainerInterface; use ReflectionAttribute; @@ -32,10 +31,7 @@ public function process(ContainerBuilder $container): void return; } - /** @var AggregateRootRegistry $aggregateRootRegistry */ - $aggregateRootRegistry = $container->get(AggregateRootRegistry::class); - - foreach ($aggregateRootRegistry->aggregateClasses() as $aggregateName => $aggregateClass) { + foreach ($container->getParameter('event_sourcing.aggregates') as $aggregateName => $aggregateClass) { $parameterResolverId = sprintf('.event_sourcing.handler_parameter_resolver.%s', $aggregateName); $services = []; diff --git a/src/DependencyInjection/PatchlevelEventSourcingExtension.php b/src/DependencyInjection/PatchlevelEventSourcingExtension.php index 5a46de9d..b099ed0f 100644 --- a/src/DependencyInjection/PatchlevelEventSourcingExtension.php +++ b/src/DependencyInjection/PatchlevelEventSourcingExtension.php @@ -19,6 +19,7 @@ use Doctrine\ORM\Tools\ToolEvents; use Patchlevel\EventSourcing\Attribute\Aggregate; use Patchlevel\EventSourcing\Attribute\Event; +use Patchlevel\EventSourcing\Attribute\Header; use Patchlevel\EventSourcing\Attribute\Processor; use Patchlevel\EventSourcing\Attribute\Projector; use Patchlevel\EventSourcing\Attribute\Subscriber; @@ -61,9 +62,7 @@ use Patchlevel\EventSourcing\Metadata\AggregateRoot\AggregateRootMetadataAwareMetadataFactory; use Patchlevel\EventSourcing\Metadata\AggregateRoot\AggregateRootMetadataFactory; use Patchlevel\EventSourcing\Metadata\AggregateRoot\AggregateRootRegistry; -use Patchlevel\EventSourcing\Metadata\AggregateRoot\AttributeAggregateRootRegistryFactory; use Patchlevel\EventSourcing\Metadata\Event\AttributeEventMetadataFactory; -use Patchlevel\EventSourcing\Metadata\Event\AttributeEventRegistryFactory; use Patchlevel\EventSourcing\Metadata\Event\EventMetadataFactory; use Patchlevel\EventSourcing\Metadata\Event\EventRegistry; use Patchlevel\EventSourcing\Metadata\Message\AttributeMessageHeaderRegistryFactory; @@ -153,6 +152,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; use Symfony\Component\DependencyInjection\Extension\Extension; +use Symfony\Component\DependencyInjection\Parameter; use Symfony\Component\DependencyInjection\Reference; use function class_exists; @@ -164,8 +164,6 @@ final class PatchlevelEventSourcingExtension extends Extension /** @param array $configs */ public function load(array $configs, ContainerBuilder $container): void { - $this->removeNonServices($container); - $configuration = new Configuration(); /** @var Config $config */ @@ -185,7 +183,7 @@ public function load(array $configs, ContainerBuilder $container): void $this->configureConnection($config, $container); $this->configureStore($config, $container); $this->configureSnapshots($config, $container); - $this->configureAggregates($config, $container); + $this->configureAggregates($container); $this->configureCommands($container); $this->configureProfiler($container); $this->configureClock($config, $container); @@ -202,11 +200,17 @@ public function load(array $configs, ContainerBuilder $container): void /** @param Config $config */ private function configureSerializer(array $config, ContainerBuilder $container): void { - $container->register(AttributeEventRegistryFactory::class); + $container->registerAttributeForAutoconfiguration( + Event::class, + static function (ChildDefinition $definition, Event $attribute): void { + $definition->addResourceTag('event_sourcing.event', ['name' => $attribute->name]); + }, + ); + + $container->setParameter('event_sourcing.events', []); $container->register(EventRegistry::class) - ->setFactory([new Reference(AttributeEventRegistryFactory::class), 'create']) - ->setArguments([$config['events']]); + ->setArguments([new Parameter('event_sourcing.events')]); $container->register(AttributeEventMetadataFactory::class); $container->setAlias(EventMetadataFactory::class, AttributeEventMetadataFactory::class); @@ -224,12 +228,15 @@ private function configureSerializer(array $config, ContainerBuilder $container) $container->setAlias(EventSerializer::class, DefaultEventSerializer::class); - $container->register(AttributeMessageHeaderRegistryFactory::class); - $container->setAlias(MessageHeaderRegistryFactory::class, AttributeMessageHeaderRegistryFactory::class); + $container->registerAttributeForAutoconfiguration( + Header::class, + static function (ChildDefinition $definition, Header $attribute): void { + $definition->addResourceTag('event_sourcing.header', ['name' => $attribute->name]); + }, + ); $container->register(MessageHeaderRegistry::class) - ->setFactory([new Reference(MessageHeaderRegistryFactory::class), 'create']) - ->setArguments([$config['headers']]); + ->setArguments([new Parameter('event_sourcing.headers')]); $container->register(DefaultHeadersSerializer::class) ->setArguments([ @@ -879,17 +886,22 @@ private function configureSnapshots(array $config, ContainerBuilder $container): $container->setAlias(SnapshotStore::class, DefaultSnapshotStore::class); } - /** @param Config $config */ - private function configureAggregates(array $config, ContainerBuilder $container): void + private function configureAggregates(ContainerBuilder $container): void { + $container->registerAttributeForAutoconfiguration( + Aggregate::class, + static function (ChildDefinition $definition, Aggregate $attribute): void { + $definition->addResourceTag('event_sourcing.aggregate', ['name' => $attribute->name]); + }, + ); + $container->register(AggregateRootMetadataAwareMetadataFactory::class); $container->setAlias(AggregateRootMetadataFactory::class, AggregateRootMetadataAwareMetadataFactory::class); - $container->register(AttributeAggregateRootRegistryFactory::class); + $container->setParameter('event_sourcing.aggregates', []); $container->register(AggregateRootRegistry::class) - ->setFactory([new Reference(AttributeAggregateRootRegistryFactory::class), 'create']) - ->setArguments([$config['aggregates']]); + ->setArguments([new Parameter('event_sourcing.aggregates')]); $container->register(DefaultRepositoryManager::class) ->setArguments([ @@ -1221,26 +1233,4 @@ private function configureValueResolver(ContainerBuilder $container): void $container->register(IdentifierValueResolver::class) ->addTag('controller.argument_value_resolver', ['priority' => 200]); } - - private function removeNonServices(ContainerBuilder $container): void - { - $container->registerAttributeForAutoconfiguration( - Aggregate::class, - static function (ChildDefinition $definition): void { - $definition->setAbstract(true)->addTag( - 'container.excluded', - ['source' => sprintf('with #[%s] attribute', Aggregate::class)], - ); - }, - ); - $container->registerAttributeForAutoconfiguration( - Event::class, - static function (ChildDefinition $definition): void { - $definition->setAbstract(true)->addTag( - 'container.excluded', - ['source' => sprintf('with #[%s] attribute', Event::class)], - ); - }, - ); - } } diff --git a/src/DependencyInjection/RepositoryCompilerPass.php b/src/DependencyInjection/RepositoryCompilerPass.php index 83960f4d..85f74571 100644 --- a/src/DependencyInjection/RepositoryCompilerPass.php +++ b/src/DependencyInjection/RepositoryCompilerPass.php @@ -4,12 +4,10 @@ namespace Patchlevel\EventSourcingBundle\DependencyInjection; -use Patchlevel\EventSourcing\Metadata\AggregateRoot\AggregateRootRegistry; use Patchlevel\EventSourcing\Repository\Repository; use Patchlevel\EventSourcing\Repository\RepositoryManager; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; @@ -18,20 +16,14 @@ final class RepositoryCompilerPass implements CompilerPassInterface { public function process(ContainerBuilder $container): void { - $aggregateRootRegistry = $container->get(AggregateRootRegistry::class, ContainerInterface::NULL_ON_INVALID_REFERENCE); - - if (!$aggregateRootRegistry instanceof AggregateRootRegistry) { - return; - } - - foreach ($aggregateRootRegistry->aggregateNames() as $aggregateName) { + foreach ($container->getParameter('event_sourcing.aggregates') as $aggregateName => $aggregateClass) { $aggregateRepositoryName = $aggregateName . 'Repository'; $aggregateRepositoryId = 'event_sourcing.' . $aggregateName . '.repository'; $definition = new Definition(Repository::class); $definition->setPublic(false); $definition->setFactory([new Reference(RepositoryManager::class), 'get']); - $definition->setArgument(0, $aggregateRootRegistry->aggregateClass($aggregateName)); + $definition->setArgument(0, $aggregateClass); $container->setDefinition($aggregateRepositoryId, $definition); $container->registerAliasForArgument($aggregateRepositoryId, Repository::class, $aggregateRepositoryName)->setPublic(false); diff --git a/src/DependencyInjection/ResourceCompilerPass.php b/src/DependencyInjection/ResourceCompilerPass.php new file mode 100644 index 00000000..a86a44e9 --- /dev/null +++ b/src/DependencyInjection/ResourceCompilerPass.php @@ -0,0 +1,32 @@ + 'event_sourcing.aggregates', + 'event_sourcing.event' => 'event_sourcing.events', + 'event_sourcing.header' => 'event_sourcing.headers', + ]; + + public function process(ContainerBuilder $container): void + { + foreach (self::RESSOURCES as $tag => $parameter) { + $map = []; + foreach ($container->findTaggedResourceIds($tag) as $id => $tags) { + foreach ($tags as $tag) { + $map[$tag['name']] = $id; + } + } + + $container->setParameter($parameter, $map); + } + } +} diff --git a/src/PatchlevelEventSourcingBundle.php b/src/PatchlevelEventSourcingBundle.php index 81c73768..943c9350 100644 --- a/src/PatchlevelEventSourcingBundle.php +++ b/src/PatchlevelEventSourcingBundle.php @@ -4,6 +4,7 @@ namespace Patchlevel\EventSourcingBundle; +use Patchlevel\EventSourcingBundle\DependencyInjection\ResourceCompilerPass; use Patchlevel\EventSourcingBundle\DependencyInjection\CommandHandlerCompilerPass; use Patchlevel\EventSourcingBundle\DependencyInjection\HandlerServiceLocatorCompilerPass; use Patchlevel\EventSourcingBundle\DependencyInjection\QueryHandlerCompilerPass; @@ -17,6 +18,7 @@ final class PatchlevelEventSourcingBundle extends Bundle { public function build(ContainerBuilder $container): void { + $container->addCompilerPass(new ResourceCompilerPass(), priority: 100); $container->addCompilerPass(new RepositoryCompilerPass()); $container->addCompilerPass(new SubscriberGuardCompilePass()); $container->addCompilerPass(new CommandHandlerCompilerPass(), priority: 100); diff --git a/tests/Unit/PatchlevelEventSourcingBundleTest.php b/tests/Unit/PatchlevelEventSourcingBundleTest.php index 92e5084e..bca5ee8a 100644 --- a/tests/Unit/PatchlevelEventSourcingBundleTest.php +++ b/tests/Unit/PatchlevelEventSourcingBundleTest.php @@ -11,8 +11,6 @@ use Doctrine\Migrations\Tools\Console\Command\MigrateCommand; use Doctrine\Migrations\Tools\Console\Command\StatusCommand; use InvalidArgumentException; -use Patchlevel\EventSourcing\Attribute\Aggregate; -use Patchlevel\EventSourcing\Attribute\Event; use Patchlevel\EventSourcing\Clock\FrozenClock; use Patchlevel\EventSourcing\Clock\SystemClock; use Patchlevel\EventSourcing\CommandBus\CommandBus; @@ -85,6 +83,7 @@ use Patchlevel\EventSourcing\Subscription\Store\SubscriptionStore; use Patchlevel\EventSourcing\Subscription\Subscriber\MetadataSubscriberAccessorRepository; use Patchlevel\EventSourcingBundle\Command\StoreMigrateCommand; +use Patchlevel\EventSourcingBundle\DependencyInjection\Configuration; use Patchlevel\EventSourcingBundle\DependencyInjection\PatchlevelEventSourcingExtension; use Patchlevel\EventSourcingBundle\EventBus\SymfonyEventBus; use Patchlevel\EventSourcingBundle\PatchlevelEventSourcingBundle; @@ -104,7 +103,6 @@ use Patchlevel\EventSourcingBundle\Tests\Fixtures\SnapshotableProfile; use Patchlevel\Hydrator\Cryptography\PayloadCryptographer; use Patchlevel\Hydrator\Cryptography\PersonalDataPayloadCryptographer; -use PHPUnit\Framework\Attributes\RequiresMethod; use PHPUnit\Framework\TestCase; use Psr\Cache\CacheItemPoolInterface; use Psr\Clock\ClockInterface; @@ -113,13 +111,13 @@ use Psr\SimpleCache\CacheInterface; use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ChildDefinition; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter; use Symfony\Component\Messenger\MessageBusInterface; +/** @psalm-import-type Config from Configuration */ final class PatchlevelEventSourcingBundleTest extends TestCase { public function testEmptyConfig(): void @@ -137,7 +135,6 @@ public function testEmptyConfig(): void self::assertFalse($container->has(Store::class)); } - #[RequiresMethod(ContainerBuilder::class, 'getAttributeAutoconfigurators')] public function testMinimalConfig(): void { $container = new ContainerBuilder(); @@ -162,59 +159,6 @@ public function testMinimalConfig(): void self::assertInstanceOf(AttributeEventTagExtractor::class, $container->get(EventTagExtractor::class)); self::assertFalse($container->has(EventBus::class)); - - $attributes = $container->getAttributeAutoconfigurators(); - foreach ([Aggregate::class, Event::class] as $class) { - $definition = new ChildDefinition(''); - - foreach ($attributes[$class] as $attributeCallable) { - $attributeCallable($definition); - } - - $this->assertSame( - [['source' => sprintf('with #[%s] attribute', $class)]], - $definition->getTag('container.excluded') - ); - $this->assertTrue($definition->isAbstract()); - } - } - - #[RequiresMethod(ContainerBuilder::class, 'getAutoconfiguredAttributes')] - public function testMinimalConfigPreSymf8(): void - { - $container = new ContainerBuilder(); - $this->compileContainer( - $container, - [ - 'patchlevel_event_sourcing' => [ - 'connection' => [ - 'url' => 'sqlite3:///:memory:', - ], - ], - ] - ); - - self::assertInstanceOf(Connection::class, $container->get('event_sourcing.dbal_connection')); - self::assertInstanceOf(StreamDoctrineDbalStore::class, $container->get(Store::class)); - self::assertInstanceOf(AggregateRootRegistry::class, $container->get(AggregateRootRegistry::class)); - self::assertInstanceOf(DefaultRepositoryManager::class, $container->get(RepositoryManager::class)); - self::assertInstanceOf(EventRegistry::class, $container->get(EventRegistry::class)); - self::assertInstanceOf(SystemClock::class, $container->get('event_sourcing.clock')); - self::assertInstanceOf(DefaultSubscriptionEngine::class, $container->get(SubscriptionEngine::class)); - - self::assertFalse($container->has(EventBus::class)); - - $attributes = $container->getAutoconfiguredAttributes(); - foreach ([Aggregate::class, Event::class] as $class) { - $definition = new ChildDefinition(''); - $attributes[$class]($definition); - - $this->assertSame( - [['source' => sprintf('with #[%s] attribute', $class)]], - $definition->getTag('container.excluded') - ); - $this->assertTrue($definition->isAbstract()); - } } public function testConnectionService(): void @@ -560,6 +504,9 @@ public function testCommandHandler(): void { $container = new ContainerBuilder(); + $container->setDefinition(Profile::class, new Definition(Profile::class)) + ->setAutoconfigured(true); + $this->compileContainer( $container, [ @@ -567,7 +514,6 @@ public function testCommandHandler(): void 'connection' => [ 'service' => 'doctrine.dbal.eventstore_connection', ], - 'aggregates' => [__DIR__ . '/../Fixtures'], 'aggregate_handlers' => [ 'bus' => 'command.bus', ], @@ -604,7 +550,6 @@ public function testCommandBusAndLegacyConfigurationNotAllowed(): void 'connection' => [ 'service' => 'doctrine.dbal.eventstore_connection', ], - 'aggregates' => [__DIR__ . '/../Fixtures'], 'aggregate_handlers' => [ 'bus' => 'command.bus', ], @@ -620,6 +565,9 @@ public function testCommandBus(): void { $container = new ContainerBuilder(); + $container->setDefinition(Profile::class, new Definition(Profile::class)) + ->setAutoconfigured(true); + $this->compileContainer( $container, [ @@ -627,7 +575,6 @@ public function testCommandBus(): void 'connection' => [ 'service' => 'doctrine.dbal.eventstore_connection', ], - 'aggregates' => [__DIR__ . '/../Fixtures'], 'command_bus' => [ 'service' => 'command.bus', ], @@ -665,7 +612,6 @@ public function testQueryBus(): void 'connection' => [ 'service' => 'doctrine.dbal.eventstore_connection', ], - 'aggregates' => [__DIR__ . '/../Fixtures'], 'query_bus' => [ 'service' => 'query.bus', ], @@ -898,6 +844,9 @@ public function testEventRegistry(): void { $container = new ContainerBuilder(); + $container->setDefinition(ProfileCreated::class, new Definition(ProfileCreated::class)) + ->setAutoconfigured(true); + $this->compileContainer( $container, [ @@ -905,7 +854,6 @@ public function testEventRegistry(): void 'connection' => [ 'service' => 'doctrine.dbal.eventstore_connection', ], - 'events' => [__DIR__ . '/../Fixtures'], ], ] ); @@ -920,6 +868,9 @@ public function testAggregateRegistry(): void { $container = new ContainerBuilder(); + $container->setDefinition(Profile::class, new Definition(Profile::class)) + ->setAutoconfigured(true); + $this->compileContainer( $container, [ @@ -927,7 +878,6 @@ public function testAggregateRegistry(): void 'connection' => [ 'service' => 'doctrine.dbal.eventstore_connection', ], - 'aggregates' => [__DIR__ . '/../Fixtures'], ], ] ); @@ -942,6 +892,9 @@ public function testMessageHeaderRegistry(): void { $container = new ContainerBuilder(); + $container->setDefinition(CustomHeader::class, new Definition(CustomHeader::class)) + ->setAutoconfigured(true); + $this->compileContainer( $container, [ @@ -949,7 +902,6 @@ public function testMessageHeaderRegistry(): void 'connection' => [ 'service' => 'doctrine.dbal.eventstore_connection', ], - 'headers' => [__DIR__ . '/../Fixtures'], ], ] ); @@ -965,6 +917,9 @@ public function testRepositoryManager(): void { $container = new ContainerBuilder(); + $container->setDefinition(Profile::class, new Definition(Profile::class)) + ->setAutoconfigured(true); + $this->compileContainer( $container, [ @@ -972,7 +927,6 @@ public function testRepositoryManager(): void 'connection' => [ 'service' => 'doctrine.dbal.eventstore_connection', ], - 'aggregates' => [__DIR__ . '/../Fixtures'], ], ] ); @@ -1476,6 +1430,9 @@ public function testFullBuild(): void $container = new ContainerBuilder(); $container->set('clock', $psrClock); + $container->setDefinition(Profile::class, new Definition(Profile::class)) + ->setAutoconfigured(true); + $this->compileContainer( $container, [ @@ -1494,7 +1451,6 @@ public function testFullBuild(): void 'event_bus' => [ 'type' => 'default', ], - 'aggregates' => [__DIR__ . '/../Fixtures'], 'migration' => [ 'namespace' => 'Foo', 'path' => 'src', @@ -1532,6 +1488,9 @@ public function testNamedRepository(): void { $container = new ContainerBuilder(); + $container->setDefinition(Profile::class, new Definition(Profile::class)) + ->setAutoconfigured(true); + $this->compileContainer( $container, [ @@ -1539,7 +1498,6 @@ public function testNamedRepository(): void 'connection' => [ 'service' => 'doctrine.dbal.eventstore_connection', ], - 'aggregates' => [__DIR__ . '/../Fixtures'], ], ] ); @@ -1553,6 +1511,9 @@ public function testNamedRepository(): void self::assertSame($profileRepository, $namedArgumentProfileRepository); } + /** + * @param Config $config + */ private function compileContainer(ContainerBuilder $container, array $config): void { $bundle = new PatchlevelEventSourcingBundle();