diff --git a/composer.json b/composer.json index f656956b2..a088206c4 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "cweagans/composer-patches": "^1.7", "deepdiver/zipstreamer": "^3.0.1", "deepdiver1975/tarstreamer": "^2.1.0", - "doctrine/dbal": "^3.10.4", + "doctrine/dbal": "^3.10.6", "egulias/email-validator": "^4.0.4", "fusonic/opengraph": "^3.0.0", "giggsey/libphonenumber-for-php-lite": "^9.0.9", diff --git a/composer.lock b/composer.lock index 1461227cf..31d57acb8 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": "3e2c63da99190d75e0b864f9724c214b", + "content-hash": "5efb4152500edce2abf81770a64e83fe", "packages": [ { "name": "aws/aws-crt-php", @@ -434,16 +434,16 @@ }, { "name": "doctrine/dbal", - "version": "3.10.4", + "version": "3.10.6", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "63a46cb5aa6f60991186cc98c1d1b50c09311868" + "reference": "c95589d775a0b2e543467d40f8c3ecccf586f2b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/63a46cb5aa6f60991186cc98c1d1b50c09311868", - "reference": "63a46cb5aa6f60991186cc98c1d1b50c09311868", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c95589d775a0b2e543467d40f8c3ecccf586f2b4", + "reference": "c95589d775a0b2e543467d40f8c3ecccf586f2b4", "shasum": "" }, "require": { @@ -464,9 +464,9 @@ "jetbrains/phpstorm-stubs": "2023.1", "phpstan/phpstan": "2.1.30", "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "9.6.29", - "slevomat/coding-standard": "8.24.0", - "squizlabs/php_codesniffer": "4.0.0", + "phpunit/phpunit": "9.6.34", + "slevomat/coding-standard": "8.27.1", + "squizlabs/php_codesniffer": "4.0.1", "symfony/cache": "^5.4|^6.0|^7.0|^8.0", "symfony/console": "^4.4|^5.4|^6.0|^7.0|^8.0" }, @@ -528,7 +528,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.10.4" + "source": "https://github.com/doctrine/dbal/tree/3.10.6" }, "funding": [ { @@ -544,7 +544,7 @@ "type": "tidelift" } ], - "time": "2025-11-29T10:46:08+00:00" + "time": "2026-07-21T12:57:49+00:00" }, { "name": "doctrine/deprecations", @@ -596,16 +596,16 @@ }, { "name": "doctrine/event-manager", - "version": "2.0.1", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e" + "reference": "dda33921b198841ca8dbad2eaa5d4d34769d18cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/dda33921b198841ca8dbad2eaa5d4d34769d18cf", + "reference": "dda33921b198841ca8dbad2eaa5d4d34769d18cf", "shasum": "" }, "require": { @@ -615,10 +615,10 @@ "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.8.8", - "phpunit/phpunit": "^10.5", - "vimeo/psalm": "^5.24" + "doctrine/coding-standard": "^14", + "phpdocumentor/guides-cli": "^1.4", + "phpstan/phpstan": "^2.1.32", + "phpunit/phpunit": "^10.5.58" }, "type": "library", "autoload": { @@ -667,7 +667,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/2.0.1" + "source": "https://github.com/doctrine/event-manager/tree/2.1.1" }, "funding": [ { @@ -683,7 +683,7 @@ "type": "tidelift" } ], - "time": "2024-05-22T20:47:39+00:00" + "time": "2026-01-29T07:11:08+00:00" }, { "name": "doctrine/lexer", diff --git a/composer/autoload_classmap.php b/composer/autoload_classmap.php index 6f206b6d3..87cbfad60 100644 --- a/composer/autoload_classmap.php +++ b/composer/autoload_classmap.php @@ -525,8 +525,13 @@ 'DateRangeError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateRangeError.php', 'Deprecated' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/Deprecated.php', 'Doctrine\\Common\\EventArgs' => $vendorDir . '/doctrine/event-manager/src/EventArgs.php', + 'Doctrine\\Common\\EventDispatcher' => $vendorDir . '/doctrine/event-manager/src/EventDispatcher.php', + 'Doctrine\\Common\\EventListenerIntrospector' => $vendorDir . '/doctrine/event-manager/src/EventListenerIntrospector.php', + 'Doctrine\\Common\\EventListenerRegistry' => $vendorDir . '/doctrine/event-manager/src/EventListenerRegistry.php', 'Doctrine\\Common\\EventManager' => $vendorDir . '/doctrine/event-manager/src/EventManager.php', + 'Doctrine\\Common\\EventManagerInterface' => $vendorDir . '/doctrine/event-manager/src/EventManagerInterface.php', 'Doctrine\\Common\\EventSubscriber' => $vendorDir . '/doctrine/event-manager/src/EventSubscriber.php', + 'Doctrine\\Common\\EventSubscriberRegistry' => $vendorDir . '/doctrine/event-manager/src/EventSubscriberRegistry.php', 'Doctrine\\Common\\Lexer\\AbstractLexer' => $vendorDir . '/doctrine/lexer/src/AbstractLexer.php', 'Doctrine\\Common\\Lexer\\Token' => $vendorDir . '/doctrine/lexer/src/Token.php', 'Doctrine\\DBAL\\ArrayParameterType' => $vendorDir . '/doctrine/dbal/src/ArrayParameterType.php', @@ -717,6 +722,7 @@ 'Doctrine\\DBAL\\Platforms\\Keywords\\MariaDBKeywords' => $vendorDir . '/doctrine/dbal/src/Platforms/Keywords/MariaDBKeywords.php', 'Doctrine\\DBAL\\Platforms\\Keywords\\MariaDb102Keywords' => $vendorDir . '/doctrine/dbal/src/Platforms/Keywords/MariaDb102Keywords.php', 'Doctrine\\DBAL\\Platforms\\Keywords\\MariaDb117Keywords' => $vendorDir . '/doctrine/dbal/src/Platforms/Keywords/MariaDb117Keywords.php', + 'Doctrine\\DBAL\\Platforms\\Keywords\\MariaDb123Keywords' => $vendorDir . '/doctrine/dbal/src/Platforms/Keywords/MariaDb123Keywords.php', 'Doctrine\\DBAL\\Platforms\\Keywords\\MySQL57Keywords' => $vendorDir . '/doctrine/dbal/src/Platforms/Keywords/MySQL57Keywords.php', 'Doctrine\\DBAL\\Platforms\\Keywords\\MySQL80Keywords' => $vendorDir . '/doctrine/dbal/src/Platforms/Keywords/MySQL80Keywords.php', 'Doctrine\\DBAL\\Platforms\\Keywords\\MySQL84Keywords' => $vendorDir . '/doctrine/dbal/src/Platforms/Keywords/MySQL84Keywords.php', @@ -736,6 +742,7 @@ 'Doctrine\\DBAL\\Platforms\\MariaDb1052Platform' => $vendorDir . '/doctrine/dbal/src/Platforms/MariaDb1052Platform.php', 'Doctrine\\DBAL\\Platforms\\MariaDb1060Platform' => $vendorDir . '/doctrine/dbal/src/Platforms/MariaDb1060Platform.php', 'Doctrine\\DBAL\\Platforms\\MariaDb110700Platform' => $vendorDir . '/doctrine/dbal/src/Platforms/MariaDb110700Platform.php', + 'Doctrine\\DBAL\\Platforms\\MariaDb120300Platform' => $vendorDir . '/doctrine/dbal/src/Platforms/MariaDb120300Platform.php', 'Doctrine\\DBAL\\Platforms\\MySQL57Platform' => $vendorDir . '/doctrine/dbal/src/Platforms/MySQL57Platform.php', 'Doctrine\\DBAL\\Platforms\\MySQL80Platform' => $vendorDir . '/doctrine/dbal/src/Platforms/MySQL80Platform.php', 'Doctrine\\DBAL\\Platforms\\MySQL84Platform' => $vendorDir . '/doctrine/dbal/src/Platforms/MySQL84Platform.php', diff --git a/composer/autoload_static.php b/composer/autoload_static.php index 0d5bc3d22..103bbf8c3 100644 --- a/composer/autoload_static.php +++ b/composer/autoload_static.php @@ -1062,8 +1062,13 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'DateRangeError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateRangeError.php', 'Deprecated' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/Deprecated.php', 'Doctrine\\Common\\EventArgs' => __DIR__ . '/..' . '/doctrine/event-manager/src/EventArgs.php', + 'Doctrine\\Common\\EventDispatcher' => __DIR__ . '/..' . '/doctrine/event-manager/src/EventDispatcher.php', + 'Doctrine\\Common\\EventListenerIntrospector' => __DIR__ . '/..' . '/doctrine/event-manager/src/EventListenerIntrospector.php', + 'Doctrine\\Common\\EventListenerRegistry' => __DIR__ . '/..' . '/doctrine/event-manager/src/EventListenerRegistry.php', 'Doctrine\\Common\\EventManager' => __DIR__ . '/..' . '/doctrine/event-manager/src/EventManager.php', + 'Doctrine\\Common\\EventManagerInterface' => __DIR__ . '/..' . '/doctrine/event-manager/src/EventManagerInterface.php', 'Doctrine\\Common\\EventSubscriber' => __DIR__ . '/..' . '/doctrine/event-manager/src/EventSubscriber.php', + 'Doctrine\\Common\\EventSubscriberRegistry' => __DIR__ . '/..' . '/doctrine/event-manager/src/EventSubscriberRegistry.php', 'Doctrine\\Common\\Lexer\\AbstractLexer' => __DIR__ . '/..' . '/doctrine/lexer/src/AbstractLexer.php', 'Doctrine\\Common\\Lexer\\Token' => __DIR__ . '/..' . '/doctrine/lexer/src/Token.php', 'Doctrine\\DBAL\\ArrayParameterType' => __DIR__ . '/..' . '/doctrine/dbal/src/ArrayParameterType.php', @@ -1254,6 +1259,7 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Doctrine\\DBAL\\Platforms\\Keywords\\MariaDBKeywords' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/Keywords/MariaDBKeywords.php', 'Doctrine\\DBAL\\Platforms\\Keywords\\MariaDb102Keywords' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/Keywords/MariaDb102Keywords.php', 'Doctrine\\DBAL\\Platforms\\Keywords\\MariaDb117Keywords' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/Keywords/MariaDb117Keywords.php', + 'Doctrine\\DBAL\\Platforms\\Keywords\\MariaDb123Keywords' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/Keywords/MariaDb123Keywords.php', 'Doctrine\\DBAL\\Platforms\\Keywords\\MySQL57Keywords' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/Keywords/MySQL57Keywords.php', 'Doctrine\\DBAL\\Platforms\\Keywords\\MySQL80Keywords' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/Keywords/MySQL80Keywords.php', 'Doctrine\\DBAL\\Platforms\\Keywords\\MySQL84Keywords' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/Keywords/MySQL84Keywords.php', @@ -1273,6 +1279,7 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Doctrine\\DBAL\\Platforms\\MariaDb1052Platform' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/MariaDb1052Platform.php', 'Doctrine\\DBAL\\Platforms\\MariaDb1060Platform' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/MariaDb1060Platform.php', 'Doctrine\\DBAL\\Platforms\\MariaDb110700Platform' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/MariaDb110700Platform.php', + 'Doctrine\\DBAL\\Platforms\\MariaDb120300Platform' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/MariaDb120300Platform.php', 'Doctrine\\DBAL\\Platforms\\MySQL57Platform' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/MySQL57Platform.php', 'Doctrine\\DBAL\\Platforms\\MySQL80Platform' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/MySQL80Platform.php', 'Doctrine\\DBAL\\Platforms\\MySQL84Platform' => __DIR__ . '/..' . '/doctrine/dbal/src/Platforms/MySQL84Platform.php', diff --git a/composer/installed.json b/composer/installed.json index 296a9e385..2d6f0c988 100644 --- a/composer/installed.json +++ b/composer/installed.json @@ -449,17 +449,17 @@ }, { "name": "doctrine/dbal", - "version": "3.10.4", - "version_normalized": "3.10.4.0", + "version": "3.10.6", + "version_normalized": "3.10.6.0", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "63a46cb5aa6f60991186cc98c1d1b50c09311868" + "reference": "c95589d775a0b2e543467d40f8c3ecccf586f2b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/63a46cb5aa6f60991186cc98c1d1b50c09311868", - "reference": "63a46cb5aa6f60991186cc98c1d1b50c09311868", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c95589d775a0b2e543467d40f8c3ecccf586f2b4", + "reference": "c95589d775a0b2e543467d40f8c3ecccf586f2b4", "shasum": "" }, "require": { @@ -480,16 +480,16 @@ "jetbrains/phpstorm-stubs": "2023.1", "phpstan/phpstan": "2.1.30", "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "9.6.29", - "slevomat/coding-standard": "8.24.0", - "squizlabs/php_codesniffer": "4.0.0", + "phpunit/phpunit": "9.6.34", + "slevomat/coding-standard": "8.27.1", + "squizlabs/php_codesniffer": "4.0.1", "symfony/cache": "^5.4|^6.0|^7.0|^8.0", "symfony/console": "^4.4|^5.4|^6.0|^7.0|^8.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." }, - "time": "2025-11-29T10:46:08+00:00", + "time": "2026-07-21T12:57:49+00:00", "bin": [ "bin/doctrine-dbal" ], @@ -546,7 +546,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.10.4" + "source": "https://github.com/doctrine/dbal/tree/3.10.6" }, "funding": [ { @@ -617,17 +617,17 @@ }, { "name": "doctrine/event-manager", - "version": "2.0.1", - "version_normalized": "2.0.1.0", + "version": "2.1.1", + "version_normalized": "2.1.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e" + "reference": "dda33921b198841ca8dbad2eaa5d4d34769d18cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/dda33921b198841ca8dbad2eaa5d4d34769d18cf", + "reference": "dda33921b198841ca8dbad2eaa5d4d34769d18cf", "shasum": "" }, "require": { @@ -637,12 +637,12 @@ "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.8.8", - "phpunit/phpunit": "^10.5", - "vimeo/psalm": "^5.24" + "doctrine/coding-standard": "^14", + "phpdocumentor/guides-cli": "^1.4", + "phpstan/phpstan": "^2.1.32", + "phpunit/phpunit": "^10.5.58" }, - "time": "2024-05-22T20:47:39+00:00", + "time": "2026-01-29T07:11:08+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -691,7 +691,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/2.0.1" + "source": "https://github.com/doctrine/event-manager/tree/2.1.1" }, "funding": [ { diff --git a/composer/installed.php b/composer/installed.php index 7ae58d7ce..90230edd2 100644 --- a/composer/installed.php +++ b/composer/installed.php @@ -74,9 +74,9 @@ 'dev_requirement' => false, ), 'doctrine/dbal' => array( - 'pretty_version' => '3.10.4', - 'version' => '3.10.4.0', - 'reference' => '63a46cb5aa6f60991186cc98c1d1b50c09311868', + 'pretty_version' => '3.10.6', + 'version' => '3.10.6.0', + 'reference' => 'c95589d775a0b2e543467d40f8c3ecccf586f2b4', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/dbal', 'aliases' => array(), @@ -92,9 +92,9 @@ 'dev_requirement' => false, ), 'doctrine/event-manager' => array( - 'pretty_version' => '2.0.1', - 'version' => '2.0.1.0', - 'reference' => 'b680156fa328f1dfd874fd48c7026c41570b9c6e', + 'pretty_version' => '2.1.1', + 'version' => '2.1.1.0', + 'reference' => 'dda33921b198841ca8dbad2eaa5d4d34769d18cf', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/event-manager', 'aliases' => array(), diff --git a/doctrine/dbal/src/Driver/AbstractMySQLDriver.php b/doctrine/dbal/src/Driver/AbstractMySQLDriver.php index 1bb327033..4c142efc7 100644 --- a/doctrine/dbal/src/Driver/AbstractMySQLDriver.php +++ b/doctrine/dbal/src/Driver/AbstractMySQLDriver.php @@ -14,6 +14,7 @@ use Doctrine\DBAL\Platforms\MariaDb1052Platform; use Doctrine\DBAL\Platforms\MariaDb1060Platform; use Doctrine\DBAL\Platforms\MariaDb110700Platform; +use Doctrine\DBAL\Platforms\MariaDb120300Platform; use Doctrine\DBAL\Platforms\MySQL57Platform; use Doctrine\DBAL\Platforms\MySQL80Platform; use Doctrine\DBAL\Platforms\MySQL84Platform; @@ -43,6 +44,10 @@ public function createDatabasePlatformForVersion($version) if ($mariadb) { $mariaDbVersion = $this->getMariaDbMysqlVersionNumber($version); + if (version_compare($mariaDbVersion, '12.3.0', '>=')) { + return new MariaDb120300Platform(); + } + if (version_compare($mariaDbVersion, '11.7.0', '>=')) { return new MariaDb110700Platform(); } diff --git a/doctrine/dbal/src/Platforms/Keywords/MariaDb123Keywords.php b/doctrine/dbal/src/Platforms/Keywords/MariaDb123Keywords.php new file mode 100644 index 000000000..bb77eb638 --- /dev/null +++ b/doctrine/dbal/src/Platforms/Keywords/MariaDb123Keywords.php @@ -0,0 +1,48 @@ +join('u', 'phonenumbers', 'p', 'p.is_primary = 1'); * * - * @param string $fromAlias The alias that points to a from clause. - * @param string $join The table name to join. - * @param string $alias The alias of the join table. - * @param string $condition The condition for the join. + * @param string $fromAlias The alias that points to a from clause. + * @param string $join The table name to join. + * @param string $alias The alias of the join table. + * @param string|null $condition The condition for the join. * * @return $this This QueryBuilder instance. */ @@ -902,10 +902,10 @@ public function join($fromAlias, $join, $alias, $condition = null) * ->innerJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1'); * * - * @param string $fromAlias The alias that points to a from clause. - * @param string $join The table name to join. - * @param string $alias The alias of the join table. - * @param string $condition The condition for the join. + * @param string $fromAlias The alias that points to a from clause. + * @param string $join The table name to join. + * @param string $alias The alias of the join table. + * @param string|null $condition The condition for the join. * * @return $this This QueryBuilder instance. */ @@ -931,10 +931,10 @@ public function innerJoin($fromAlias, $join, $alias, $condition = null) * ->leftJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1'); * * - * @param string $fromAlias The alias that points to a from clause. - * @param string $join The table name to join. - * @param string $alias The alias of the join table. - * @param string $condition The condition for the join. + * @param string $fromAlias The alias that points to a from clause. + * @param string $join The table name to join. + * @param string $alias The alias of the join table. + * @param string|null $condition The condition for the join. * * @return $this This QueryBuilder instance. */ @@ -960,10 +960,10 @@ public function leftJoin($fromAlias, $join, $alias, $condition = null) * ->rightJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1'); * * - * @param string $fromAlias The alias that points to a from clause. - * @param string $join The table name to join. - * @param string $alias The alias of the join table. - * @param string $condition The condition for the join. + * @param string $fromAlias The alias that points to a from clause. + * @param string $join The table name to join. + * @param string $alias The alias of the join table. + * @param string|null $condition The condition for the join. * * @return $this This QueryBuilder instance. */ @@ -1293,8 +1293,8 @@ public function orHaving($having) * Specifies an ordering for the query results. * Replaces any previously specified orderings, if any. * - * @param string $sort The ordering expression. - * @param string $order The ordering direction. + * @param string $sort The ordering expression. + * @param string|null $order The ordering direction. * * @return $this This QueryBuilder instance. */ @@ -1306,8 +1306,8 @@ public function orderBy($sort, $order = null) /** * Adds an ordering to the query results. * - * @param string $sort The ordering expression. - * @param string $order The ordering direction. + * @param string $sort The ordering expression. + * @param string|null $order The ordering direction. * * @return $this This QueryBuilder instance. */ diff --git a/doctrine/dbal/src/Tools/Console/Command/ReservedWordsCommand.php b/doctrine/dbal/src/Tools/Console/Command/ReservedWordsCommand.php index 238af5ed6..52d7fdde2 100644 --- a/doctrine/dbal/src/Tools/Console/Command/ReservedWordsCommand.php +++ b/doctrine/dbal/src/Tools/Console/Command/ReservedWordsCommand.php @@ -8,6 +8,7 @@ use Doctrine\DBAL\Platforms\Keywords\KeywordList; use Doctrine\DBAL\Platforms\Keywords\MariaDb102Keywords; use Doctrine\DBAL\Platforms\Keywords\MariaDb117Keywords; +use Doctrine\DBAL\Platforms\Keywords\MariaDb123Keywords; use Doctrine\DBAL\Platforms\Keywords\MySQL57Keywords; use Doctrine\DBAL\Platforms\Keywords\MySQL80Keywords; use Doctrine\DBAL\Platforms\Keywords\MySQL84Keywords; @@ -59,6 +60,7 @@ public function __construct(ConnectionProvider $connectionProvider) 'db2' => new DB2Keywords(), 'mariadb102' => new MariaDb102Keywords(), 'mariadb117' => new MariaDb117Keywords(), + 'mariadb123' => new MariaDb123Keywords(), 'mysql' => new MySQLKeywords(), 'mysql57' => new MySQL57Keywords(), 'mysql80' => new MySQL80Keywords(), @@ -131,6 +133,7 @@ private function doConfigure(): void * db2 * mariadb102 * mariadb117 + * mariadb123 * mysql * mysql57 * mysql80 diff --git a/doctrine/event-manager/src/EventDispatcher.php b/doctrine/event-manager/src/EventDispatcher.php new file mode 100644 index 000000000..bc72817f6 --- /dev/null +++ b/doctrine/event-manager/src/EventDispatcher.php @@ -0,0 +1,24 @@ + + */ + public function getAllListeners(): array; + + /** + * Checks whether an event has any registered listeners. + */ + public function hasListeners(string $event): bool; +} diff --git a/doctrine/event-manager/src/EventListenerRegistry.php b/doctrine/event-manager/src/EventListenerRegistry.php new file mode 100644 index 000000000..bc8cd84c4 --- /dev/null +++ b/doctrine/event-manager/src/EventListenerRegistry.php @@ -0,0 +1,26 @@ +listeners[$eventName])) { @@ -42,86 +35,55 @@ public function dispatchEvent(string $eventName, EventArgs|null $eventArgs = nul } } - /** - * Gets the listeners of a specific event. - * - * @param string $event The name of the event. - * - * @return object[] - */ + /** {@inheritDoc} */ public function getListeners(string $event): array { return $this->listeners[$event] ?? []; } - /** - * Gets all listeners keyed by event name. - * - * @return array The event listeners for the specified event, or all event listeners. - */ + /** {@inheritDoc} */ public function getAllListeners(): array { return $this->listeners; } - /** - * Checks whether an event has any registered listeners. - */ + /** {@inheritDoc} */ public function hasListeners(string $event): bool { return ! empty($this->listeners[$event]); } - /** - * Adds an event listener that listens on the specified events. - * - * @param string|string[] $events The event(s) to listen on. - * @param object $listener The listener object. - */ + /** {@inheritDoc} */ public function addEventListener(string|array $events, object $listener): void { // Picks the hash code related to that listener - $hash = spl_object_hash($listener); + $oid = spl_object_id($listener); foreach ((array) $events as $event) { // Overrides listener if a previous one was associated already // Prevents duplicate listeners on same event (same instance only) - $this->listeners[$event][$hash] = $listener; + $this->listeners[$event][$oid] = $listener; } } - /** - * Removes an event listener from the specified events. - * - * @param string|string[] $events - */ + /** {@inheritDoc} */ public function removeEventListener(string|array $events, object $listener): void { // Picks the hash code related to that listener - $hash = spl_object_hash($listener); + $oid = spl_object_id($listener); foreach ((array) $events as $event) { - unset($this->listeners[$event][$hash]); + unset($this->listeners[$event][$oid]); } } - /** - * Adds an EventSubscriber. - * - * The subscriber is asked for all the events it is interested in and added - * as a listener for these events. - */ + /** {@inheritDoc} */ public function addEventSubscriber(EventSubscriber $subscriber): void { $this->addEventListener($subscriber->getSubscribedEvents(), $subscriber); } - /** - * Removes an EventSubscriber. - * - * The subscriber is asked for all the events it is interested in and removed - * as a listener for these events. - */ + /** {@inheritDoc} */ public function removeEventSubscriber(EventSubscriber $subscriber): void { $this->removeEventListener($subscriber->getSubscribedEvents(), $subscriber); diff --git a/doctrine/event-manager/src/EventManagerInterface.php b/doctrine/event-manager/src/EventManagerInterface.php new file mode 100644 index 000000000..82dd684b5 --- /dev/null +++ b/doctrine/event-manager/src/EventManagerInterface.php @@ -0,0 +1,13 @@ +