forked from mirror/Part-DB.Part-DB-server
Merge branch 'doctrine-upgrade' into postgres
This commit is contained in:
commit
3c3af824cf
27 changed files with 300 additions and 305 deletions
|
@ -15,12 +15,11 @@
|
|||
"brick/math": "0.12.1 as 0.11.0",
|
||||
"composer/ca-bundle": "^1.3",
|
||||
"composer/package-versions-deprecated": "^1.11.99.5",
|
||||
"doctrine/annotations": "1.14.3",
|
||||
"doctrine/data-fixtures": "^1.6.6",
|
||||
"doctrine/dbal": "^3.4.6",
|
||||
"doctrine/dbal": "^4.0.0",
|
||||
"doctrine/doctrine-bundle": "^2.0",
|
||||
"doctrine/doctrine-migrations-bundle": "^3.0",
|
||||
"doctrine/orm": "^2.16",
|
||||
"doctrine/orm": "^3.2.0",
|
||||
"dompdf/dompdf": "^v3.0.0",
|
||||
"erusev/parsedown": "^1.7",
|
||||
"florianv/swap": "^4.0",
|
||||
|
|
331
composer.lock
generated
331
composer.lock
generated
|
@ -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": "97361e6ad226561d1407dbafd8303465",
|
||||
"content-hash": "a0319f019362e78fc8d643228989a5fd",
|
||||
"packages": [
|
||||
{
|
||||
"name": "api-platform/core",
|
||||
|
@ -534,30 +534,30 @@
|
|||
},
|
||||
{
|
||||
"name": "doctrine/annotations",
|
||||
"version": "1.14.3",
|
||||
"version": "2.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/annotations.git",
|
||||
"reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af"
|
||||
"reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
|
||||
"reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
|
||||
"url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
|
||||
"reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/lexer": "^1 || ^2",
|
||||
"doctrine/lexer": "^2 || ^3",
|
||||
"ext-tokenizer": "*",
|
||||
"php": "^7.1 || ^8.0",
|
||||
"php": "^7.2 || ^8.0",
|
||||
"psr/cache": "^1 || ^2 || ^3"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/cache": "^1.11 || ^2.0",
|
||||
"doctrine/coding-standard": "^9 || ^10",
|
||||
"phpstan/phpstan": "~1.4.10 || ^1.8.0",
|
||||
"doctrine/cache": "^2.0",
|
||||
"doctrine/coding-standard": "^10",
|
||||
"phpstan/phpstan": "^1.8.0",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||
"symfony/cache": "^4.4 || ^5.4 || ^6",
|
||||
"symfony/cache": "^5.4 || ^6",
|
||||
"vimeo/psalm": "^4.10"
|
||||
},
|
||||
"suggest": {
|
||||
|
@ -604,9 +604,9 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/annotations/issues",
|
||||
"source": "https://github.com/doctrine/annotations/tree/1.14.3"
|
||||
"source": "https://github.com/doctrine/annotations/tree/2.0.1"
|
||||
},
|
||||
"time": "2023-02-01T09:20:38+00:00"
|
||||
"time": "2023-02-02T22:02:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/cache",
|
||||
|
@ -787,97 +787,6 @@
|
|||
],
|
||||
"time": "2024-04-18T06:56:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/common",
|
||||
"version": "3.4.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/common.git",
|
||||
"reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/common/zipball/0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a",
|
||||
"reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/persistence": "^2.0 || ^3.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.4.4"
|
||||
},
|
||||
"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": "2024-04-16T13:35:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/data-fixtures",
|
||||
"version": "1.7.0",
|
||||
|
@ -964,47 +873,42 @@
|
|||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"version": "3.8.4",
|
||||
"version": "4.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/dbal.git",
|
||||
"reference": "b05e48a745f722801f55408d0dbd8003b403dbbd"
|
||||
"reference": "61d79c6e379a39dc1fea6b4e50a23dfc3cd2076a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/b05e48a745f722801f55408d0dbd8003b403dbbd",
|
||||
"reference": "b05e48a745f722801f55408d0dbd8003b403dbbd",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/61d79c6e379a39dc1fea6b4e50a23dfc3cd2076a",
|
||||
"reference": "61d79c6e379a39dc1fea6b4e50a23dfc3cd2076a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-runtime-api": "^2",
|
||||
"doctrine/cache": "^1.11|^2.0",
|
||||
"doctrine/deprecations": "^0.5.3|^1",
|
||||
"doctrine/event-manager": "^1|^2",
|
||||
"php": "^7.4 || ^8.0",
|
||||
"php": "^8.1",
|
||||
"psr/cache": "^1|^2|^3",
|
||||
"psr/log": "^1|^2|^3"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "12.0.0",
|
||||
"fig/log-test": "^1",
|
||||
"jetbrains/phpstorm-stubs": "2023.1",
|
||||
"jetbrains/phpstorm-stubs": "2023.2",
|
||||
"phpstan/phpstan": "1.10.58",
|
||||
"phpstan/phpstan-phpunit": "1.3.15",
|
||||
"phpstan/phpstan-strict-rules": "^1.5",
|
||||
"phpunit/phpunit": "9.6.16",
|
||||
"phpunit/phpunit": "10.5.9",
|
||||
"psalm/plugin-phpunit": "0.18.4",
|
||||
"slevomat/coding-standard": "8.13.1",
|
||||
"squizlabs/php_codesniffer": "3.9.0",
|
||||
"symfony/cache": "^5.4|^6.0|^7.0",
|
||||
"symfony/console": "^4.4|^5.4|^6.0|^7.0",
|
||||
"vimeo/psalm": "4.30.0"
|
||||
"symfony/cache": "^6.3.8|^7.0",
|
||||
"symfony/console": "^5.4|^6.3|^7.0",
|
||||
"vimeo/psalm": "5.21.1"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
||||
},
|
||||
"bin": [
|
||||
"bin/doctrine-dbal"
|
||||
],
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
@ -1057,7 +961,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/dbal/issues",
|
||||
"source": "https://github.com/doctrine/dbal/tree/3.8.4"
|
||||
"source": "https://github.com/doctrine/dbal/tree/4.0.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1073,7 +977,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-04-25T07:04:44+00:00"
|
||||
"time": "2024-04-25T08:29:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
|
@ -1588,28 +1492,27 @@
|
|||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
"version": "2.1.1",
|
||||
"version": "3.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/lexer.git",
|
||||
"reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6"
|
||||
"reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6",
|
||||
"reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
|
||||
"reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/deprecations": "^1.0",
|
||||
"php": "^7.1 || ^8.0"
|
||||
"php": "^8.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^9 || ^12",
|
||||
"phpstan/phpstan": "^1.3",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
|
||||
"doctrine/coding-standard": "^12",
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"phpunit/phpunit": "^10.5",
|
||||
"psalm/plugin-phpunit": "^0.18.3",
|
||||
"vimeo/psalm": "^4.11 || ^5.21"
|
||||
"vimeo/psalm": "^5.21"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
|
@ -1646,7 +1549,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/lexer/issues",
|
||||
"source": "https://github.com/doctrine/lexer/tree/2.1.1"
|
||||
"source": "https://github.com/doctrine/lexer/tree/3.0.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1662,7 +1565,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-02-05T11:35:39+00:00"
|
||||
"time": "2024-02-05T11:56:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/migrations",
|
||||
|
@ -1768,61 +1671,48 @@
|
|||
},
|
||||
{
|
||||
"name": "doctrine/orm",
|
||||
"version": "2.19.5",
|
||||
"version": "3.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/orm.git",
|
||||
"reference": "94986af28452da42a46a4489d1c958a2e5d710e5"
|
||||
"reference": "37946d3a21ddf837c0d84f8156ee60a92102e332"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/orm/zipball/94986af28452da42a46a4489d1c958a2e5d710e5",
|
||||
"reference": "94986af28452da42a46a4489d1c958a2e5d710e5",
|
||||
"url": "https://api.github.com/repos/doctrine/orm/zipball/37946d3a21ddf837c0d84f8156ee60a92102e332",
|
||||
"reference": "37946d3a21ddf837c0d84f8156ee60a92102e332",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-runtime-api": "^2",
|
||||
"doctrine/cache": "^1.12.1 || ^2.1.1",
|
||||
"doctrine/collections": "^1.5 || ^2.1",
|
||||
"doctrine/common": "^3.0.3",
|
||||
"doctrine/dbal": "^2.13.1 || ^3.2",
|
||||
"doctrine/collections": "^2.2",
|
||||
"doctrine/dbal": "^3.8.2 || ^4",
|
||||
"doctrine/deprecations": "^0.5.3 || ^1",
|
||||
"doctrine/event-manager": "^1.2 || ^2",
|
||||
"doctrine/inflector": "^1.4 || ^2.0",
|
||||
"doctrine/instantiator": "^1.3 || ^2",
|
||||
"doctrine/lexer": "^2 || ^3",
|
||||
"doctrine/persistence": "^2.4 || ^3",
|
||||
"doctrine/lexer": "^3",
|
||||
"doctrine/persistence": "^3.3.1",
|
||||
"ext-ctype": "*",
|
||||
"php": "^7.1 || ^8.0",
|
||||
"php": "^8.1",
|
||||
"psr/cache": "^1 || ^2 || ^3",
|
||||
"symfony/console": "^4.2 || ^5.0 || ^6.0 || ^7.0",
|
||||
"symfony/polyfill-php72": "^1.23",
|
||||
"symfony/polyfill-php80": "^1.16"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/annotations": "<1.13 || >= 3.0"
|
||||
"symfony/console": "^5.4 || ^6.0 || ^7.0",
|
||||
"symfony/var-exporter": "^6.3.9 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"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.10.59",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
|
||||
"doctrine/coding-standard": "^12.0",
|
||||
"phpbench/phpbench": "^1.0",
|
||||
"phpstan/phpstan": "1.11.1",
|
||||
"phpunit/phpunit": "^10.4.0",
|
||||
"psr/log": "^1 || ^2 || ^3",
|
||||
"squizlabs/php_codesniffer": "3.7.2",
|
||||
"symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^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",
|
||||
"vimeo/psalm": "4.30.0 || 5.22.2"
|
||||
"symfony/cache": "^5.4 || ^6.2 || ^7.0",
|
||||
"vimeo/psalm": "5.24.0"
|
||||
},
|
||||
"suggest": {
|
||||
"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/yaml": "If you want to use YAML Metadata Mapping Driver"
|
||||
"symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/doctrine"
|
||||
],
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
@ -1863,9 +1753,9 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/orm/issues",
|
||||
"source": "https://github.com/doctrine/orm/tree/2.19.5"
|
||||
"source": "https://github.com/doctrine/orm/tree/3.2.0"
|
||||
},
|
||||
"time": "2024-04-30T06:49:54+00:00"
|
||||
"time": "2024-05-23T14:27:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/persistence",
|
||||
|
@ -2634,7 +2524,7 @@
|
|||
},
|
||||
{
|
||||
"name": "gregwar/captcha-bundle",
|
||||
"version": "v2.2.1",
|
||||
"version": "v2.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Gregwar/CaptchaBundle.git",
|
||||
|
@ -2695,7 +2585,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Gregwar/CaptchaBundle/issues",
|
||||
"source": "https://github.com/Gregwar/CaptchaBundle/tree/v2.2.1"
|
||||
"source": "https://github.com/Gregwar/CaptchaBundle/tree/v2.3.0"
|
||||
},
|
||||
"time": "2024-06-06T13:14:57+00:00"
|
||||
},
|
||||
|
@ -11976,16 +11866,16 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/stimulus-bundle",
|
||||
"version": "v2.17.0",
|
||||
"version": "v2.18.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/stimulus-bundle.git",
|
||||
"reference": "b828a32fe9f75500d26b563cc01874657162c413"
|
||||
"reference": "9323437da427e123d8f9b76b19fa9a60a76d45a0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/b828a32fe9f75500d26b563cc01874657162c413",
|
||||
"reference": "b828a32fe9f75500d26b563cc01874657162c413",
|
||||
"url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/9323437da427e123d8f9b76b19fa9a60a76d45a0",
|
||||
"reference": "9323437da427e123d8f9b76b19fa9a60a76d45a0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -12025,7 +11915,7 @@
|
|||
"symfony-ux"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/stimulus-bundle/tree/v2.17.0"
|
||||
"source": "https://github.com/symfony/stimulus-bundle/tree/v2.18.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -12041,7 +11931,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-04-21T10:23:35+00:00"
|
||||
"time": "2024-06-01T17:50:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/stopwatch",
|
||||
|
@ -12633,16 +12523,16 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/ux-translator",
|
||||
"version": "v2.17.0",
|
||||
"version": "v2.18.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/ux-translator.git",
|
||||
"reference": "93ad2ca9725e4eb66d64f909c321cc16fafc7b15"
|
||||
"reference": "bacc23ca4db239f4c6b24af6bb97136edc1f0b7d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/ux-translator/zipball/93ad2ca9725e4eb66d64f909c321cc16fafc7b15",
|
||||
"reference": "93ad2ca9725e4eb66d64f909c321cc16fafc7b15",
|
||||
"url": "https://api.github.com/repos/symfony/ux-translator/zipball/bacc23ca4db239f4c6b24af6bb97136edc1f0b7d",
|
||||
"reference": "bacc23ca4db239f4c6b24af6bb97136edc1f0b7d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -12689,7 +12579,7 @@
|
|||
"symfony-ux"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/ux-translator/tree/v2.17.0"
|
||||
"source": "https://github.com/symfony/ux-translator/tree/v2.18.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -12705,20 +12595,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-04-19T06:36:45+00:00"
|
||||
"time": "2024-06-01T17:50:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/ux-turbo",
|
||||
"version": "v2.17.0",
|
||||
"version": "v2.18.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/ux-turbo.git",
|
||||
"reference": "7093e20d7ca599902a7d1bf4d831849fd78befdb"
|
||||
"reference": "e447231ddcc09ab68d29047f47d31a524837dc7a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/ux-turbo/zipball/7093e20d7ca599902a7d1bf4d831849fd78befdb",
|
||||
"reference": "7093e20d7ca599902a7d1bf4d831849fd78befdb",
|
||||
"url": "https://api.github.com/repos/symfony/ux-turbo/zipball/e447231ddcc09ab68d29047f47d31a524837dc7a",
|
||||
"reference": "e447231ddcc09ab68d29047f47d31a524837dc7a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -12729,6 +12619,7 @@
|
|||
"symfony/flex": "<1.13"
|
||||
},
|
||||
"require-dev": {
|
||||
"dbrekelmans/bdi": "dev-main",
|
||||
"doctrine/doctrine-bundle": "^2.4.3",
|
||||
"doctrine/orm": "^2.8 | 3.0",
|
||||
"phpstan/phpstan": "^1.10",
|
||||
|
@ -12785,7 +12676,7 @@
|
|||
"turbo-stream"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/ux-turbo/tree/v2.17.0"
|
||||
"source": "https://github.com/symfony/ux-turbo/tree/v2.18.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -12801,7 +12692,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-04-22T13:58:54+00:00"
|
||||
"time": "2024-06-01T17:56:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/validator",
|
||||
|
@ -15816,16 +15707,16 @@
|
|||
},
|
||||
{
|
||||
"name": "phpstan/phpstan-doctrine",
|
||||
"version": "1.4.1",
|
||||
"version": "1.4.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpstan-doctrine.git",
|
||||
"reference": "a223e357c5f153b446b8a5da57dbc1132eb7a88d"
|
||||
"reference": "dd27a3e83777ba0d9e9cedfaf4ebf95ff67b271f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/a223e357c5f153b446b8a5da57dbc1132eb7a88d",
|
||||
"reference": "a223e357c5f153b446b8a5da57dbc1132eb7a88d",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/dd27a3e83777ba0d9e9cedfaf4ebf95ff67b271f",
|
||||
"reference": "dd27a3e83777ba0d9e9cedfaf4ebf95ff67b271f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -15882,9 +15773,9 @@
|
|||
"description": "Doctrine extensions for PHPStan",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpstan-doctrine/issues",
|
||||
"source": "https://github.com/phpstan/phpstan-doctrine/tree/1.4.1"
|
||||
"source": "https://github.com/phpstan/phpstan-doctrine/tree/1.4.3"
|
||||
},
|
||||
"time": "2024-05-28T15:37:29+00:00"
|
||||
"time": "2024-06-08T05:48:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan-strict-rules",
|
||||
|
@ -15937,16 +15828,16 @@
|
|||
},
|
||||
{
|
||||
"name": "phpstan/phpstan-symfony",
|
||||
"version": "1.4.3",
|
||||
"version": "1.4.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpstan-symfony.git",
|
||||
"reference": "af6ae0f4b91bc080265e80776af26da3e5befb28"
|
||||
"reference": "bca27f1701fc1a297749e6c2a1e3da4462c1a6af"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/af6ae0f4b91bc080265e80776af26da3e5befb28",
|
||||
"reference": "af6ae0f4b91bc080265e80776af26da3e5befb28",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/bca27f1701fc1a297749e6c2a1e3da4462c1a6af",
|
||||
"reference": "bca27f1701fc1a297749e6c2a1e3da4462c1a6af",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -16003,9 +15894,9 @@
|
|||
"description": "Symfony Framework extensions and rules for PHPStan",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpstan-symfony/issues",
|
||||
"source": "https://github.com/phpstan/phpstan-symfony/tree/1.4.3"
|
||||
"source": "https://github.com/phpstan/phpstan-symfony/tree/1.4.4"
|
||||
},
|
||||
"time": "2024-05-30T15:01:27+00:00"
|
||||
"time": "2024-06-07T09:43:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
|
@ -16431,23 +16322,23 @@
|
|||
},
|
||||
{
|
||||
"name": "psalm/plugin-symfony",
|
||||
"version": "v5.04",
|
||||
"version": "v5.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/psalm/psalm-plugin-symfony.git",
|
||||
"reference": "2a3f81e62278f488a21b70603df4cfb845af70ad"
|
||||
"reference": "0fe09bf25cb64deef73e8eab7be89f9401d2f5b8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/psalm/psalm-plugin-symfony/zipball/2a3f81e62278f488a21b70603df4cfb845af70ad",
|
||||
"reference": "2a3f81e62278f488a21b70603df4cfb845af70ad",
|
||||
"url": "https://api.github.com/repos/psalm/psalm-plugin-symfony/zipball/0fe09bf25cb64deef73e8eab7be89f9401d2f5b8",
|
||||
"reference": "0fe09bf25cb64deef73e8eab7be89f9401d2f5b8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-simplexml": "*",
|
||||
"php": "^7.4 || ^8.0",
|
||||
"symfony/framework-bundle": "^5.0 || ^6.0",
|
||||
"vimeo/psalm": "^5.1"
|
||||
"php": "^8.1",
|
||||
"symfony/framework-bundle": "^5.0 || ^6.0 || ^7.0",
|
||||
"vimeo/psalm": "^5.24"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "^1.8|^2",
|
||||
|
@ -16455,10 +16346,10 @@
|
|||
"phpunit/phpunit": "~7.5 || ~9.5",
|
||||
"symfony/cache-contracts": "^1.0 || ^2.0",
|
||||
"symfony/console": "*",
|
||||
"symfony/form": "^5.0 || ^6.0",
|
||||
"symfony/messenger": "^5.0 || ^6.0",
|
||||
"symfony/security-guard": "*",
|
||||
"symfony/serializer": "^5.0 || ^6.0",
|
||||
"symfony/form": "^5.0 || ^6.0 || ^7.0",
|
||||
"symfony/messenger": "^5.0 || ^6.0 || ^7.0",
|
||||
"symfony/security-core": "*",
|
||||
"symfony/serializer": "^5.0 || ^6.0 || ^7.0",
|
||||
"symfony/validator": "*",
|
||||
"twig/twig": "^2.10 || ^3.0",
|
||||
"weirdan/codeception-psalm-module": "dev-master"
|
||||
|
@ -16490,9 +16381,9 @@
|
|||
"description": "Psalm Plugin for Symfony",
|
||||
"support": {
|
||||
"issues": "https://github.com/psalm/psalm-plugin-symfony/issues",
|
||||
"source": "https://github.com/psalm/psalm-plugin-symfony/tree/v5.04"
|
||||
"source": "https://github.com/psalm/psalm-plugin-symfony/tree/v5.2.1"
|
||||
},
|
||||
"time": "2023-11-10T07:14:46+00:00"
|
||||
"time": "2024-06-05T21:20:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rector/rector",
|
||||
|
@ -16556,12 +16447,12 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Roave/SecurityAdvisories.git",
|
||||
"reference": "01c19f1a89daf51e8355cc0b7e3113d5274929b5"
|
||||
"reference": "cde5826457b1afd988a50206946cf6512b75ac7c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/01c19f1a89daf51e8355cc0b7e3113d5274929b5",
|
||||
"reference": "01c19f1a89daf51e8355cc0b7e3113d5274929b5",
|
||||
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/cde5826457b1afd988a50206946cf6512b75ac7c",
|
||||
"reference": "cde5826457b1afd988a50206946cf6512b75ac7c",
|
||||
"shasum": ""
|
||||
},
|
||||
"conflict": {
|
||||
|
@ -16570,7 +16461,7 @@
|
|||
"adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3",
|
||||
"aheinze/cockpit": "<2.2",
|
||||
"aimeos/ai-client-html": ">=2020.04.1,<2020.10.27|>=2021.04.1,<2021.10.21|>=2022.04.1,<2022.10.12|>=2023.04.1,<2023.10.14|>=2024.04.1,<2024.04.4",
|
||||
"aimeos/aimeos-core": ">=2022.04.1,<2022.10.17|>=2023.04.1,<2023.10.17|>=2024.04.1,<2024.04.7",
|
||||
"aimeos/aimeos-core": "<2024.04.7",
|
||||
"aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5",
|
||||
"airesvsg/acf-to-rest-api": "<=3.1",
|
||||
"akaunting/akaunting": "<2.1.13",
|
||||
|
@ -16621,6 +16512,7 @@
|
|||
"bmarshall511/wordpress_zero_spam": "<5.2.13",
|
||||
"bolt/bolt": "<3.7.2",
|
||||
"bolt/core": "<=4.2",
|
||||
"born05/craft-twofactorauthentication": "<3.3.4",
|
||||
"bottelet/flarepoint": "<2.2.1",
|
||||
"bref/bref": "<2.1.17",
|
||||
"brightlocal/phpwhois": "<=4.2.5",
|
||||
|
@ -16772,7 +16664,7 @@
|
|||
"funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3",
|
||||
"gaoming13/wechat-php-sdk": "<=1.10.2",
|
||||
"genix/cms": "<=1.1.11",
|
||||
"getformwork/formwork": "<1.13",
|
||||
"getformwork/formwork": "<1.13.1|==2.0.0.0-beta1",
|
||||
"getgrav/grav": "<1.7.46",
|
||||
"getkirby/cms": "<4.1.1",
|
||||
"getkirby/kirby": "<=2.5.12",
|
||||
|
@ -17121,6 +17013,7 @@
|
|||
"studio-42/elfinder": "<2.1.62",
|
||||
"subhh/libconnect": "<7.0.8|>=8,<8.1",
|
||||
"sukohi/surpass": "<1",
|
||||
"sulu/form-bundle": ">=2,<2.5.3",
|
||||
"sulu/sulu": "<1.6.44|>=2,<2.4.17|>=2.5,<2.5.13",
|
||||
"sumocoders/framework-user-bundle": "<1.4",
|
||||
"superbig/craft-audit": "<3.0.2",
|
||||
|
@ -17290,7 +17183,7 @@
|
|||
"zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3",
|
||||
"zendframework/zend-mail": "<2.4.11|>=2.5,<2.7.2",
|
||||
"zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1",
|
||||
"zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4",
|
||||
"zendframework/zend-session": ">=2,<2.2.9|>=2.3,<2.3.4",
|
||||
"zendframework/zend-validator": ">=2.3,<2.3.6",
|
||||
"zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1",
|
||||
"zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6",
|
||||
|
@ -17349,7 +17242,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-06-05T14:05:01+00:00"
|
||||
"time": "2024-06-07T22:04:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
|
|
|
@ -17,6 +17,10 @@ doctrine:
|
|||
class: App\Doctrine\Types\BigDecimalType
|
||||
tinyint:
|
||||
class: App\Doctrine\Types\TinyIntType
|
||||
|
||||
# This was removed in doctrine/orm 4.0 but we need it for the WebauthnKey entity
|
||||
array:
|
||||
class: App\Doctrine\Types\ArrayType
|
||||
|
||||
schema_filter: ~^(?!internal)~
|
||||
# Only enable this when needed
|
||||
|
|
|
@ -5,7 +5,7 @@ declare(strict_types=1);
|
|||
namespace App\Command;
|
||||
|
||||
use Symfony\Component\Console\Attribute\AsCommand;
|
||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||
use Doctrine\DBAL\Platforms\SQLitePlatform;
|
||||
use Doctrine\DBAL\Platforms\AbstractMySQLPlatform;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use PhpZip\Constants\ZipCompressionMethod;
|
||||
|
@ -157,7 +157,7 @@ class BackupCommand extends Command
|
|||
$io->error('Could not dump database: '.$e->getMessage());
|
||||
$io->error('This can maybe be fixed by installing the mysqldump binary and adding it to the PATH variable!');
|
||||
}
|
||||
} elseif ($connection->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||
} elseif ($connection->getDatabasePlatform() instanceof SQLitePlatform) {
|
||||
$io->note('SQLite database detected. Copy DB file to ZIP...');
|
||||
$params = $connection->getParams();
|
||||
$zip->addFile($params['path'], 'var/app.db');
|
||||
|
|
|
@ -75,7 +75,7 @@ class APITokenFixtures extends Fixture implements DependentFixtureInterface
|
|||
$expired_token->setUser($admin_user);
|
||||
$expired_token->setLevel(ApiTokenLevel::FULL);
|
||||
$expired_token->setName('expired');
|
||||
$expired_token->setValidUntil(new \DateTimeImmutable('-1 day'));
|
||||
$expired_token->setValidUntil(new \DateTime('-1 day'));
|
||||
$this->setTokenSecret($expired_token, self::TOKEN_EXPIRED);
|
||||
$manager->persist($expired_token);
|
||||
|
||||
|
|
|
@ -50,6 +50,6 @@ class CustomFetchJoinORMAdapter extends FetchJoinORMAdapter
|
|||
|
||||
$paginator = new Paginator($qb_without_group_by);
|
||||
|
||||
return $paginator->count() ?? 0;
|
||||
return $paginator->count();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ class Field2 extends FunctionNode
|
|||
$lexer = $parser->getLexer();
|
||||
|
||||
while (count($this->values) < 1 ||
|
||||
$lexer->lookahead['type'] != TokenType::T_CLOSE_PARENTHESIS) {
|
||||
$lexer->lookahead->type !== TokenType::T_CLOSE_PARENTHESIS) {
|
||||
$parser->match(TokenType::T_COMMA);
|
||||
$this->values[] = $parser->ArithmeticPrimary();
|
||||
}
|
||||
|
|
|
@ -27,7 +27,6 @@ use Composer\CaBundle\CaBundle;
|
|||
use Doctrine\DBAL\Driver;
|
||||
use Doctrine\DBAL\Driver\Connection;
|
||||
use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware;
|
||||
use Doctrine\DBAL\Platforms\AbstractMySQLPlatform;
|
||||
|
||||
/**
|
||||
* This middleware sets SSL options for MySQL connections
|
||||
|
@ -42,7 +41,7 @@ class MySQLSSLConnectionMiddlewareDriver extends AbstractDriverMiddleware
|
|||
public function connect(array $params): Connection
|
||||
{
|
||||
//Only set this on MySQL connections, as other databases don't support this parameter
|
||||
if($this->enabled && $this->getDatabasePlatform() instanceof AbstractMySQLPlatform) {
|
||||
if($this->enabled && $params['driver'] === 'pdo_mysql') {
|
||||
$params['driverOptions'][\PDO::MYSQL_ATTR_SSL_CA] = CaBundle::getSystemCaRootBundlePath();
|
||||
$params['driverOptions'][\PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = $this->verify;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@ namespace App\Doctrine\Middleware;
|
|||
use App\Exceptions\InvalidRegexException;
|
||||
use Doctrine\DBAL\Driver\Connection;
|
||||
use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware;
|
||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||
|
||||
/**
|
||||
* This middleware is used to add the regexp operator to the SQLite platform.
|
||||
|
@ -41,7 +40,7 @@ class SQLiteRegexExtensionMiddlewareDriver extends AbstractDriverMiddleware
|
|||
$connection = parent::connect($params); // TODO: Change the autogenerated stub
|
||||
|
||||
//Then add the functions if we are on SQLite
|
||||
if ($this->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||
if ($params['driver'] === 'pdo_sqlite') {
|
||||
$native_connection = $connection->getNativeConnection();
|
||||
|
||||
//Ensure that the function really exists on the connection, as it is marked as experimental according to PHP documentation
|
||||
|
|
|
@ -24,7 +24,6 @@ namespace App\Doctrine\Middleware;
|
|||
|
||||
use Doctrine\DBAL\Driver\Connection;
|
||||
use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware;
|
||||
use Doctrine\DBAL\Platforms\AbstractMySQLPlatform;
|
||||
|
||||
/**
|
||||
* This command sets the initial command parameter for MySQL connections, so we can set the SQL mode
|
||||
|
@ -35,7 +34,7 @@ class SetSQLModeMiddlewareDriver extends AbstractDriverMiddleware
|
|||
public function connect(array $params): Connection
|
||||
{
|
||||
//Only set this on MySQL connections, as other databases don't support this parameter
|
||||
if($this->getDatabasePlatform() instanceof AbstractMySQLPlatform) {
|
||||
if($params['driver'] === 'pdo_mysql') {
|
||||
//1002 is \PDO::MYSQL_ATTR_INIT_COMMAND constant value
|
||||
$params['driverOptions'][\PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode, \'ONLY_FULL_GROUP_BY\', \'\'))';
|
||||
}
|
||||
|
|
|
@ -31,8 +31,6 @@ use Doctrine\DBAL\Schema\Identifier;
|
|||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||
|
||||
use Doctrine\ORM\Mapping\ClassMetadataInfo;
|
||||
|
||||
use function array_reverse;
|
||||
use function assert;
|
||||
use function count;
|
||||
|
@ -207,6 +205,8 @@ class ResetAutoIncrementORMPurger implements PurgerInterface, ORMPurgerInterface
|
|||
return 'ALTER TABLE '.$tableIdentifier->getQuotedName($platform).' AUTO_INCREMENT = 1;';
|
||||
}
|
||||
|
||||
throw new \RuntimeException("Resetting autoincrement is not supported on this platform!");
|
||||
|
||||
//This seems to cause problems somehow
|
||||
/*if ($platform instanceof SqlitePlatform) {
|
||||
return 'DELETE FROM `sqlite_sequence` WHERE name = \''.$tableIdentifier->getQuotedName($platform).'\';';
|
||||
|
@ -278,7 +278,7 @@ class ResetAutoIncrementORMPurger implements PurgerInterface, ORMPurgerInterface
|
|||
|
||||
foreach ($classes as $class) {
|
||||
foreach ($class->associationMappings as $assoc) {
|
||||
if (! $assoc['isOwningSide'] || $assoc['type'] !== ClassMetadataInfo::MANY_TO_MANY) {
|
||||
if (! $assoc['isOwningSide'] || $assoc['type'] !== ClassMetadata::MANY_TO_MANY) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
116
src/Doctrine/Types/ArrayType.php
Normal file
116
src/Doctrine/Types/ArrayType.php
Normal file
|
@ -0,0 +1,116 @@
|
|||
<?php
|
||||
/*
|
||||
* This file is part of Part-DB (https://github.com/Part-DB/Part-DB-symfony).
|
||||
*
|
||||
* Copyright (C) 2019 - 2024 Jan Böhmer (https://github.com/jbtronics)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published
|
||||
* by the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Doctrine\Types;
|
||||
|
||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
use Doctrine\DBAL\Types\Exception\SerializationFailed;
|
||||
use Doctrine\DBAL\Types\Type;
|
||||
use Doctrine\Deprecations\Deprecation;
|
||||
|
||||
use function is_resource;
|
||||
use function restore_error_handler;
|
||||
use function serialize;
|
||||
use function set_error_handler;
|
||||
use function stream_get_contents;
|
||||
use function unserialize;
|
||||
|
||||
use const E_DEPRECATED;
|
||||
use const E_USER_DEPRECATED;
|
||||
|
||||
/**
|
||||
* This class is taken from doctrine ORM 3.8. https://github.com/doctrine/dbal/blob/3.8.x/src/Types/ArrayType.php
|
||||
*
|
||||
* It was removed in doctrine ORM 4.0. However, we require it for backward compatibility with WebauthnKey.
|
||||
* Therefore, we manually added it here as a custom type as a forward compatibility layer.
|
||||
*/
|
||||
class ArrayType extends Type
|
||||
{
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function getSQLDeclaration(array $column, AbstractPlatform $platform): string
|
||||
{
|
||||
return $platform->getClobTypeDeclarationSQL($column);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function convertToDatabaseValue(mixed $value, AbstractPlatform $platform): string
|
||||
{
|
||||
return serialize($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function convertToPHPValue(mixed $value, AbstractPlatform $platform): mixed
|
||||
{
|
||||
if ($value === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$value = is_resource($value) ? stream_get_contents($value) : $value;
|
||||
|
||||
set_error_handler(function (int $code, string $message): bool {
|
||||
if ($code === E_DEPRECATED || $code === E_USER_DEPRECATED) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//Change to original code. Use SerializationFailed instead of ConversionException.
|
||||
throw new SerializationFailed("Serialization failed (Code $code): " . $message);
|
||||
});
|
||||
|
||||
try {
|
||||
//Change to original code. Use false for allowed_classes, to avoid unsafe unserialization of objects.
|
||||
return unserialize($value, ['allowed_classes' => false]);
|
||||
} finally {
|
||||
restore_error_handler();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return "array";
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public function requiresSQLCommentHint(AbstractPlatform $platform): bool
|
||||
{
|
||||
Deprecation::triggerIfCalledFromOutside(
|
||||
'doctrine/dbal',
|
||||
'https://github.com/doctrine/dbal/pull/5509',
|
||||
'%s is deprecated.',
|
||||
__METHOD__,
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -24,7 +24,7 @@ namespace App\Doctrine\Types;
|
|||
|
||||
use Doctrine\DBAL\Platforms\AbstractMySQLPlatform;
|
||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||
use Doctrine\DBAL\Platforms\SQLitePlatform;
|
||||
use Doctrine\DBAL\Types\Type;
|
||||
|
||||
/**
|
||||
|
@ -36,7 +36,7 @@ class TinyIntType extends Type
|
|||
public function getSQLDeclaration(array $column, AbstractPlatform $platform): string
|
||||
{
|
||||
//MySQL and SQLite know the TINYINT type directly
|
||||
if ($platform instanceof AbstractMySQLPlatform || $platform instanceof SqlitePlatform) {
|
||||
if ($platform instanceof AbstractMySQLPlatform || $platform instanceof SQLitePlatform) {
|
||||
return 'TINYINT';
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ use DateTimeZone;
|
|||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
use Doctrine\DBAL\Types\ConversionException;
|
||||
use Doctrine\DBAL\Types\DateTimeType;
|
||||
use Doctrine\DBAL\Types\Exception\InvalidFormat;
|
||||
|
||||
/**
|
||||
* This DateTimeType all dates to UTC, so it can be later used with the timezones.
|
||||
|
@ -64,11 +65,9 @@ class UTCDateTimeType extends DateTimeType
|
|||
*
|
||||
* @param T $value
|
||||
*
|
||||
* @return (T is null ? null : DateTimeInterface)
|
||||
*
|
||||
* @template T
|
||||
*/
|
||||
public function convertToPHPValue($value, AbstractPlatform $platform): ?\DateTimeInterface
|
||||
public function convertToPHPValue($value, AbstractPlatform $platform): ?DateTime
|
||||
{
|
||||
if (!self::$utc_timezone instanceof \DateTimeZone) {
|
||||
self::$utc_timezone = new DateTimeZone('UTC');
|
||||
|
@ -85,7 +84,11 @@ class UTCDateTimeType extends DateTimeType
|
|||
);
|
||||
|
||||
if (!$converted) {
|
||||
throw ConversionException::conversionFailedFormat($value, $this->getName(), $platform->getDateTimeFormatString());
|
||||
throw InvalidFormat::new(
|
||||
$value,
|
||||
static::class,
|
||||
$platform->getDateTimeFormatString(),
|
||||
);
|
||||
}
|
||||
|
||||
return $converted;
|
||||
|
|
|
@ -41,9 +41,9 @@ class OAuthToken extends AbstractNamedDBElement implements AccessTokenInterface
|
|||
#[ORM\Column(type: 'text', nullable: true)]
|
||||
private ?string $token = null;
|
||||
|
||||
/** @var \DateTimeInterface The date when the token expires */
|
||||
/** @var \DateTimeImmutable|null The date when the token expires */
|
||||
#[ORM\Column(type: Types::DATETIME_IMMUTABLE, nullable: true)]
|
||||
private ?\DateTimeInterface $expires_at = null;
|
||||
private ?\DateTimeImmutable $expires_at = null;
|
||||
|
||||
/** @var string|null The refresh token for the OAuth2 auth */
|
||||
#[ORM\Column(type: 'text', nullable: true)]
|
||||
|
@ -54,7 +54,7 @@ class OAuthToken extends AbstractNamedDBElement implements AccessTokenInterface
|
|||
*/
|
||||
private const DEFAULT_EXPIRATION_TIME = 3600;
|
||||
|
||||
public function __construct(string $name, ?string $refresh_token, ?string $token = null, \DateTimeInterface $expires_at = null)
|
||||
public function __construct(string $name, ?string $refresh_token, ?string $token = null, \DateTimeImmutable $expires_at = null)
|
||||
{
|
||||
//If token is given, you also have to give the expires_at date
|
||||
if ($token !== null && $expires_at === null) {
|
||||
|
@ -82,7 +82,7 @@ class OAuthToken extends AbstractNamedDBElement implements AccessTokenInterface
|
|||
);
|
||||
}
|
||||
|
||||
private static function unixTimestampToDatetime(int $timestamp): \DateTimeInterface
|
||||
private static function unixTimestampToDatetime(int $timestamp): \DateTimeImmutable
|
||||
{
|
||||
return \DateTimeImmutable::createFromFormat('U', (string)$timestamp);
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ class ApiToken implements TimeStampableInterface
|
|||
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
|
||||
#[Groups('token:read')]
|
||||
#[Year2038BugWorkaround]
|
||||
private ?\DateTimeInterface $valid_until;
|
||||
private ?\DateTime $valid_until;
|
||||
|
||||
#[ORM\Column(length: 68, unique: true)]
|
||||
private string $token;
|
||||
|
@ -89,7 +89,7 @@ class ApiToken implements TimeStampableInterface
|
|||
|
||||
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
|
||||
#[Groups('token:read')]
|
||||
private ?\DateTimeInterface $last_time_used = null;
|
||||
private ?\DateTime $last_time_used = null;
|
||||
|
||||
public function __construct(ApiTokenType $tokenType = ApiTokenType::PERSONAL_ACCESS_TOKEN)
|
||||
{
|
||||
|
@ -130,7 +130,7 @@ class ApiToken implements TimeStampableInterface
|
|||
return $this->valid_until === null || $this->valid_until > new \DateTime();
|
||||
}
|
||||
|
||||
public function setValidUntil(?\DateTimeInterface $valid_until): ApiToken
|
||||
public function setValidUntil(?\DateTime $valid_until): ApiToken
|
||||
{
|
||||
$this->valid_until = $valid_until;
|
||||
return $this;
|
||||
|
@ -168,10 +168,10 @@ class ApiToken implements TimeStampableInterface
|
|||
|
||||
/**
|
||||
* Sets the last time the token was used to authenticate.
|
||||
* @param \DateTimeInterface|null $last_time_used
|
||||
* @param \DateTime|null $last_time_used
|
||||
* @return ApiToken
|
||||
*/
|
||||
public function setLastTimeUsed(?\DateTimeInterface $last_time_used): ApiToken
|
||||
public function setLastTimeUsed(?\DateTime $last_time_used): ApiToken
|
||||
{
|
||||
$this->last_time_used = $last_time_used;
|
||||
return $this;
|
||||
|
|
|
@ -26,7 +26,7 @@ use Doctrine\DBAL\Connection;
|
|||
use Doctrine\DBAL\Exception;
|
||||
use Doctrine\DBAL\Platforms\AbstractMySQLPlatform;
|
||||
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
|
||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||
use Doctrine\DBAL\Platforms\SQLitePlatform;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
@ -166,7 +166,7 @@ abstract class AbstractMultiPlatformMigration extends AbstractMigration
|
|||
return 'mysql';
|
||||
}
|
||||
|
||||
if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||
if ($this->connection->getDatabasePlatform() instanceof SQLitePlatform) {
|
||||
return 'sqlite';
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace App\Repository;
|
|||
|
||||
use App\Doctrine\Helpers\FieldHelper;
|
||||
use App\Entity\Attachments\AttachmentContainingDBElement;
|
||||
use Doctrine\ORM\Mapping\ClassMetadataInfo;
|
||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||
|
||||
/**
|
||||
* @template TEntityClass of AttachmentContainingDBElement
|
||||
|
@ -70,7 +70,7 @@ class AttachmentContainingDBElementRepository extends NamedDBElementRepository
|
|||
|
||||
$q = $qb->getQuery();
|
||||
|
||||
$q->setFetchMode($this->getEntityName(), 'master_picture_attachment', ClassMetadataInfo::FETCH_EAGER);
|
||||
$q->setFetchMode($this->getEntityName(), 'master_picture_attachment', ClassMetadata::FETCH_EAGER);
|
||||
|
||||
$result = $q->getResult();
|
||||
|
||||
|
|
|
@ -85,10 +85,8 @@ class LogEntryRepository extends DBElementRepository
|
|||
->orderBy('log.timestamp', 'DESC')
|
||||
->setMaxResults(1);
|
||||
|
||||
$qb->setParameters([
|
||||
'target_type' => LogTargetType::fromElementClass($class),
|
||||
'target_id' => $id,
|
||||
]);
|
||||
$qb->setParameter('target_type', LogTargetType::fromElementClass($class));
|
||||
$qb->setParameter('target_id', $id);
|
||||
|
||||
$query = $qb->getQuery();
|
||||
|
||||
|
@ -121,11 +119,10 @@ class LogEntryRepository extends DBElementRepository
|
|||
->andWhere('log.timestamp >= :until')
|
||||
->orderBy('log.timestamp', 'DESC');
|
||||
|
||||
$qb->setParameters([
|
||||
'target_type' => LogTargetType::fromElementClass($element),
|
||||
'target_id' => $element->getID(),
|
||||
'until' => $until,
|
||||
]);
|
||||
$qb->setParameter('target_type', LogTargetType::fromElementClass($element));
|
||||
$qb->setParameter('target_id', $element->getID());
|
||||
$qb->setParameter('until', $until);
|
||||
|
||||
|
||||
$query = $qb->getQuery();
|
||||
|
||||
|
@ -147,11 +144,9 @@ class LogEntryRepository extends DBElementRepository
|
|||
->andWhere('log.timestamp >= :until')
|
||||
->orderBy('log.timestamp', 'DESC');
|
||||
|
||||
$qb->setParameters([
|
||||
'target_type' => LogTargetType::fromElementClass($element),
|
||||
'target_id' => $element->getID(),
|
||||
'until' => $timestamp,
|
||||
]);
|
||||
$qb->setParameter('target_type', LogTargetType::fromElementClass($element));
|
||||
$qb->setParameter('target_id', $element->getID());
|
||||
$qb->setParameter('until', $timestamp);
|
||||
|
||||
$query = $qb->getQuery();
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
@ -232,10 +227,8 @@ class LogEntryRepository extends DBElementRepository
|
|||
->andWhere('log.target_id = :target_id')
|
||||
->orderBy('log.timestamp', 'DESC');
|
||||
|
||||
$qb->setParameters([
|
||||
'target_type' => LogTargetType::fromElementClass($element),
|
||||
'target_id' => $element->getID(),
|
||||
]);
|
||||
$qb->setParameter('target_type', LogTargetType::fromElementClass($element));
|
||||
$qb->setParameter('target_id', $element->getID());
|
||||
|
||||
$query = $qb->getQuery();
|
||||
$query->setMaxResults(1);
|
||||
|
|
|
@ -23,7 +23,9 @@ declare(strict_types=1);
|
|||
namespace App\Repository;
|
||||
|
||||
use App\Entity\UserSystem\User;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\ORM\NonUniqueResultException;
|
||||
use Doctrine\ORM\Query\Parameter;
|
||||
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
|
||||
use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
|
@ -97,10 +99,8 @@ final class UserRepository extends NamedDBElementRepository implements PasswordU
|
|||
->where('u.name = (:name)')
|
||||
->orWhere('u.email = (:email)');
|
||||
|
||||
$qb->setParameters([
|
||||
'email' => $name_or_password,
|
||||
'name' => $name_or_password,
|
||||
]);
|
||||
$qb->setParameter('email', $name_or_password);
|
||||
$qb->setParameter('name', $name_or_password);
|
||||
|
||||
try {
|
||||
return $qb->getQuery()->getOneOrNullResult();
|
||||
|
|
|
@ -75,7 +75,7 @@ class ApiTokenAuthenticator implements AuthenticatorInterface
|
|||
|
||||
$old_time = $token->getLastTimeUsed();
|
||||
//Set the last used date of the token
|
||||
$token->setLastTimeUsed(new \DateTimeImmutable());
|
||||
$token->setLastTimeUsed(new \DateTime());
|
||||
//Only flush the token if the last used date change is more than 10 minutes
|
||||
//For performance reasons we don't want to flush the token every time it is used, but only if it is used more than 10 minutes after the last time it was used
|
||||
//If a flush is later in the code we don't want to flush the token again
|
||||
|
|
|
@ -30,7 +30,7 @@ use App\Entity\Base\AbstractDBElement;
|
|||
use App\Entity\Base\AbstractStructuralDBElement;
|
||||
use App\Entity\Contracts\TimeStampableInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Doctrine\ORM\Mapping\ClassMetadataInfo;
|
||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||
use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
|
||||
|
||||
/**
|
||||
|
@ -212,7 +212,7 @@ trait PKImportHelperTrait
|
|||
$id = (int) $id;
|
||||
|
||||
$metadata = $this->em->getClassMetadata($element::class);
|
||||
$metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_NONE);
|
||||
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||
$metadata->setIdGenerator(new AssignedGenerator());
|
||||
$metadata->setIdentifierValues($element, ['id' => $id]);
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ use Brick\Math\BigDecimal;
|
|||
use DateTime;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Doctrine\ORM\Mapping\ClassMetadataInfo;
|
||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||
use Doctrine\ORM\Mapping\MappingException;
|
||||
use Exception;
|
||||
use InvalidArgumentException;
|
||||
|
@ -136,16 +136,16 @@ class TimeTravel
|
|||
|
||||
//Revert many-to-one association (one element in property)
|
||||
if (
|
||||
ClassMetadataInfo::MANY_TO_ONE === $mapping['type']
|
||||
|| ClassMetadataInfo::ONE_TO_ONE === $mapping['type']
|
||||
ClassMetadata::MANY_TO_ONE === $mapping['type']
|
||||
|| ClassMetadata::ONE_TO_ONE === $mapping['type']
|
||||
) {
|
||||
$target_element = $this->getField($element, $field);
|
||||
if (null !== $target_element && $element->getLastModified() > $timestamp) {
|
||||
$this->revertEntityToTimestamp($target_element, $timestamp, $reverted_elements);
|
||||
}
|
||||
} elseif ( //Revert *_TO_MANY associations (collection properties)
|
||||
(ClassMetadataInfo::MANY_TO_MANY === $mapping['type']
|
||||
|| ClassMetadataInfo::ONE_TO_MANY === $mapping['type'])
|
||||
(ClassMetadata::MANY_TO_MANY === $mapping['type']
|
||||
|| ClassMetadata::ONE_TO_MANY === $mapping['type'])
|
||||
&& !$mapping['isOwningSide']
|
||||
) {
|
||||
$target_elements = $this->getField($element, $field);
|
||||
|
@ -219,7 +219,7 @@ class TimeTravel
|
|||
$target_class = $mapping['targetEntity'];
|
||||
//Try to extract the old ID:
|
||||
if (is_array($data) && isset($data['@id'])) {
|
||||
$entity = $this->em->getPartialReference($target_class, $data['@id']);
|
||||
$entity = $this->em->getReference($target_class, $data['@id']);
|
||||
$this->setField($element, $field, $entity);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ use Doctrine\DBAL\Exception;
|
|||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\Platforms\AbstractMySQLPlatform;
|
||||
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
|
||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||
use Doctrine\DBAL\Platforms\SQLitePlatform;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
||||
/**
|
||||
|
@ -51,7 +51,7 @@ class DBInfoHelper
|
|||
return 'mysql';
|
||||
}
|
||||
|
||||
if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||
if ($this->connection->getDatabasePlatform() instanceof SQLitePlatform) {
|
||||
return 'sqlite';
|
||||
}
|
||||
|
||||
|
@ -72,7 +72,7 @@ class DBInfoHelper
|
|||
return $this->connection->fetchOne('SELECT VERSION()');
|
||||
}
|
||||
|
||||
if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||
if ($this->connection->getDatabasePlatform() instanceof SQLitePlatform) {
|
||||
return $this->connection->fetchOne('SELECT sqlite_version()');
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ class DBInfoHelper
|
|||
}
|
||||
}
|
||||
|
||||
if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||
if ($this->connection->getDatabasePlatform() instanceof SQLitePlatform) {
|
||||
try {
|
||||
return (int) $this->connection->fetchOne('SELECT page_count * page_size as size FROM pragma_page_count(), pragma_page_size();');
|
||||
} catch (Exception) {
|
||||
|
@ -138,7 +138,7 @@ class DBInfoHelper
|
|||
}
|
||||
}
|
||||
|
||||
if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||
if ($this->connection->getDatabasePlatform() instanceof SQLitePlatform) {
|
||||
return 'sqlite';
|
||||
}
|
||||
|
||||
|
|
|
@ -50,8 +50,7 @@ final class OAuthTokenManager
|
|||
if ($tokenEntity) {
|
||||
$tokenEntity->replaceWithNewToken($token);
|
||||
|
||||
//@phpstan-ignore-next-line
|
||||
$this->entityManager->flush($tokenEntity);
|
||||
$this->entityManager->flush();
|
||||
|
||||
//We are done
|
||||
return $tokenEntity;
|
||||
|
@ -60,8 +59,8 @@ final class OAuthTokenManager
|
|||
//If the token was not existing, we create a new one
|
||||
$tokenEntity = OAuthToken::fromAccessToken($token, $app_name);
|
||||
$this->entityManager->persist($tokenEntity);
|
||||
//@phpstan-ignore-next-line
|
||||
$this->entityManager->flush($tokenEntity);
|
||||
|
||||
$this->entityManager->flush();
|
||||
|
||||
return $tokenEntity;
|
||||
}
|
||||
|
@ -113,9 +112,7 @@ final class OAuthTokenManager
|
|||
|
||||
//Persist the token
|
||||
$token->replaceWithNewToken($new_token);
|
||||
|
||||
//@phpstan-ignore-next-line
|
||||
$this->entityManager->flush($token);
|
||||
$this->entityManager->flush();
|
||||
|
||||
return $token;
|
||||
}
|
||||
|
|
|
@ -74,9 +74,6 @@
|
|||
"doctrine/collections": {
|
||||
"version": "v1.5.0"
|
||||
},
|
||||
"doctrine/common": {
|
||||
"version": "v2.10.0"
|
||||
},
|
||||
"doctrine/data-fixtures": {
|
||||
"version": "v1.3.2"
|
||||
},
|
||||
|
|
|
@ -57,10 +57,6 @@ class NoneOfItsChildrenValidatorTest extends ConstraintValidatorTestCase
|
|||
$this->child1_2->setName('child1_2')->setParent($this->child1);
|
||||
}
|
||||
|
||||
private function getDummyObjects(): array
|
||||
{
|
||||
$obj1 = new AttachmentType();
|
||||
}
|
||||
|
||||
protected function createValidator(): NoneOfItsChildrenValidator
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue