Update doctrine orm to v4

This commit is contained in:
Tim
2025-07-20 15:43:28 +02:00
parent f7282ae31a
commit 94bf0075f0
5 changed files with 51 additions and 255 deletions

2
.env
View File

@ -24,6 +24,6 @@ APP_SECRET=
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml # IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
# #
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db" # DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=mariadb-10.9.5&charset=utf8mb4" # DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.13-MariaDB&charset=utf8mb4"
# DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8" # DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8"
###< doctrine/doctrine-bundle ### ###< doctrine/doctrine-bundle ###

View File

@ -9,7 +9,7 @@
"ext-iconv": "*", "ext-iconv": "*",
"doctrine/doctrine-bundle": "^2.9", "doctrine/doctrine-bundle": "^2.9",
"doctrine/doctrine-migrations-bundle": "^3.2", "doctrine/doctrine-migrations-bundle": "^3.2",
"doctrine/orm": "^2.14", "doctrine/orm": "^3.0",
"league/commonmark": "^2.6", "league/commonmark": "^2.6",
"league/pipeline": "^1.0", "league/pipeline": "^1.0",
"phpdocumentor/reflection-docblock": "^5.6", "phpdocumentor/reflection-docblock": "^5.6",

293
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "f53f233d8ecdab8669ecf97c62e10da5", "content-hash": "5c8498987942998a28017dc8fb5a2aa8",
"packages": [ "packages": [
{ {
"name": "dflydev/dot-access-data", "name": "dflydev/dot-access-data",
@ -81,99 +81,6 @@
}, },
"time": "2024-07-08T12:26:09+00:00" "time": "2024-07-08T12:26:09+00:00"
}, },
{
"name": "doctrine/cache",
"version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
"reference": "1ca8f21980e770095a31456042471a57bc4c68fb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb",
"reference": "1ca8f21980e770095a31456042471a57bc4c68fb",
"shasum": ""
},
"require": {
"php": "~7.1 || ^8.0"
},
"conflict": {
"doctrine/common": ">2.2,<2.4"
},
"require-dev": {
"cache/integration-tests": "dev-master",
"doctrine/coding-standard": "^9",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
"psr/cache": "^1.0 || ^2.0 || ^3.0",
"symfony/cache": "^4.4 || ^5.4 || ^6",
"symfony/var-exporter": "^4.4 || ^5.4 || ^6"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
"description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
"homepage": "https://www.doctrine-project.org/projects/cache.html",
"keywords": [
"abstraction",
"apcu",
"cache",
"caching",
"couchdb",
"memcached",
"php",
"redis",
"xcache"
],
"support": {
"issues": "https://github.com/doctrine/cache/issues",
"source": "https://github.com/doctrine/cache/tree/2.2.0"
},
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
"type": "custom"
},
{
"url": "https://www.patreon.com/phpdoctrine",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
"type": "tidelift"
}
],
"time": "2022-05-20T20:07:39+00:00"
},
{ {
"name": "doctrine/collections", "name": "doctrine/collections",
"version": "2.3.0", "version": "2.3.0",
@ -260,141 +167,42 @@
], ],
"time": "2025-03-22T10:17:19+00:00" "time": "2025-03-22T10:17:19+00:00"
}, },
{
"name": "doctrine/common",
"version": "3.5.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/common.git",
"reference": "d9ea4a54ca2586db781f0265d36bea731ac66ec5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/common/zipball/d9ea4a54ca2586db781f0265d36bea731ac66ec5",
"reference": "d9ea4a54ca2586db781f0265d36bea731ac66ec5",
"shasum": ""
},
"require": {
"doctrine/persistence": "^2.0 || ^3.0 || ^4.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^9.0 || ^10.0",
"doctrine/collections": "^1",
"phpstan/phpstan": "^1.4.1",
"phpstan/phpstan-phpunit": "^1",
"phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0",
"squizlabs/php_codesniffer": "^3.0",
"symfony/phpunit-bridge": "^6.1",
"vimeo/psalm": "^4.4"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.",
"homepage": "https://www.doctrine-project.org/projects/common.html",
"keywords": [
"common",
"doctrine",
"php"
],
"support": {
"issues": "https://github.com/doctrine/common/issues",
"source": "https://github.com/doctrine/common/tree/3.5.0"
},
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
"type": "custom"
},
{
"url": "https://www.patreon.com/phpdoctrine",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon",
"type": "tidelift"
}
],
"time": "2025-01-01T22:12:03+00:00"
},
{ {
"name": "doctrine/dbal", "name": "doctrine/dbal",
"version": "3.10.0", "version": "4.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/dbal.git", "url": "https://github.com/doctrine/dbal.git",
"reference": "1cf840d696373ea0d58ad0a8875c0fadcfc67214" "reference": "5fe09532be619202d59c70956c6fb20e97933ee3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/1cf840d696373ea0d58ad0a8875c0fadcfc67214", "url": "https://api.github.com/repos/doctrine/dbal/zipball/5fe09532be619202d59c70956c6fb20e97933ee3",
"reference": "1cf840d696373ea0d58ad0a8875c0fadcfc67214", "reference": "5fe09532be619202d59c70956c6fb20e97933ee3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"composer-runtime-api": "^2", "doctrine/deprecations": "^1.1.5",
"doctrine/deprecations": "^0.5.3|^1", "php": "^8.2",
"doctrine/event-manager": "^1|^2",
"php": "^7.4 || ^8.0",
"psr/cache": "^1|^2|^3", "psr/cache": "^1|^2|^3",
"psr/log": "^1|^2|^3" "psr/log": "^1|^2|^3"
}, },
"conflict": {
"doctrine/cache": "< 1.11"
},
"require-dev": { "require-dev": {
"doctrine/cache": "^1.11|^2.0",
"doctrine/coding-standard": "13.0.0", "doctrine/coding-standard": "13.0.0",
"fig/log-test": "^1", "fig/log-test": "^1",
"jetbrains/phpstorm-stubs": "2023.1", "jetbrains/phpstorm-stubs": "2023.2",
"phpstan/phpstan": "2.1.17", "phpstan/phpstan": "2.1.17",
"phpstan/phpstan-phpunit": "2.0.6",
"phpstan/phpstan-strict-rules": "^2", "phpstan/phpstan-strict-rules": "^2",
"phpunit/phpunit": "9.6.23", "phpunit/phpunit": "11.5.23",
"slevomat/coding-standard": "8.16.2", "slevomat/coding-standard": "8.16.2",
"squizlabs/php_codesniffer": "3.13.1", "squizlabs/php_codesniffer": "3.13.1",
"symfony/cache": "^5.4|^6.0|^7.0", "symfony/cache": "^6.3.8|^7.0",
"symfony/console": "^4.4|^5.4|^6.0|^7.0" "symfony/console": "^5.4|^6.3|^7.0"
}, },
"suggest": { "suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files." "symfony/console": "For helpful console commands such as SQL execution and import of files."
}, },
"bin": [
"bin/doctrine-dbal"
],
"type": "library", "type": "library",
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@ -447,7 +255,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/dbal/issues", "issues": "https://github.com/doctrine/dbal/issues",
"source": "https://github.com/doctrine/dbal/tree/3.10.0" "source": "https://github.com/doctrine/dbal/tree/4.3.0"
}, },
"funding": [ "funding": [
{ {
@ -463,7 +271,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-07-10T21:11:04+00:00" "time": "2025-06-16T19:31:04+00:00"
}, },
{ {
"name": "doctrine/deprecations", "name": "doctrine/deprecations",
@ -1154,62 +962,50 @@
}, },
{ {
"name": "doctrine/orm", "name": "doctrine/orm",
"version": "2.20.5", "version": "3.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/orm.git", "url": "https://github.com/doctrine/orm.git",
"reference": "6307b4fa7d7e3845a756106977e3b48907622098" "reference": "6deec3655ba3e8f15280aac11e264225854d2369"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/orm/zipball/6307b4fa7d7e3845a756106977e3b48907622098", "url": "https://api.github.com/repos/doctrine/orm/zipball/6deec3655ba3e8f15280aac11e264225854d2369",
"reference": "6307b4fa7d7e3845a756106977e3b48907622098", "reference": "6deec3655ba3e8f15280aac11e264225854d2369",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"composer-runtime-api": "^2", "composer-runtime-api": "^2",
"doctrine/cache": "^1.12.1 || ^2.1.1", "doctrine/collections": "^2.2",
"doctrine/collections": "^1.5 || ^2.1", "doctrine/dbal": "^3.8.2 || ^4",
"doctrine/common": "^3.0.3",
"doctrine/dbal": "^2.13.1 || ^3.2",
"doctrine/deprecations": "^0.5.3 || ^1", "doctrine/deprecations": "^0.5.3 || ^1",
"doctrine/event-manager": "^1.2 || ^2", "doctrine/event-manager": "^1.2 || ^2",
"doctrine/inflector": "^1.4 || ^2.0", "doctrine/inflector": "^1.4 || ^2.0",
"doctrine/instantiator": "^1.3 || ^2", "doctrine/instantiator": "^1.3 || ^2",
"doctrine/lexer": "^2 || ^3", "doctrine/lexer": "^3",
"doctrine/persistence": "^2.4 || ^3", "doctrine/persistence": "^3.3.1 || ^4",
"ext-ctype": "*", "ext-ctype": "*",
"php": "^7.1 || ^8.0", "php": "^8.1",
"psr/cache": "^1 || ^2 || ^3", "psr/cache": "^1 || ^2 || ^3",
"symfony/console": "^4.2 || ^5.0 || ^6.0 || ^7.0", "symfony/console": "^5.4 || ^6.0 || ^7.0",
"symfony/polyfill-php72": "^1.23", "symfony/var-exporter": "^6.3.9 || ^7.0"
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
"doctrine/annotations": "<1.13 || >= 3.0"
}, },
"require-dev": { "require-dev": {
"doctrine/annotations": "^1.13 || ^2", "doctrine/coding-standard": "^13.0",
"doctrine/coding-standard": "^9.0.2 || ^13.0", "phpbench/phpbench": "^1.0",
"phpbench/phpbench": "^0.16.10 || ^1.0", "phpdocumentor/guides-cli": "^1.4",
"phpstan/extension-installer": "~1.1.0 || ^1.4", "phpstan/extension-installer": "^1.4",
"phpstan/phpstan": "~1.4.10 || 2.0.3", "phpstan/phpstan": "2.0.3",
"phpstan/phpstan-deprecation-rules": "^1 || ^2", "phpstan/phpstan-deprecation-rules": "^2",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", "phpunit/phpunit": "^10.4.0",
"psr/log": "^1 || ^2 || ^3", "psr/log": "^1 || ^2 || ^3",
"squizlabs/php_codesniffer": "3.12.0", "squizlabs/php_codesniffer": "3.12.0",
"symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7.0", "symfony/cache": "^5.4 || ^6.2 || ^7.0"
"symfony/var-exporter": "^4.4 || ^5.4 || ^6.2 || ^7.0",
"symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
}, },
"suggest": { "suggest": {
"ext-dom": "Provides support for XSD validation for XML mapping files", "ext-dom": "Provides support for XSD validation for XML mapping files",
"symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0"
"symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
}, },
"bin": [
"bin/doctrine"
],
"type": "library", "type": "library",
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@ -1250,27 +1046,27 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/orm/issues", "issues": "https://github.com/doctrine/orm/issues",
"source": "https://github.com/doctrine/orm/tree/2.20.5" "source": "https://github.com/doctrine/orm/tree/3.5.0"
}, },
"time": "2025-06-24T17:50:46+00:00" "time": "2025-07-01T17:40:53+00:00"
}, },
{ {
"name": "doctrine/persistence", "name": "doctrine/persistence",
"version": "3.4.0", "version": "4.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/persistence.git", "url": "https://github.com/doctrine/persistence.git",
"reference": "0ea965320cec355dba75031c1b23d4c78362e3ff" "reference": "45004aca79189474f113cbe3a53847c2115a55fa"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/persistence/zipball/0ea965320cec355dba75031c1b23d4c78362e3ff", "url": "https://api.github.com/repos/doctrine/persistence/zipball/45004aca79189474f113cbe3a53847c2115a55fa",
"reference": "0ea965320cec355dba75031c1b23d4c78362e3ff", "reference": "45004aca79189474f113cbe3a53847c2115a55fa",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/event-manager": "^1 || ^2", "doctrine/event-manager": "^1 || ^2",
"php": "^7.2 || ^8.0", "php": "^8.1",
"psr/cache": "^1.0 || ^2.0 || ^3.0" "psr/cache": "^1.0 || ^2.0 || ^3.0"
}, },
"conflict": { "conflict": {
@ -1278,11 +1074,10 @@
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^12", "doctrine/coding-standard": "^12",
"doctrine/common": "^3.0",
"phpstan/phpstan": "1.12.7", "phpstan/phpstan": "1.12.7",
"phpstan/phpstan-phpunit": "^1", "phpstan/phpstan-phpunit": "^1",
"phpstan/phpstan-strict-rules": "^1.1", "phpstan/phpstan-strict-rules": "^1.1",
"phpunit/phpunit": "^8.5.38 || ^9.5", "phpunit/phpunit": "^9.6",
"symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0" "symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0"
}, },
"type": "library", "type": "library",
@ -1332,7 +1127,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/persistence/issues", "issues": "https://github.com/doctrine/persistence/issues",
"source": "https://github.com/doctrine/persistence/tree/3.4.0" "source": "https://github.com/doctrine/persistence/tree/4.0.0"
}, },
"funding": [ "funding": [
{ {
@ -1348,7 +1143,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-10-30T19:48:12+00:00" "time": "2024-11-01T21:49:07+00:00"
}, },
{ {
"name": "doctrine/sql-formatter", "name": "doctrine/sql-formatter",

View File

@ -11,7 +11,7 @@ doctrine:
orm: orm:
report_fields_where_declared: true report_fields_where_declared: true
auto_generate_proxy_classes: true auto_generate_proxy_classes: true
enable_lazy_ghost_objects: true enable_native_lazy_objects: true
validate_xml_mapping: true validate_xml_mapping: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
identity_generation_preferences: identity_generation_preferences:

View File

@ -4,13 +4,14 @@ namespace App\Security\Voter;
use App\Entity\Snip; use App\Entity\Snip;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Authorization\Voter\Vote;
use Symfony\Component\Security\Core\Authorization\Voter\Voter; use Symfony\Component\Security\Core\Authorization\Voter\Voter;
use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\UserInterface;
class SnipVoter extends Voter class SnipVoter extends Voter
{ {
public const EDIT = 'edit'; public const string EDIT = 'edit';
public const VIEW = 'view'; public const string VIEW = 'view';
protected function supports(string $attribute, mixed $subject): bool protected function supports(string $attribute, mixed $subject): bool
{ {
@ -20,7 +21,7 @@ class SnipVoter extends Voter
&& $subject instanceof Snip; && $subject instanceof Snip;
} }
protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token,/* , ?Vote $vote = null */): bool
{ {
/** @var Snip $subject */ /** @var Snip $subject */