From c40b1ccb2c436a62e1c5542b2b95351c01e5a313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Poirier=20Th=C3=A9or=C3=AAt?= Date: Sat, 19 Oct 2024 16:50:36 -0400 Subject: [PATCH 1/2] [DoctrineExtra] Customize generate graph schema --- app/src/GraphGenerator/ContextPreparator.php | 25 + composer.json | 3 +- doc/{databse.svg => database.svg} | 0 doc/user.svg | 482 ++++++++++++++++++ .../Command/GenerateGraphSchemaCommand.php | 56 +- .../ORM/GraphSchema/Context.php | 93 ++++ .../GraphSchema/Event/PrepareContextEvent.php | 20 + .../ORM/GraphSchema/GraphGenerator.php | 105 ++++ .../DoctrineExtraIntegrationTest.php | 7 + tests/AppKernelTest.php | 12 +- .../GenerateGraphSchemaCommandTest.php | 9 +- .../event_dispatcher.xml | 3 + 12 files changed, 766 insertions(+), 49 deletions(-) create mode 100644 app/src/GraphGenerator/ContextPreparator.php rename doc/{databse.svg => database.svg} (100%) create mode 100644 doc/user.svg create mode 100644 packages/doctrine-extra/ORM/GraphSchema/Context.php create mode 100644 packages/doctrine-extra/ORM/GraphSchema/Event/PrepareContextEvent.php create mode 100644 packages/doctrine-extra/ORM/GraphSchema/GraphGenerator.php diff --git a/app/src/GraphGenerator/ContextPreparator.php b/app/src/GraphGenerator/ContextPreparator.php new file mode 100644 index 00000000..67e88e04 --- /dev/null +++ b/app/src/GraphGenerator/ContextPreparator.php @@ -0,0 +1,25 @@ +getContext(); + + if ('user' !== $context->getName()) { + return; + } + + $event->getContext() + ->setIgnoreAll(true) + ->forEntityCluster(User::class) + ; + } +} diff --git a/composer.json b/composer.json index b099e445..68a37087 100644 --- a/composer.json +++ b/composer.json @@ -296,7 +296,8 @@ ], "generate:artifact": [ "Composer\\Config::disableProcessTimeout", - "bin/console draw:doctrine:generate-graph-schema | dot -Tsvg -o doc/databse.svg" + "bin/console draw:doctrine:generate-graph-schema | dot -Tsvg -o doc/database.svg", + "bin/console draw:doctrine:generate-graph-schema user | dot -Tsvg -o doc/user.svg" ] }, "minimum-stability": "dev", diff --git a/doc/databse.svg b/doc/database.svg similarity index 100% rename from doc/databse.svg rename to doc/database.svg diff --git a/doc/user.svg b/doc/user.svg new file mode 100644 index 00000000..ab83d643 --- /dev/null +++ b/doc/user.svg @@ -0,0 +1,482 @@ + + + + + + +draw + + + +acme__user_address:se->draw_acme__user:se + + + + + +draw_acme__user:se->draw_acme__base_object:se + + + + + +draw_acme__user:se->draw_acme__base_object:se + + + + + +draw_acme__user:se->draw_acme__base_object:se + + + + + +draw_acme__user:se->draw_acme__base_object:se + + + + + +draw_acme__user:se->draw_acme__base_object:se + + + + + +draw_acme__user:se->draw_acme__base_object:se + + + + + +draw_acme__user:se->draw_acme__base_object:se + + + + + +acme__user_tag:se->draw_acme__user:se + + + + + +acme__user_tag:se->draw_acme__tag:se + + + + + +user_tag:se->draw_acme__user:se + + + + + +user_tag:se->draw_acme__tag:se + + + + + +draw_user__user_lock:se->draw_acme__user:se + + + + + +user_migration:se->draw_acme__user:se + + + + + +user_migration:se->draw_entity_migrator__migration:se + + + + + +acme__user_address + + +acme__user_address + +id + +integer + + + +user_id + +guid + + +position + +integer + + +address_street + +string + + +address_postal_code + +string + + +address_city + +string + + +address_country + +string + + + + + +draw_acme__user + + +draw_acme__user + +id + +guid + + + +child_object1_id + +integer + + +child_object2_id + +integer + + +on_delete_restrict_id + +integer + + +on_delete_cascade_id + +integer + + +on_delete_set_null_id + +integer + + +on_delete_cascade_config_overridden_id + +integer + + +on_delete_cascade_attribute_overridden_id + +integer + + +roles + +json + + +level + +string + + +date_of_birth + +datetime_immutable + + +comment + +text + + +preferred_locale + +string + + +email_auth_code + +string + + +email_auth_code_generated_at + +datetime_immutable + + +two_factor_authentication_enabled_providers + +json + + +force_enabling_two_factor_authentication + +boolean + + +totp_secret + +string + + +manual_lock + +boolean + + +need_change_password + +boolean + + +email + +string + + +password + +string + + +last_password_updated_at + +datetime_immutable + + +address_street + +string + + +address_postal_code + +string + + +address_city + +string + + +address_country + +string + + + + + +acme__user_tag + + +acme__user_tag + +id + +integer + + + +user_id + +guid + + +tag_id + +bigint + + + + + +draw_acme__tag + + +draw_acme__tag + +id + +bigint + + + +name + +string + + +active + +boolean + + + + + +draw_acme__base_object + + +draw_acme__base_object + +id + +integer + + + +discriminator_type + +string + + +attribute_1 + +string + + +date_time_immutable + +datetime_immutable + + +attribute_2 + +string + + + + + +user_tag + + +user_tag + +user_id + +guid + + + +tag_id + +bigint + + + + + + +draw_user__user_lock + + +draw_user__user_lock + +id + +guid + + + +user_id + +guid + + +reason + +string + + +created_at + +datetime_immutable + + +lock_on + +datetime_immutable + + +expires_at + +datetime_immutable + + +unlock_until + +datetime_immutable + + + + + +user_migration + + +user_migration + +id + +bigint + + + +entity_id + +guid + + +migration_id + +integer + + +state + +string + + +transition_logs + +json + + +created_at + +datetime_immutable + + + + + +draw_entity_migrator__migration + +draw_entity_migrator__migration + + + diff --git a/packages/doctrine-extra/ORM/Command/GenerateGraphSchemaCommand.php b/packages/doctrine-extra/ORM/Command/GenerateGraphSchemaCommand.php index 9c4ac595..6a89cd41 100644 --- a/packages/doctrine-extra/ORM/Command/GenerateGraphSchemaCommand.php +++ b/packages/doctrine-extra/ORM/Command/GenerateGraphSchemaCommand.php @@ -2,11 +2,11 @@ namespace Draw\DoctrineExtra\ORM\Command; -use Doctrine\DBAL\Schema\Visitor\Graphviz; use Doctrine\ORM\EntityManagerInterface; -use Doctrine\ORM\Mapping\ClassMetadata; -use Doctrine\ORM\Tools\SchemaTool; +use Draw\DoctrineExtra\ORM\GraphSchema\Context; +use Draw\DoctrineExtra\ORM\GraphSchema\GraphGenerator; use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Style\SymfonyStyle; @@ -14,8 +14,9 @@ class GenerateGraphSchemaCommand extends Command { public function __construct( - private EntityManagerInterface $entityManager) - { + private EntityManagerInterface $entityManager, + private GraphGenerator $graphGenerator, + ) { parent::__construct(); } @@ -23,6 +24,7 @@ protected function configure(): void { $this ->setName('draw:doctrine:generate-graph-schema') + ->addArgument('context-name', InputArgument::OPTIONAL, 'The context name to use.', 'default') ->setDescription('Get dot from database schema.') ->setHelp(\sprintf('Usage: bin/console %s | dot -Tsvg -o /tmp/databse.svg', $this->getName())) ; @@ -31,45 +33,13 @@ protected function configure(): void protected function execute(InputInterface $input, OutputInterface $output): int { $io = new SymfonyStyle($input, $output); - $io->writeln($this->getDot()); + $io->writeln( + $this->graphGenerator + ->generate( + new Context($this->entityManager, $input->getArgument('context-name')) + ) + ); return Command::SUCCESS; } - - /** - * Get dot from database schema. - */ - protected function getDot(): string - { - /** @var array> $metadata */ - $metadata = $this->entityManager->getMetadataFactory()->getAllMetadata(); - - usort($metadata, static fn (ClassMetadata $a, ClassMetadata $b): int => $a->getTableName() <=> $b->getTableName()); - - $tool = new SchemaTool($this->entityManager); - $schema = $tool->getSchemaFromMetadata($metadata); - - $visitor = new Graphviz(); - - $visitor->acceptSchema($schema); - - foreach ($schema->getTables() as $table) { - $visitor->acceptTable($table); - foreach ($table->getColumns() as $column) { - $visitor->acceptColumn($table, $column); - } - foreach ($table->getIndexes() as $index) { - $visitor->acceptIndex($table, $index); - } - foreach ($table->getForeignKeys() as $foreignKey) { - $visitor->acceptForeignKey($table, $foreignKey); - } - } - - foreach ($schema->getSequences() as $sequence) { - $visitor->acceptSequence($sequence); - } - - return $visitor->getOutput(); - } } diff --git a/packages/doctrine-extra/ORM/GraphSchema/Context.php b/packages/doctrine-extra/ORM/GraphSchema/Context.php new file mode 100644 index 00000000..65671e91 --- /dev/null +++ b/packages/doctrine-extra/ORM/GraphSchema/Context.php @@ -0,0 +1,93 @@ +entityManager; + } + + public function getName(): string + { + return $this->name; + } + + public function setIgnoreAll(bool $ignoreAll): self + { + $this->ignoreAll = $ignoreAll; + + return $this; + } + + public function getIgnoreAll(): bool + { + return $this->ignoreAll; + } + + public function forEntity(string $entity): self + { + if (!\in_array($entity, $this->ignoreEntities, true)) { + $this->forEntities[] = $entity; + } + + return $this; + } + + public function getForEntities(): array + { + return $this->forEntities; + } + + public function forEntityCluster(string $entity, bool $includeReverseRelation = true): self + { + $this->forEntities[] = $entity; + + foreach ($this->entityManager->getClassMetadata($entity)->getAssociationMappings() as $associationMapping) { + $this->forEntity($associationMapping['targetEntity']); + } + + if ($includeReverseRelation) { + foreach ($this->entityManager->getMetadataFactory()->getAllMetadata() as $metadata) { + foreach ($metadata->getAssociationMappings() as $associationMapping) { + if ($associationMapping['targetEntity'] !== $entity) { + continue; + } + + $this->forEntity($associationMapping['sourceEntity']); + } + } + } + + return $this; + } + + public function ignoreEntity(string $entity): self + { + $this->ignoreEntities[] = $entity; + + return $this; + } + + public function getIgnoreEntities(): array + { + return $this->ignoreEntities; + } +} diff --git a/packages/doctrine-extra/ORM/GraphSchema/Event/PrepareContextEvent.php b/packages/doctrine-extra/ORM/GraphSchema/Event/PrepareContextEvent.php new file mode 100644 index 00000000..0a5c7eb3 --- /dev/null +++ b/packages/doctrine-extra/ORM/GraphSchema/Event/PrepareContextEvent.php @@ -0,0 +1,20 @@ +context; + } +} diff --git a/packages/doctrine-extra/ORM/GraphSchema/GraphGenerator.php b/packages/doctrine-extra/ORM/GraphSchema/GraphGenerator.php new file mode 100644 index 00000000..f871e98e --- /dev/null +++ b/packages/doctrine-extra/ORM/GraphSchema/GraphGenerator.php @@ -0,0 +1,105 @@ +eventDispatcher->dispatch(new Event\PrepareContextEvent($context)); + + $entityManager = $context->getEntityManager(); + + /** @var array> $metadata */ + $metadata = $entityManager->getMetadataFactory()->getAllMetadata(); + + usort($metadata, static fn (ClassMetadata $a, ClassMetadata $b): int => $a->getTableName() <=> $b->getTableName()); + + $tool = new SchemaTool($entityManager); + $schema = $tool->getSchemaFromMetadata($metadata); + + $visitor = new Graphviz(); + + $visitor->acceptSchema($schema); + + $ignoreTables = $this->buildIgnoreTables($context); + + foreach ($schema->getTables() as $table) { + if (\in_array($table->getName(), $ignoreTables, true)) { + continue; + } + + $visitor->acceptTable($table); + foreach ($table->getColumns() as $column) { + $visitor->acceptColumn($table, $column); + } + foreach ($table->getIndexes() as $index) { + $visitor->acceptIndex($table, $index); + } + foreach ($table->getForeignKeys() as $foreignKey) { + $visitor->acceptForeignKey($table, $foreignKey); + } + } + + foreach ($schema->getSequences() as $sequence) { + $visitor->acceptSequence($sequence); + } + + return $visitor->getOutput(); + } + + private function buildIgnoreTables(Context $context): array + { + $entityManager = $context->getEntityManager(); + $ignoreTables = []; + + if ($context->getIgnoreAll()) { + foreach ($entityManager->getMetadataFactory()->getAllMetadata() as $metadata) { + $ignoreTables[] = $metadata->getTableName(); + foreach ($metadata->getAssociationMappings() as $associationMapping) { + if (!isset($associationMapping['joinTable'])) { + continue; + } + + $ignoreTables[] = $associationMapping['joinTable']['name']; + } + } + } + + $forEntities = $context->getForEntities(); + foreach ($forEntities as $entity) { + $metadata = $entityManager->getClassMetadata($entity); + $ignoreTables = array_diff( + $ignoreTables, + [$metadata->getTableName()], + ); + + foreach ($metadata->getAssociationMappings() as $associationMapping) { + if (!isset($associationMapping['joinTable'])) { + continue; + } + + if (!\in_array($associationMapping['targetEntity'], $forEntities, true)) { + continue; + } + + $ignoreTables = array_diff( + $ignoreTables, + [$associationMapping['joinTable']['name']], + ); + } + } + + return array_values($ignoreTables); + } +} diff --git a/packages/doctrine-extra/Tests/DependencyInjection/DoctrineExtraIntegrationTest.php b/packages/doctrine-extra/Tests/DependencyInjection/DoctrineExtraIntegrationTest.php index 10b271ff..222c7eea 100644 --- a/packages/doctrine-extra/Tests/DependencyInjection/DoctrineExtraIntegrationTest.php +++ b/packages/doctrine-extra/Tests/DependencyInjection/DoctrineExtraIntegrationTest.php @@ -12,6 +12,7 @@ use Draw\DoctrineExtra\ORM\Command\MysqlDumpCommand; use Draw\DoctrineExtra\ORM\Command\MysqlImportFileCommand; use Draw\DoctrineExtra\ORM\EntityHandler; +use Draw\DoctrineExtra\ORM\GraphSchema\GraphGenerator; use PHPUnit\Framework\Attributes\CoversClass; use Symfony\Component\DependencyInjection\ContainerBuilder; @@ -83,6 +84,12 @@ public static function provideTestLoad(): iterable GenerateGraphSchemaCommand::class, ] ), + new ServiceConfiguration( + 'draw.doctrine_extra.orm.graph_schema.graph_generator', + [ + GraphGenerator::class, + ] + ), ], [ 'doctrine' => [ diff --git a/tests/AppKernelTest.php b/tests/AppKernelTest.php index f397366d..856c6fec 100644 --- a/tests/AppKernelTest.php +++ b/tests/AppKernelTest.php @@ -12,10 +12,16 @@ class AppKernelTest extends KernelTestCase { use EventDispatcherTesterTrait; + private bool $resetFile = false; + public function testEventDispatcherConfiguration(): void { - $this->assertEventDispatcherConfiguration( - __DIR__.'/fixtures/AppKernelTest/testEventDispatcherConfiguration/event_dispatcher.xml' - ); + $path = __DIR__.'/fixtures/AppKernelTest/testEventDispatcherConfiguration/event_dispatcher.xml'; + + if ($this->resetFile && file_exists($path)) { + unlink($path); + } + + $this->assertEventDispatcherConfiguration($path); } } diff --git a/tests/DoctrineExtra/ORM/Command/GenerateGraphSchemaCommandTest.php b/tests/DoctrineExtra/ORM/Command/GenerateGraphSchemaCommandTest.php index 20b9befe..7437adee 100644 --- a/tests/DoctrineExtra/ORM/Command/GenerateGraphSchemaCommandTest.php +++ b/tests/DoctrineExtra/ORM/Command/GenerateGraphSchemaCommandTest.php @@ -9,6 +9,7 @@ use Draw\DoctrineExtra\ORM\Command\GenerateGraphSchemaCommand; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputArgument; /** * @internal @@ -27,7 +28,11 @@ public function getCommandName(): string public static function provideTestArgument(): iterable { - return []; + yield [ + 'context-name', + InputArgument::OPTIONAL, + 'default', + ]; } public static function provideTestOption(): iterable @@ -42,7 +47,7 @@ public static function provideTestOption(): iterable */ public function testExecute(): void { - $this->execute([]) + $this->execute(['context-name' => 'user']) ->test( CommandDataTester::create() ->setExpectedDisplay(null) diff --git a/tests/fixtures/AppKernelTest/testEventDispatcherConfiguration/event_dispatcher.xml b/tests/fixtures/AppKernelTest/testEventDispatcherConfiguration/event_dispatcher.xml index 3f94383e..bb8dc50e 100644 --- a/tests/fixtures/AppKernelTest/testEventDispatcherConfiguration/event_dispatcher.xml +++ b/tests/fixtures/AppKernelTest/testEventDispatcherConfiguration/event_dispatcher.xml @@ -89,6 +89,9 @@ + + + From eb57737e8a277d9bbf844103f9dc5a08be297722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Poirier=20Th=C3=A9or=C3=AAt?= Date: Sat, 19 Oct 2024 18:33:32 -0400 Subject: [PATCH 2/2] [Internale] update all packages --- composer.lock | 262 +++++++++--------- .../Integration/Test/IntegrationTestCase.php | 8 +- .../ConfigurationTestCase.php | 8 +- vendor-bin/monorepo/composer.lock | 6 +- 4 files changed, 145 insertions(+), 139 deletions(-) diff --git a/composer.lock b/composer.lock index 632366fb..72521489 100644 --- a/composer.lock +++ b/composer.lock @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.322.7", + "version": "3.324.6", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "ea3563a7f10fa562796f712fa306c1dca41a45d7" + "reference": "7412a44da62fd607efbaac4084e69d6621f29de1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ea3563a7f10fa562796f712fa306c1dca41a45d7", - "reference": "ea3563a7f10fa562796f712fa306c1dca41a45d7", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/7412a44da62fd607efbaac4084e69d6621f29de1", + "reference": "7412a44da62fd607efbaac4084e69d6621f29de1", "shasum": "" }, "require": { @@ -154,9 +154,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.322.7" + "source": "https://github.com/aws/aws-sdk-php/tree/3.324.6" }, - "time": "2024-09-27T18:34:08+00:00" + "time": "2024-10-18T18:06:33+00:00" }, { "name": "brick/math", @@ -742,16 +742,16 @@ }, { "name": "doctrine/common", - "version": "3.4.4", + "version": "3.4.5", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a" + "reference": "6c8fef961f67b8bc802ce3e32e3ebd1022907286" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a", - "reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a", + "url": "https://api.github.com/repos/doctrine/common/zipball/6c8fef961f67b8bc802ce3e32e3ebd1022907286", + "reference": "6c8fef961f67b8bc802ce3e32e3ebd1022907286", "shasum": "" }, "require": { @@ -813,7 +813,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.4.4" + "source": "https://github.com/doctrine/common/tree/3.4.5" }, "funding": [ { @@ -829,7 +829,7 @@ "type": "tidelift" } ], - "time": "2024-04-16T13:35:33+00:00" + "time": "2024-10-08T15:53:43+00:00" }, { "name": "doctrine/data-fixtures", @@ -917,16 +917,16 @@ }, { "name": "doctrine/dbal", - "version": "3.9.1", + "version": "3.9.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "d7dc08f98cba352b2bab5d32c5e58f7e745c11a7" + "reference": "61446f07fcb522414d6cfd8b1c3e5f9e18c579ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/d7dc08f98cba352b2bab5d32c5e58f7e745c11a7", - "reference": "d7dc08f98cba352b2bab5d32c5e58f7e745c11a7", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/61446f07fcb522414d6cfd8b1c3e5f9e18c579ba", + "reference": "61446f07fcb522414d6cfd8b1c3e5f9e18c579ba", "shasum": "" }, "require": { @@ -942,7 +942,7 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.12.0", + "phpstan/phpstan": "1.12.6", "phpstan/phpstan-strict-rules": "^1.6", "phpunit/phpunit": "9.6.20", "psalm/plugin-phpunit": "0.18.4", @@ -1010,7 +1010,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.9.1" + "source": "https://github.com/doctrine/dbal/tree/3.9.3" }, "funding": [ { @@ -1026,7 +1026,7 @@ "type": "tidelift" } ], - "time": "2024-09-01T13:49:23+00:00" + "time": "2024-10-10T17:56:43+00:00" }, { "name": "doctrine/deprecations", @@ -1726,16 +1726,16 @@ }, { "name": "doctrine/orm", - "version": "2.19.7", + "version": "2.20.0", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "168ac31084226f94d42e7461a40ff5607a56bd35" + "reference": "8ed6c2234aba019f9737a6bcc9516438e62da27c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/168ac31084226f94d42e7461a40ff5607a56bd35", - "reference": "168ac31084226f94d42e7461a40ff5607a56bd35", + "url": "https://api.github.com/repos/doctrine/orm/zipball/8ed6c2234aba019f9737a6bcc9516438e62da27c", + "reference": "8ed6c2234aba019f9737a6bcc9516438e62da27c", "shasum": "" }, "require": { @@ -1764,7 +1764,9 @@ "doctrine/annotations": "^1.13 || ^2", "doctrine/coding-standard": "^9.0.2 || ^12.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "~1.4.10 || 1.11.1", + "phpstan/extension-installer": "~1.1.0 || ^1.4", + "phpstan/phpstan": "~1.4.10 || 1.12.6", + "phpstan/phpstan-deprecation-rules": "^1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", "psr/log": "^1 || ^2 || ^3", "squizlabs/php_codesniffer": "3.7.2", @@ -1821,9 +1823,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.19.7" + "source": "https://github.com/doctrine/orm/tree/2.20.0" }, - "time": "2024-08-23T06:54:57+00:00" + "time": "2024-10-11T11:47:24+00:00" }, { "name": "doctrine/persistence", @@ -1924,16 +1926,16 @@ }, { "name": "doctrine/sql-formatter", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "7f83911cc5eba870de7ebb11283972483f7e2891" + "reference": "16ca9e39877369d664f06dacde468548298bdc40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/7f83911cc5eba870de7ebb11283972483f7e2891", - "reference": "7f83911cc5eba870de7ebb11283972483f7e2891", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/16ca9e39877369d664f06dacde468548298bdc40", + "reference": "16ca9e39877369d664f06dacde468548298bdc40", "shasum": "" }, "require": { @@ -1941,6 +1943,7 @@ }, "require-dev": { "doctrine/coding-standard": "^12", + "ergebnis/phpunit-slow-test-detector": "^2.14", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^10.5", "vimeo/psalm": "^5.24" @@ -1973,22 +1976,22 @@ ], "support": { "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.4.1" + "source": "https://github.com/doctrine/sql-formatter/tree/1.5.0" }, - "time": "2024-08-05T20:32:22+00:00" + "time": "2024-09-11T07:29:40+00:00" }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.3", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" + "reference": "8c784d071debd117328803d86b2097615b457500" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500", + "reference": "8c784d071debd117328803d86b2097615b457500", "shasum": "" }, "require": { @@ -2001,10 +2004,14 @@ "require-dev": { "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^1.0", - "phpstan/phpstan-webmozart-assert": "^1.0", "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, "autoload": { "psr-4": { "Cron\\": "src/Cron/" @@ -2028,7 +2035,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" }, "funding": [ { @@ -2036,7 +2043,7 @@ "type": "github" } ], - "time": "2023-08-10T19:36:49+00:00" + "time": "2024-10-09T13:47:03+00:00" }, { "name": "egulias/email-validator", @@ -2526,16 +2533,16 @@ }, { "name": "guzzlehttp/promises", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", "shasum": "" }, "require": { @@ -2589,7 +2596,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.3" + "source": "https://github.com/guzzle/promises/tree/2.0.4" }, "funding": [ { @@ -2605,7 +2612,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T10:29:17+00:00" + "time": "2024-10-17T10:06:22+00:00" }, { "name": "guzzlehttp/psr7", @@ -3789,16 +3796,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.3.0", + "version": "v5.3.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "3abf7425cd284141dc5d8d14a9ee444de3345d1a" + "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3abf7425cd284141dc5d8d14a9ee444de3345d1a", - "reference": "3abf7425cd284141dc5d8d14a9ee444de3345d1a", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b", + "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b", "shasum": "" }, "require": { @@ -3841,9 +3848,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1" }, - "time": "2024-09-29T13:56:26+00:00" + "time": "2024-10-08T18:51:32+00:00" }, { "name": "phar-io/manifest", @@ -4140,16 +4147,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.32.0", + "version": "1.33.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4" + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6ca22b154efdd9e3c68c56f5d94670920a1c19a4", - "reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", "shasum": "" }, "require": { @@ -4181,41 +4188,41 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.32.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" }, - "time": "2024-09-26T07:23:32+00:00" + "time": "2024-10-13T11:25:22+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "11.0.6", + "version": "11.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ebdffc9e09585dafa71b9bffcdb0a229d4704c45" + "reference": "f7f08030e8811582cc459871d28d6f5a1a4d35ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ebdffc9e09585dafa71b9bffcdb0a229d4704c45", - "reference": "ebdffc9e09585dafa71b9bffcdb0a229d4704c45", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f7f08030e8811582cc459871d28d6f5a1a4d35ca", + "reference": "f7f08030e8811582cc459871d28d6f5a1a4d35ca", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.1.0", + "nikic/php-parser": "^5.3.1", "php": ">=8.2", - "phpunit/php-file-iterator": "^5.0.1", + "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-text-template": "^4.0.1", "sebastian/code-unit-reverse-lookup": "^4.0.1", "sebastian/complexity": "^4.0.1", "sebastian/environment": "^7.2.0", "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.1", + "sebastian/version": "^5.0.2", "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^11.4.1" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -4253,7 +4260,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.6" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.7" }, "funding": [ { @@ -4261,7 +4268,7 @@ "type": "github" } ], - "time": "2024-08-22T04:37:56+00:00" + "time": "2024-10-09T06:21:38+00:00" }, { "name": "phpunit/php-file-iterator", @@ -4510,16 +4517,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.3.6", + "version": "11.4.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "d62c45a19c665bb872c2a47023a0baf41a98bb2b" + "reference": "1863643c3f04ad03dcb9c6996c294784cdda4805" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d62c45a19c665bb872c2a47023a0baf41a98bb2b", - "reference": "d62c45a19c665bb872c2a47023a0baf41a98bb2b", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1863643c3f04ad03dcb9c6996c294784cdda4805", + "reference": "1863643c3f04ad03dcb9c6996c294784cdda4805", "shasum": "" }, "require": { @@ -4533,21 +4540,21 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.6", + "phpunit/php-code-coverage": "^11.0.7", "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-invoker": "^5.0.1", "phpunit/php-text-template": "^4.0.1", "phpunit/php-timer": "^7.0.1", "sebastian/cli-parser": "^3.0.2", "sebastian/code-unit": "^3.0.1", - "sebastian/comparator": "^6.1.0", + "sebastian/comparator": "^6.1.1", "sebastian/diff": "^6.0.2", "sebastian/environment": "^7.2.0", "sebastian/exporter": "^6.1.3", "sebastian/global-state": "^7.0.2", "sebastian/object-enumerator": "^6.0.1", "sebastian/type": "^5.1.0", - "sebastian/version": "^5.0.1" + "sebastian/version": "^5.0.2" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -4558,7 +4565,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "11.3-dev" + "dev-main": "11.4-dev" } }, "autoload": { @@ -4590,7 +4597,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.3.6" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.4.2" }, "funding": [ { @@ -4606,7 +4613,7 @@ "type": "tidelift" } ], - "time": "2024-09-19T10:54:28+00:00" + "time": "2024-10-19T13:05:19+00:00" }, { "name": "psr/cache", @@ -5945,16 +5952,16 @@ }, { "name": "sebastian/comparator", - "version": "6.1.0", + "version": "6.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa37b9e2ca618cb051d71b60120952ee8ca8b03d" + "reference": "5ef523a49ae7a302b87b2102b72b1eda8918d686" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa37b9e2ca618cb051d71b60120952ee8ca8b03d", - "reference": "fa37b9e2ca618cb051d71b60120952ee8ca8b03d", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5ef523a49ae7a302b87b2102b72b1eda8918d686", + "reference": "5ef523a49ae7a302b87b2102b72b1eda8918d686", "shasum": "" }, "require": { @@ -6010,7 +6017,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.1.0" + "source": "https://github.com/sebastianbergmann/comparator/tree/6.1.1" }, "funding": [ { @@ -6018,7 +6025,7 @@ "type": "github" } ], - "time": "2024-09-11T15:42:56+00:00" + "time": "2024-10-18T15:00:48+00:00" }, { "name": "sebastian/complexity", @@ -6644,16 +6651,16 @@ }, { "name": "sebastian/version", - "version": "5.0.1", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "45c9debb7d039ce9b97de2f749c2cf5832a06ac4" + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/45c9debb7d039ce9b97de2f749c2cf5832a06ac4", - "reference": "45c9debb7d039ce9b97de2f749c2cf5832a06ac4", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", "shasum": "" }, "require": { @@ -6686,7 +6693,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/version/issues", "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" }, "funding": [ { @@ -6694,7 +6701,7 @@ "type": "github" } ], - "time": "2024-07-03T05:13:08+00:00" + "time": "2024-10-09T05:16:32+00:00" }, { "name": "sensiolabs/ansi-to-html", @@ -6889,16 +6896,16 @@ }, { "name": "sonata-project/block-bundle", - "version": "5.1.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sonata-project/SonataBlockBundle.git", - "reference": "95bedc0f472f27c58fd2c9e99e810aa5bee14876" + "reference": "039764d75c9c73a0022534676f317c9ffb9bdaac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sonata-project/SonataBlockBundle/zipball/95bedc0f472f27c58fd2c9e99e810aa5bee14876", - "reference": "95bedc0f472f27c58fd2c9e99e810aa5bee14876", + "url": "https://api.github.com/repos/sonata-project/SonataBlockBundle/zipball/039764d75c9c73a0022534676f317c9ffb9bdaac", + "reference": "039764d75c9c73a0022534676f317c9ffb9bdaac", "shasum": "" }, "require": { @@ -6940,7 +6947,7 @@ "phpunit/phpunit": "^9.5.13", "psalm/plugin-phpunit": "^0.18", "psalm/plugin-symfony": "^5.0", - "rector/rector": "^0.18", + "rector/rector": "^1.1", "symfony/browser-kit": "^5.4 || ^6.2 || ^7.0", "symfony/error-handler": "^5.4 || ^6.2 || ^7.0", "symfony/phpunit-bridge": "^6.2 || ^7.0", @@ -6979,7 +6986,7 @@ ], "support": { "issues": "https://github.com/sonata-project/SonataBlockBundle/issues", - "source": "https://github.com/sonata-project/SonataBlockBundle/tree/5.1.0" + "source": "https://github.com/sonata-project/SonataBlockBundle/tree/5.1.1" }, "funding": [ { @@ -6999,7 +7006,7 @@ "type": "github" } ], - "time": "2023-11-23T21:14:33+00:00" + "time": "2024-10-18T11:50:20+00:00" }, { "name": "sonata-project/doctrine-extensions", @@ -10994,16 +11001,16 @@ }, { "name": "symfony/security-acl", - "version": "v3.3.3", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/symfony/security-acl.git", - "reference": "15b96b5dd6a65cafdc96b38ef3c3cebaa8b19cb7" + "reference": "96a1d7e22fd456b231ab256509d492f29dfcd4c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-acl/zipball/15b96b5dd6a65cafdc96b38ef3c3cebaa8b19cb7", - "reference": "15b96b5dd6a65cafdc96b38ef3c3cebaa8b19cb7", + "url": "https://api.github.com/repos/symfony/security-acl/zipball/96a1d7e22fd456b231ab256509d492f29dfcd4c1", + "reference": "96a1d7e22fd456b231ab256509d492f29dfcd4c1", "shasum": "" }, "require": { @@ -11056,7 +11063,7 @@ "homepage": "https://symfony.com", "support": { "issues": "https://github.com/symfony/security-acl/issues", - "source": "https://github.com/symfony/security-acl/tree/v3.3.3" + "source": "https://github.com/symfony/security-acl/tree/v3.3.4" }, "funding": [ { @@ -11072,7 +11079,7 @@ "type": "tidelift" } ], - "time": "2023-05-23T18:46:27+00:00" + "time": "2024-10-18T06:15:14+00:00" }, { "name": "symfony/security-bundle", @@ -12909,16 +12916,16 @@ }, { "name": "bacon/bacon-qr-code", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/Bacon/BaconQrCode.git", - "reference": "510de6eca6248d77d31b339d62437cc995e2fb41" + "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/510de6eca6248d77d31b339d62437cc995e2fb41", - "reference": "510de6eca6248d77d31b339d62437cc995e2fb41", + "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/f9cc1f52b5a463062251d666761178dbdb6b544f", + "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f", "shasum": "" }, "require": { @@ -12957,9 +12964,9 @@ "homepage": "https://github.com/Bacon/BaconQrCode", "support": { "issues": "https://github.com/Bacon/BaconQrCode/issues", - "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.0" + "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.1" }, - "time": "2024-04-18T11:16:25+00:00" + "time": "2024-10-01T13:55:55+00:00" }, { "name": "bamarni/composer-bin-plugin", @@ -13443,16 +13450,16 @@ }, { "name": "doctrine/migrations", - "version": "3.8.1", + "version": "3.8.2", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "7760fbd0b7cb58bfb50415505a7bab821adf0877" + "reference": "5007eb1168691225ac305fe16856755c20860842" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/7760fbd0b7cb58bfb50415505a7bab821adf0877", - "reference": "7760fbd0b7cb58bfb50415505a7bab821adf0877", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/5007eb1168691225ac305fe16856755c20860842", + "reference": "5007eb1168691225ac305fe16856755c20860842", "shasum": "" }, "require": { @@ -13526,7 +13533,7 @@ ], "support": { "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/3.8.1" + "source": "https://github.com/doctrine/migrations/tree/3.8.2" }, "funding": [ { @@ -13542,7 +13549,7 @@ "type": "tidelift" } ], - "time": "2024-08-28T13:17:28+00:00" + "time": "2024-10-10T21:35:27+00:00" }, { "name": "endroid/qr-code", @@ -14192,16 +14199,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.5", + "version": "1.12.7", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "7e6c6cb7cecb0a6254009a1a8a7d54ec99812b17" + "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7e6c6cb7cecb0a6254009a1a8a7d54ec99812b17", - "reference": "7e6c6cb7cecb0a6254009a1a8a7d54ec99812b17", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc2b9976bd8b0f84ec9b0e50cc35378551de7af0", + "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0", "shasum": "" }, "require": { @@ -14246,7 +14253,7 @@ "type": "github" } ], - "time": "2024-09-26T12:45:22+00:00" + "time": "2024-10-18T11:12:07+00:00" }, { "name": "phpstan/phpstan-phpunit", @@ -14837,22 +14844,25 @@ }, { "name": "symfony/flex", - "version": "v1.21.7", + "version": "v1.21.8", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "33ce7c1c0fe78f8c3a106f193b6c0a7d82384462" + "reference": "bda5f869ac51c8e985a6fe9f964c4cb78228a369" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/33ce7c1c0fe78f8c3a106f193b6c0a7d82384462", - "reference": "33ce7c1c0fe78f8c3a106f193b6c0a7d82384462", + "url": "https://api.github.com/repos/symfony/flex/zipball/bda5f869ac51c8e985a6fe9f964c4cb78228a369", + "reference": "bda5f869ac51c8e985a6fe9f964c4cb78228a369", "shasum": "" }, "require": { "composer-plugin-api": "^1.0|^2.0", "php": ">=7.1" }, + "conflict": { + "composer/semver": "<1.7.2" + }, "require-dev": { "composer/composer": "^1.0.2|^2.0", "symfony/dotenv": "^4.4|^5.0|^6.0", @@ -14882,7 +14892,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v1.21.7" + "source": "https://github.com/symfony/flex/tree/v1.21.8" }, "funding": [ { @@ -14898,7 +14908,7 @@ "type": "tidelift" } ], - "time": "2024-04-27T10:20:37+00:00" + "time": "2024-10-07T08:51:39+00:00" }, { "name": "symfony/http-client", @@ -15556,7 +15566,7 @@ ], "aliases": [], "minimum-stability": "dev", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": true, "prefer-lowest": false, "platform": { diff --git a/packages/dependency-injection/Integration/Test/IntegrationTestCase.php b/packages/dependency-injection/Integration/Test/IntegrationTestCase.php index 71ceab9b..0efc1999 100644 --- a/packages/dependency-injection/Integration/Test/IntegrationTestCase.php +++ b/packages/dependency-injection/Integration/Test/IntegrationTestCase.php @@ -59,11 +59,9 @@ public function testGetConfigSectionName(): void public function testDefaultConfiguration(): void { - $config = $this->processConfiguration([[]]); - - static::assertEqualsCanonicalizing( - $this->getDefaultConfiguration(), - $config + static::assertJsonStringEqualsJsonString( + json_encode($this->processConfiguration()), + json_encode($this->getDefaultConfiguration()), ); } diff --git a/packages/tester/Test/DependencyInjection/ConfigurationTestCase.php b/packages/tester/Test/DependencyInjection/ConfigurationTestCase.php index 6f0754a9..53497877 100644 --- a/packages/tester/Test/DependencyInjection/ConfigurationTestCase.php +++ b/packages/tester/Test/DependencyInjection/ConfigurationTestCase.php @@ -47,11 +47,9 @@ public function testInvalidConfiguration(array $configuration, string $expectedM public function testDefault(): void { - $config = $this->processConfiguration([[]]); - - static::assertEqualsCanonicalizing( - $this->getDefaultConfiguration(), - $config + static::assertJsonStringEqualsJsonString( + json_encode($this->getDefaultConfiguration()), + json_encode($this->processConfiguration([[]])) ); } diff --git a/vendor-bin/monorepo/composer.lock b/vendor-bin/monorepo/composer.lock index 6e449505..8d5719a2 100644 --- a/vendor-bin/monorepo/composer.lock +++ b/vendor-bin/monorepo/composer.lock @@ -62,10 +62,10 @@ "packages-dev": [], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, - "platform": [], - "platform-dev": [], + "platform": {}, + "platform-dev": {}, "plugin-api-version": "2.6.0" }