diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 15f93b9..0b73c9c 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -5,7 +5,7 @@ postgresql true org.postgresql.Driver - jdbc:postgresql://localhost:5432/ferme + jdbc:postgresql://localhost:5433/ferme $ProjectFileDir$ diff --git a/.idea/ferme.iml b/.idea/ferme.iml index a55a4eb..6a0c96f 100644 --- a/.idea/ferme.iml +++ b/.idea/ferme.iml @@ -147,9 +147,11 @@ + + diff --git a/.idea/php.xml b/.idea/php.xml index dfc3b24..d4b4d6a 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -12,150 +12,152 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - + + + - + + + + - - - - - - - - + + - - - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/workspace.xml b/.idea/workspace.xml index eec8357..b16884b 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,13 +4,8 @@ - - - - - - - + + @@ -252,7 +249,7 @@ - @@ -269,7 +266,9 @@ - + + + - @@ -569,10 +600,6 @@ - - - - @@ -594,7 +621,11 @@ - diff --git a/CHANGELOG.md b/CHANGELOG.md index b2c4875..bdef038 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ Ajouter dans le fichier .env - JWT_PUBLIC_KEY - JWT_PASSPHRASE (à généré dans le conteneur avec la commande php -r "echo bin2hex(random_bytes(32));") - COOKIE_SECURE=0 (en dev 0 et en prod 1) +- EDNOTIF_EXPLOITATION_CODE +- EDNOTIF_EXPLOITATION_NUMERO +- EDNOTIF_LOGIN +- EDNOTIF_PASSWORD Ajouter dans le fichier .env du frontend - NUXT_PUBLIC_API_BASE @@ -20,6 +24,7 @@ Ajouter dans le fichier .env du frontend ### Added * [#203] Réceptions — Parcours de pesée multi-étapes (début) * [#202] Authentification — Connexion utilisateur (JWT) +* Ajout du bundle malio/ednotif-bundle ### Changed diff --git a/composer.json b/composer.json index 57a7a13..b09f4a0 100644 --- a/composer.json +++ b/composer.json @@ -14,6 +14,7 @@ "doctrine/orm": "^3.6", "dompdf/dompdf": "^3.1", "lexik/jwt-authentication-bundle": "*", + "malio/ednotif-bundle": ">=0.0.4", "nelmio/cors-bundle": "^2.6", "phpdocumentor/reflection-docblock": "^5.6", "phpstan/phpdoc-parser": "^2.3", @@ -90,6 +91,14 @@ "friendsofphp/php-cs-fixer": "^3.92", "phpunit/phpunit": "^12.5", "symfony/browser-kit": "8.0.*", - "symfony/css-selector": "8.0.*" - } + "symfony/css-selector": "8.0.*", + "symfony/stopwatch": "8.0.*", + "symfony/web-profiler-bundle": "8.0.*" + }, + "repositories": [ + { + "type": "vcs", + "url": "https://gitea.malio.fr/MALIO-DEV/ednotif-bundle" + } + ] } diff --git a/composer.lock b/composer.lock index 7617e63..d308752 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e122271fbb08b4c19c1fe6084f95aeab", + "content-hash": "d66ef6b521a08a262b1c043bb32cafe5", "packages": [ { "name": "api-platform/doctrine-common", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/doctrine-common.git", - "reference": "281f2ef1433253ec63a4f845622639665c1d68c5" + "reference": "a29e9015ecf4547485ec7fbce52da4ee95c282a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/doctrine-common/zipball/281f2ef1433253ec63a4f845622639665c1d68c5", - "reference": "281f2ef1433253ec63a4f845622639665c1d68c5", + "url": "https://api.github.com/repos/api-platform/doctrine-common/zipball/a29e9015ecf4547485ec7fbce52da4ee95c282a0", + "reference": "a29e9015ecf4547485ec7fbce52da4ee95c282a0", "shasum": "" }, "require": { @@ -35,7 +35,7 @@ "doctrine/mongodb-odm": "^2.10", "doctrine/orm": "^2.17 || ^3.0", "phpspec/prophecy-phpunit": "^2.2", - "phpunit/phpunit": "11.5.x-dev", + "phpunit/phpunit": "^12.2", "symfony/type-info": "^7.3 || ^8.0" }, "suggest": { @@ -92,22 +92,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/doctrine-common/tree/v4.2.11" + "source": "https://github.com/api-platform/doctrine-common/tree/v4.2.14" }, - "time": "2025-12-04T14:20:26+00:00" + "time": "2026-01-12T13:36:15+00:00" }, { "name": "api-platform/doctrine-orm", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/doctrine-orm.git", - "reference": "6ea550f2db2db04979aefd654c115ecd6f897039" + "reference": "7a7c5cb7261ead50481a9a2d8ef721e21ea97945" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/doctrine-orm/zipball/6ea550f2db2db04979aefd654c115ecd6f897039", - "reference": "6ea550f2db2db04979aefd654c115ecd6f897039", + "url": "https://api.github.com/repos/api-platform/doctrine-orm/zipball/7a7c5cb7261ead50481a9a2d8ef721e21ea97945", + "reference": "7a7c5cb7261ead50481a9a2d8ef721e21ea97945", "shasum": "" }, "require": { @@ -120,7 +120,7 @@ "require-dev": { "doctrine/doctrine-bundle": "^2.11 || ^3.1", "phpspec/prophecy-phpunit": "^2.2", - "phpunit/phpunit": "11.5.x-dev", + "phpunit/phpunit": "^12.2", "ramsey/uuid": "^4.7", "ramsey/uuid-doctrine": "^2.0", "symfony/cache": "^6.4 || ^7.0 || ^8.0", @@ -179,22 +179,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/doctrine-orm/tree/v4.2.11" + "source": "https://github.com/api-platform/doctrine-orm/tree/v4.2.14" }, - "time": "2025-12-04T14:20:26+00:00" + "time": "2026-01-23T14:24:03+00:00" }, { "name": "api-platform/documentation", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/documentation.git", - "reference": "8910f2a0aa7910ed807f128510553b24152e5ea5" + "reference": "873543a827df5c25b008bd730f2096701e1943b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/documentation/zipball/8910f2a0aa7910ed807f128510553b24152e5ea5", - "reference": "8910f2a0aa7910ed807f128510553b24152e5ea5", + "url": "https://api.github.com/repos/api-platform/documentation/zipball/873543a827df5c25b008bd730f2096701e1943b8", + "reference": "873543a827df5c25b008bd730f2096701e1943b8", "shasum": "" }, "require": { @@ -202,7 +202,7 @@ "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "11.5.x-dev" + "phpunit/phpunit": "^12.2" }, "type": "project", "extra": { @@ -242,22 +242,22 @@ ], "description": "API Platform documentation controller.", "support": { - "source": "https://github.com/api-platform/documentation/tree/v4.2.11" + "source": "https://github.com/api-platform/documentation/tree/v4.2.14" }, - "time": "2025-11-30T12:55:42+00:00" + "time": "2025-12-27T22:15:57+00:00" }, { "name": "api-platform/http-cache", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/http-cache.git", - "reference": "4bb2eab81407f493f54f51be7aa1918f362c14b5" + "reference": "04a9239b67425f68ed2d372c2c731f14342dea45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/http-cache/zipball/4bb2eab81407f493f54f51be7aa1918f362c14b5", - "reference": "4bb2eab81407f493f54f51be7aa1918f362c14b5", + "url": "https://api.github.com/repos/api-platform/http-cache/zipball/04a9239b67425f68ed2d372c2c731f14342dea45", + "reference": "04a9239b67425f68ed2d372c2c731f14342dea45", "shasum": "" }, "require": { @@ -269,7 +269,7 @@ "require-dev": { "guzzlehttp/guzzle": "^6.0 || ^7.0 || ^8.0", "phpspec/prophecy-phpunit": "^2.2", - "phpunit/phpunit": "11.5.x-dev", + "phpunit/phpunit": "^12.2", "symfony/dependency-injection": "^6.4 || ^7.0 || ^8.0", "symfony/http-client": "^6.4 || ^7.0 || ^8.0", "symfony/type-info": "^7.3 || ^8.0" @@ -322,22 +322,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/http-cache/tree/v4.2.11" + "source": "https://github.com/api-platform/http-cache/tree/v4.2.14" }, - "time": "2025-11-30T12:55:42+00:00" + "time": "2026-01-12T13:36:15+00:00" }, { "name": "api-platform/hydra", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/hydra.git", - "reference": "80491f175647d0a63eb96035b2468fc1c2a76c37" + "reference": "866611a986f4f52da7807b04a0b2cf64e314ab56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/hydra/zipball/80491f175647d0a63eb96035b2468fc1c2a76c37", - "reference": "80491f175647d0a63eb96035b2468fc1c2a76c37", + "url": "https://api.github.com/repos/api-platform/hydra/zipball/866611a986f4f52da7807b04a0b2cf64e314ab56", + "reference": "866611a986f4f52da7807b04a0b2cf64e314ab56", "shasum": "" }, "require": { @@ -357,7 +357,7 @@ "api-platform/doctrine-orm": "^4.2", "phpspec/prophecy": "^1.19", "phpspec/prophecy-phpunit": "^2.2", - "phpunit/phpunit": "11.5.x-dev" + "phpunit/phpunit": "^12.2" }, "type": "library", "extra": { @@ -409,22 +409,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/hydra/tree/v4.2.11" + "source": "https://github.com/api-platform/hydra/tree/v4.2.14" }, - "time": "2025-12-18T14:34:13+00:00" + "time": "2025-12-27T22:15:57+00:00" }, { "name": "api-platform/json-schema", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/json-schema.git", - "reference": "6a5f901a744018e48b8b94bbf798cd4f617cfcde" + "reference": "b69ebff7277655c1eb91bc0092fad4bc80aed4fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/json-schema/zipball/6a5f901a744018e48b8b94bbf798cd4f617cfcde", - "reference": "6a5f901a744018e48b8b94bbf798cd4f617cfcde", + "url": "https://api.github.com/repos/api-platform/json-schema/zipball/b69ebff7277655c1eb91bc0092fad4bc80aed4fb", + "reference": "b69ebff7277655c1eb91bc0092fad4bc80aed4fb", "shasum": "" }, "require": { @@ -438,7 +438,7 @@ }, "require-dev": { "phpspec/prophecy-phpunit": "^2.2", - "phpunit/phpunit": "11.5.x-dev" + "phpunit/phpunit": "^12.2" }, "type": "library", "extra": { @@ -490,22 +490,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/json-schema/tree/v4.2.11" + "source": "https://github.com/api-platform/json-schema/tree/v4.2.14" }, - "time": "2025-12-02T13:32:19+00:00" + "time": "2026-01-23T14:31:09+00:00" }, { "name": "api-platform/jsonld", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/jsonld.git", - "reference": "3889b185376198a182d2527c48ec0b29b604505f" + "reference": "ef0a361b0f29158243478d3fff5038ec2f5aa76c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/jsonld/zipball/3889b185376198a182d2527c48ec0b29b604505f", - "reference": "3889b185376198a182d2527c48ec0b29b604505f", + "url": "https://api.github.com/repos/api-platform/jsonld/zipball/ef0a361b0f29158243478d3fff5038ec2f5aa76c", + "reference": "ef0a361b0f29158243478d3fff5038ec2f5aa76c", "shasum": "" }, "require": { @@ -515,7 +515,7 @@ "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "11.5.x-dev", + "phpunit/phpunit": "^12.2", "symfony/type-info": "^7.3 || ^8.0" }, "type": "library", @@ -570,22 +570,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/jsonld/tree/v4.2.11" + "source": "https://github.com/api-platform/jsonld/tree/v4.2.14" }, - "time": "2025-12-18T14:34:13+00:00" + "time": "2026-01-12T13:36:15+00:00" }, { "name": "api-platform/metadata", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/metadata.git", - "reference": "533774ca55a4f2be9da72da344d5e3e2982fbc86" + "reference": "590195d1038e66a039f1847b43040b7e6b78475f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/metadata/zipball/533774ca55a4f2be9da72da344d5e3e2982fbc86", - "reference": "533774ca55a4f2be9da72da344d5e3e2982fbc86", + "url": "https://api.github.com/repos/api-platform/metadata/zipball/590195d1038e66a039f1847b43040b7e6b78475f", + "reference": "590195d1038e66a039f1847b43040b7e6b78475f", "shasum": "" }, "require": { @@ -603,7 +603,7 @@ "api-platform/state": "^4.2.4", "phpspec/prophecy-phpunit": "^2.2", "phpstan/phpdoc-parser": "^1.29 || ^2.0", - "phpunit/phpunit": "11.5.x-dev", + "phpunit/phpunit": "^12.2", "symfony/config": "^6.4 || ^7.0 || ^8.0", "symfony/routing": "^6.4 || ^7.0 || ^8.0", "symfony/var-dumper": "^6.4 || ^7.0 || ^8.0", @@ -668,22 +668,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/metadata/tree/v4.2.11" + "source": "https://github.com/api-platform/metadata/tree/v4.2.14" }, - "time": "2025-12-18T14:34:13+00:00" + "time": "2026-01-12T13:36:15+00:00" }, { "name": "api-platform/openapi", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/openapi.git", - "reference": "ea49d6d7170f8ecc1c239e7769708628183096b8" + "reference": "39ed78187a4a8e7c1c1fc9b5a3ef3913e3e914e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/openapi/zipball/ea49d6d7170f8ecc1c239e7769708628183096b8", - "reference": "ea49d6d7170f8ecc1c239e7769708628183096b8", + "url": "https://api.github.com/repos/api-platform/openapi/zipball/39ed78187a4a8e7c1c1fc9b5a3ef3913e3e914e3", + "reference": "39ed78187a4a8e7c1c1fc9b5a3ef3913e3e914e3", "shasum": "" }, "require": { @@ -702,7 +702,7 @@ "api-platform/doctrine-odm": "^4.2", "api-platform/doctrine-orm": "^4.2", "phpspec/prophecy-phpunit": "^2.2", - "phpunit/phpunit": "11.5.x-dev", + "phpunit/phpunit": "^12.2", "symfony/type-info": "^7.3 || ^8.0" }, "type": "library", @@ -758,22 +758,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/openapi/tree/v4.2.11" + "source": "https://github.com/api-platform/openapi/tree/v4.2.14" }, - "time": "2025-11-30T12:55:42+00:00" + "time": "2026-01-17T19:34:53+00:00" }, { "name": "api-platform/serializer", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/serializer.git", - "reference": "a511d4ba522c3ebbd78c9e1f05e0918978d72a43" + "reference": "006df770d82860922c7faee493d5d3c14906f810" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/serializer/zipball/a511d4ba522c3ebbd78c9e1f05e0918978d72a43", - "reference": "a511d4ba522c3ebbd78c9e1f05e0918978d72a43", + "url": "https://api.github.com/repos/api-platform/serializer/zipball/006df770d82860922c7faee493d5d3c14906f810", + "reference": "006df770d82860922c7faee493d5d3c14906f810", "shasum": "" }, "require": { @@ -793,7 +793,7 @@ "api-platform/openapi": "^4.2", "doctrine/collections": "^2.1", "phpspec/prophecy-phpunit": "^2.2", - "phpunit/phpunit": "11.5.x-dev", + "phpunit/phpunit": "^12.2", "symfony/mercure-bundle": "*", "symfony/type-info": "^7.3 || ^8.0", "symfony/var-dumper": "^6.4 || ^7.0 || ^8.0", @@ -851,22 +851,22 @@ "serializer" ], "support": { - "source": "https://github.com/api-platform/serializer/tree/v4.2.11" + "source": "https://github.com/api-platform/serializer/tree/v4.2.14" }, - "time": "2025-12-18T14:36:58+00:00" + "time": "2026-01-12T13:36:15+00:00" }, { "name": "api-platform/state", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/state.git", - "reference": "b9644669f953a76742c9f49d571ff42c68e581d1" + "reference": "fa3e7b41bcb54e7ba6d3078de224620e422d6732" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/state/zipball/b9644669f953a76742c9f49d571ff42c68e581d1", - "reference": "b9644669f953a76742c9f49d571ff42c68e581d1", + "url": "https://api.github.com/repos/api-platform/state/zipball/fa3e7b41bcb54e7ba6d3078de224620e422d6732", + "reference": "fa3e7b41bcb54e7ba6d3078de224620e422d6732", "shasum": "" }, "require": { @@ -881,7 +881,7 @@ "require-dev": { "api-platform/serializer": "^4.2.4", "api-platform/validator": "^4.2.4", - "phpunit/phpunit": "11.5.x-dev", + "phpunit/phpunit": "^12.2", "symfony/http-foundation": "^6.4.14 || ^7.0 || ^8.0", "symfony/object-mapper": "^7.4 || ^8.0", "symfony/type-info": "^7.4 || ^8.0", @@ -948,35 +948,35 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/state/tree/v4.2.11" + "source": "https://github.com/api-platform/state/tree/v4.2.14" }, - "time": "2025-12-17T15:10:17+00:00" + "time": "2026-01-12T13:36:15+00:00" }, { "name": "api-platform/symfony", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/symfony.git", - "reference": "ab93a0043558beeb7ccd7f2c97304565d4872bb3" + "reference": "31539dc26bd88f54e43d2d8a24613ff988307da1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/symfony/zipball/ab93a0043558beeb7ccd7f2c97304565d4872bb3", - "reference": "ab93a0043558beeb7ccd7f2c97304565d4872bb3", + "url": "https://api.github.com/repos/api-platform/symfony/zipball/31539dc26bd88f54e43d2d8a24613ff988307da1", + "reference": "31539dc26bd88f54e43d2d8a24613ff988307da1", "shasum": "" }, "require": { - "api-platform/documentation": "^4.2.3", - "api-platform/http-cache": "^4.2.3", - "api-platform/hydra": "^4.2.3", - "api-platform/json-schema": "^4.2.3", - "api-platform/jsonld": "^4.2.3", - "api-platform/metadata": "^4.2.3", - "api-platform/openapi": "^4.2.3", - "api-platform/serializer": "^4.2.4", - "api-platform/state": "^4.2.4", - "api-platform/validator": "^4.2.3", + "api-platform/documentation": "^4.2.12", + "api-platform/http-cache": "^4.2.12", + "api-platform/hydra": "^4.2.12", + "api-platform/json-schema": "^4.2.12", + "api-platform/jsonld": "^4.2.12", + "api-platform/metadata": "^4.2.12", + "api-platform/openapi": "^4.2.12", + "api-platform/serializer": "^4.2.12", + "api-platform/state": "^4.2.12", + "api-platform/validator": "^4.2.12", "php": ">=8.2", "symfony/asset": "^6.4 || ^7.0 || ^8.0", "symfony/finder": "^6.4 || ^7.0 || ^8.0", @@ -987,14 +987,14 @@ "willdurand/negotiation": "^3.1" }, "require-dev": { - "api-platform/doctrine-common": "^4.2.3", - "api-platform/doctrine-odm": "^4.2.3", - "api-platform/doctrine-orm": "^4.2.3", - "api-platform/elasticsearch": "^4.2.3", - "api-platform/graphql": "^4.2.3", - "api-platform/hal": "^4.2.3", + "api-platform/doctrine-common": "^4.2.12", + "api-platform/doctrine-odm": "^4.2.12", + "api-platform/doctrine-orm": "^4.2.12", + "api-platform/elasticsearch": "^4.2.12", + "api-platform/graphql": "^4.2.12", + "api-platform/hal": "^4.2.12", "phpspec/prophecy-phpunit": "^2.2", - "phpunit/phpunit": "11.5.x-dev", + "phpunit/phpunit": "^12.2", "symfony/expression-language": "^6.4 || ^7.0 || ^8.0", "symfony/intl": "^6.4 || ^7.0 || ^8.0", "symfony/mercure-bundle": "*", @@ -1076,22 +1076,22 @@ "symfony" ], "support": { - "source": "https://github.com/api-platform/symfony/tree/v4.2.11" + "source": "https://github.com/api-platform/symfony/tree/v4.2.14" }, - "time": "2025-12-18T14:34:13+00:00" + "time": "2026-01-23T14:24:03+00:00" }, { "name": "api-platform/validator", - "version": "v4.2.11", + "version": "v4.2.14", "source": { "type": "git", "url": "https://github.com/api-platform/validator.git", - "reference": "850035ba6165e2452c1777bee2272205bf8c771e" + "reference": "346a5916d9706da9b0981ebec3d6278802e96ca9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/validator/zipball/850035ba6165e2452c1777bee2272205bf8c771e", - "reference": "850035ba6165e2452c1777bee2272205bf8c771e", + "url": "https://api.github.com/repos/api-platform/validator/zipball/346a5916d9706da9b0981ebec3d6278802e96ca9", + "reference": "346a5916d9706da9b0981ebec3d6278802e96ca9", "shasum": "" }, "require": { @@ -1105,7 +1105,7 @@ }, "require-dev": { "phpspec/prophecy-phpunit": "^2.2", - "phpunit/phpunit": "11.5.x-dev" + "phpunit/phpunit": "^12.2" }, "type": "library", "extra": { @@ -1152,22 +1152,22 @@ "validator" ], "support": { - "source": "https://github.com/api-platform/validator/tree/v4.2.11" + "source": "https://github.com/api-platform/validator/tree/v4.2.14" }, - "time": "2025-12-04T14:20:26+00:00" + "time": "2026-01-16T13:22:15+00:00" }, { "name": "doctrine/collections", - "version": "2.4.0", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "9acfeea2e8666536edff3d77c531261c63680160" + "reference": "7713da39d8e237f28411d6a616a3dce5e20d5de2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/9acfeea2e8666536edff3d77c531261c63680160", - "reference": "9acfeea2e8666536edff3d77c531261c63680160", + "url": "https://api.github.com/repos/doctrine/collections/zipball/7713da39d8e237f28411d6a616a3dce5e20d5de2", + "reference": "7713da39d8e237f28411d6a616a3dce5e20d5de2", "shasum": "" }, "require": { @@ -1224,7 +1224,7 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/2.4.0" + "source": "https://github.com/doctrine/collections/tree/2.6.0" }, "funding": [ { @@ -1240,7 +1240,7 @@ "type": "tidelift" } ], - "time": "2025-10-25T09:18:13+00:00" + "time": "2026-01-15T10:01:58+00:00" }, { "name": "doctrine/common", @@ -1696,16 +1696,16 @@ }, { "name": "doctrine/event-manager", - "version": "2.0.1", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e" + "reference": "c07799fcf5ad362050960a0fd068dded40b1e312" }, "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/c07799fcf5ad362050960a0fd068dded40b1e312", + "reference": "c07799fcf5ad362050960a0fd068dded40b1e312", "shasum": "" }, "require": { @@ -1715,10 +1715,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": { @@ -1767,7 +1767,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.0" }, "funding": [ { @@ -1783,7 +1783,7 @@ "type": "tidelift" } ], - "time": "2024-05-22T20:47:39+00:00" + "time": "2026-01-17T22:40:21+00:00" }, { "name": "doctrine/inflector", @@ -1877,30 +1877,29 @@ }, { "name": "doctrine/instantiator", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" + "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/23da848e1a2308728fe5fdddabf4be17ff9720c7", + "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7", "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.4" }, "require-dev": { - "doctrine/coding-standard": "^11", + "doctrine/coding-standard": "^14", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5.58" }, "type": "library", "autoload": { @@ -1927,7 +1926,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" + "source": "https://github.com/doctrine/instantiator/tree/2.1.0" }, "funding": [ { @@ -1943,7 +1942,7 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:23:10+00:00" + "time": "2026-01-05T06:47:08+00:00" }, { "name": "doctrine/lexer", @@ -2127,16 +2126,16 @@ }, { "name": "doctrine/orm", - "version": "3.6.0", + "version": "3.6.1", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "d4e9276e79602b1eb4c4029c6c999b0d93478e2f" + "reference": "2148940290e4c44b9101095707e71fb590832fa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/d4e9276e79602b1eb4c4029c6c999b0d93478e2f", - "reference": "d4e9276e79602b1eb4c4029c6c999b0d93478e2f", + "url": "https://api.github.com/repos/doctrine/orm/zipball/2148940290e4c44b9101095707e71fb590832fa5", + "reference": "2148940290e4c44b9101095707e71fb590832fa5", "shasum": "" }, "require": { @@ -2209,9 +2208,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/3.6.0" + "source": "https://github.com/doctrine/orm/tree/3.6.1" }, - "time": "2025-12-19T20:36:14+00:00" + "time": "2026-01-09T05:28:15+00:00" }, { "name": "doctrine/persistence", @@ -2427,16 +2426,16 @@ }, { "name": "dompdf/php-font-lib", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/dompdf/php-font-lib.git", - "reference": "6137b7d4232b7f16c882c75e4ca3991dbcf6fe2d" + "reference": "a6e9a688a2a80016ac080b97be73d3e10c444c9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/6137b7d4232b7f16c882c75e4ca3991dbcf6fe2d", - "reference": "6137b7d4232b7f16c882c75e4ca3991dbcf6fe2d", + "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/a6e9a688a2a80016ac080b97be73d3e10c444c9a", + "reference": "a6e9a688a2a80016ac080b97be73d3e10c444c9a", "shasum": "" }, "require": { @@ -2444,7 +2443,7 @@ "php": "^7.1 || ^8.0" }, "require-dev": { - "symfony/phpunit-bridge": "^3 || ^4 || ^5 || ^6" + "phpunit/phpunit": "^7.5 || ^8 || ^9 || ^10 || ^11 || ^12" }, "type": "library", "autoload": { @@ -2466,9 +2465,9 @@ "homepage": "https://github.com/dompdf/php-font-lib", "support": { "issues": "https://github.com/dompdf/php-font-lib/issues", - "source": "https://github.com/dompdf/php-font-lib/tree/1.0.1" + "source": "https://github.com/dompdf/php-font-lib/tree/1.0.2" }, - "time": "2024-12-02T14:37:59+00:00" + "time": "2026-01-20T14:10:26+00:00" }, { "name": "dompdf/php-svg-lib", @@ -2705,6 +2704,48 @@ ], "time": "2025-12-20T17:47:00+00:00" }, + { + "name": "malio/ednotif-bundle", + "version": "v0.0.4", + "source": { + "type": "git", + "url": "https://gitea.malio.fr/MALIO-DEV/ednotif-bundle", + "reference": "92c058213b34ba61f4aa6c03e11ce1ea8cc71421" + }, + "require": { + "ext-soap": "*", + "ext-xml": "*", + "php": "^8.4", + "psr/log": "^3.0", + "symfony/cache": "^8.0", + "symfony/config": "^8.0", + "symfony/dependency-injection": "^8.0", + "symfony/framework-bundle": "^8.0", + "symfony/http-kernel": "^8.0", + "symfony/options-resolver": "^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.92", + "phpunit/phpunit": "^12.0", + "symfony/phpunit-bridge": "^8.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Malio\\EdnotifBundle\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Malio\\EdnotifBundle\\Tests\\": "tests/" + } + }, + "license": [ + "MIT" + ], + "description": "Client EDNOTIF (Guichet + wsIpBNotif) pour Symfony", + "time": "2026-01-26T13:24:38+00:00" + }, { "name": "masterminds/html5", "version": "2.10.0", @@ -2877,16 +2918,16 @@ }, { "name": "nelmio/cors-bundle", - "version": "2.6.0", + "version": "2.6.1", "source": { "type": "git", "url": "https://github.com/nelmio/NelmioCorsBundle.git", - "reference": "530217472204881cacd3671909f634b960c7b948" + "reference": "3d80dbcd5d1eb5f8b20ed5199e1778d44c2e4d1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nelmio/NelmioCorsBundle/zipball/530217472204881cacd3671909f634b960c7b948", - "reference": "530217472204881cacd3671909f634b960c7b948", + "url": "https://api.github.com/repos/nelmio/NelmioCorsBundle/zipball/3d80dbcd5d1eb5f8b20ed5199e1778d44c2e4d1c", + "reference": "3d80dbcd5d1eb5f8b20ed5199e1778d44c2e4d1c", "shasum": "" }, "require": { @@ -2936,9 +2977,9 @@ ], "support": { "issues": "https://github.com/nelmio/NelmioCorsBundle/issues", - "source": "https://github.com/nelmio/NelmioCorsBundle/tree/2.6.0" + "source": "https://github.com/nelmio/NelmioCorsBundle/tree/2.6.1" }, - "time": "2025-10-23T06:57:22+00:00" + "time": "2026-01-12T15:59:08+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -3117,16 +3158,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.0", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" + "reference": "16dbf9937da8d4528ceb2145c9c7c0bd29e26374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/16dbf9937da8d4528ceb2145c9c7c0bd29e26374", + "reference": "16dbf9937da8d4528ceb2145c9c7c0bd29e26374", "shasum": "" }, "require": { @@ -3158,9 +3199,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.1" }, - "time": "2025-08-30T15:50:23+00:00" + "time": "2026-01-12T11:33:04+00:00" }, { "name": "psr/cache", @@ -3614,16 +3655,16 @@ }, { "name": "symfony/cache", - "version": "v8.0.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "ef8c7dbfe613d2773d0b5e68b2ef2db72c8b025f" + "reference": "5d3fcada5e1b80157cfdfd1f9dbbd63f95ef6f13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/ef8c7dbfe613d2773d0b5e68b2ef2db72c8b025f", - "reference": "ef8c7dbfe613d2773d0b5e68b2ef2db72c8b025f", + "url": "https://api.github.com/repos/symfony/cache/zipball/5d3fcada5e1b80157cfdfd1f9dbbd63f95ef6f13", + "reference": "5d3fcada5e1b80157cfdfd1f9dbbd63f95ef6f13", "shasum": "" }, "require": { @@ -3690,7 +3731,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v8.0.3" + "source": "https://github.com/symfony/cache/tree/v8.0.4" }, "funding": [ { @@ -3710,7 +3751,7 @@ "type": "tidelift" } ], - "time": "2025-12-28T10:45:32+00:00" + "time": "2026-01-23T12:59:31+00:00" }, { "name": "symfony/cache-contracts", @@ -3867,16 +3908,16 @@ }, { "name": "symfony/config", - "version": "v8.0.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "58063686fd7b8e676f14b5a4808cb85265c5216e" + "reference": "8f45af92f08f82902827a8b6f403aaf49d893539" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/58063686fd7b8e676f14b5a4808cb85265c5216e", - "reference": "58063686fd7b8e676f14b5a4808cb85265c5216e", + "url": "https://api.github.com/repos/symfony/config/zipball/8f45af92f08f82902827a8b6f403aaf49d893539", + "reference": "8f45af92f08f82902827a8b6f403aaf49d893539", "shasum": "" }, "require": { @@ -3921,7 +3962,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v8.0.3" + "source": "https://github.com/symfony/config/tree/v8.0.4" }, "funding": [ { @@ -3941,7 +3982,7 @@ "type": "tidelift" } ], - "time": "2025-12-23T14:52:06+00:00" + "time": "2026-01-13T13:06:50+00:00" }, { "name": "symfony/console", @@ -4035,16 +4076,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v8.0.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "8db0d4c1dd4c533a29210c68074999ba45ad6d3e" + "reference": "59c3cf87a7ed9beb561cf7433a6635b000a0ff4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8db0d4c1dd4c533a29210c68074999ba45ad6d3e", - "reference": "8db0d4c1dd4c533a29210c68074999ba45ad6d3e", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/59c3cf87a7ed9beb561cf7433a6635b000a0ff4d", + "reference": "59c3cf87a7ed9beb561cf7433a6635b000a0ff4d", "shasum": "" }, "require": { @@ -4092,7 +4133,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v8.0.3" + "source": "https://github.com/symfony/dependency-injection/tree/v8.0.4" }, "funding": [ { @@ -4112,7 +4153,7 @@ "type": "tidelift" } ], - "time": "2025-12-23T14:52:06+00:00" + "time": "2026-01-23T12:59:31+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4359,16 +4400,16 @@ }, { "name": "symfony/error-handler", - "version": "v8.0.0", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "d77ec7dda0c274178745d152e82baf7ea827fd73" + "reference": "7620b97ec0ab1d2d6c7fb737aa55da411bea776a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/d77ec7dda0c274178745d152e82baf7ea827fd73", - "reference": "d77ec7dda0c274178745d152e82baf7ea827fd73", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/7620b97ec0ab1d2d6c7fb737aa55da411bea776a", + "reference": "7620b97ec0ab1d2d6c7fb737aa55da411bea776a", "shasum": "" }, "require": { @@ -4416,7 +4457,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v8.0.0" + "source": "https://github.com/symfony/error-handler/tree/v8.0.4" }, "funding": [ { @@ -4436,20 +4477,20 @@ "type": "tidelift" } ], - "time": "2025-11-05T14:36:47+00:00" + "time": "2026-01-23T11:07:10+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v8.0.0", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "573f95783a2ec6e38752979db139f09fec033f03" + "reference": "99301401da182b6cfaa4700dbe9987bb75474b47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/573f95783a2ec6e38752979db139f09fec033f03", - "reference": "573f95783a2ec6e38752979db139f09fec033f03", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/99301401da182b6cfaa4700dbe9987bb75474b47", + "reference": "99301401da182b6cfaa4700dbe9987bb75474b47", "shasum": "" }, "require": { @@ -4501,7 +4542,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.4" }, "funding": [ { @@ -4521,7 +4562,7 @@ "type": "tidelift" } ], - "time": "2025-10-30T14:17:19+00:00" + "time": "2026-01-05T11:45:55+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4738,16 +4779,16 @@ }, { "name": "symfony/finder", - "version": "v8.0.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "dd3a2953570a283a2ba4e17063bb98c734cf5b12" + "reference": "42e48eb02e07d5f3771d194d67da117eb824c8c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/dd3a2953570a283a2ba4e17063bb98c734cf5b12", - "reference": "dd3a2953570a283a2ba4e17063bb98c734cf5b12", + "url": "https://api.github.com/repos/symfony/finder/zipball/42e48eb02e07d5f3771d194d67da117eb824c8c1", + "reference": "42e48eb02e07d5f3771d194d67da117eb824c8c1", "shasum": "" }, "require": { @@ -4782,7 +4823,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v8.0.3" + "source": "https://github.com/symfony/finder/tree/v8.0.4" }, "funding": [ { @@ -4802,7 +4843,7 @@ "type": "tidelift" } ], - "time": "2025-12-23T14:52:06+00:00" + "time": "2026-01-12T12:37:40+00:00" }, { "name": "symfony/flex", @@ -4879,16 +4920,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v8.0.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "738a92519fbc3ac37192b28052574bf2d1e8f63a" + "reference": "121c3b2baa96e74754f2db550007aa6bcdf27c7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/738a92519fbc3ac37192b28052574bf2d1e8f63a", - "reference": "738a92519fbc3ac37192b28052574bf2d1e8f63a", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/121c3b2baa96e74754f2db550007aa6bcdf27c7e", + "reference": "121c3b2baa96e74754f2db550007aa6bcdf27c7e", "shasum": "" }, "require": { @@ -4896,8 +4937,8 @@ "ext-xml": "*", "php": ">=8.4", "symfony/cache": "^7.4|^8.0", - "symfony/config": "^7.4.3|^8.0.3", - "symfony/dependency-injection": "^7.4|^8.0", + "symfony/config": "^7.4.4|^8.0.4", + "symfony/dependency-injection": "^7.4.4|^8.0.4", "symfony/deprecation-contracts": "^2.5|^3", "symfony/error-handler": "^7.4|^8.0", "symfony/event-dispatcher": "^7.4|^8.0", @@ -4995,7 +5036,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v8.0.3" + "source": "https://github.com/symfony/framework-bundle/tree/v8.0.4" }, "funding": [ { @@ -5015,7 +5056,7 @@ "type": "tidelift" } ], - "time": "2025-12-23T14:52:06+00:00" + "time": "2026-01-12T12:37:40+00:00" }, { "name": "symfony/http-client", @@ -5193,16 +5234,16 @@ }, { "name": "symfony/http-foundation", - "version": "v8.0.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "514ec3aa7982f296b0ad0825f75b6be5779ae9e7" + "reference": "e33ba71e674a1bb16eb251688bd27c2ff67e0dc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/514ec3aa7982f296b0ad0825f75b6be5779ae9e7", - "reference": "514ec3aa7982f296b0ad0825f75b6be5779ae9e7", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e33ba71e674a1bb16eb251688bd27c2ff67e0dc1", + "reference": "e33ba71e674a1bb16eb251688bd27c2ff67e0dc1", "shasum": "" }, "require": { @@ -5249,7 +5290,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v8.0.3" + "source": "https://github.com/symfony/http-foundation/tree/v8.0.4" }, "funding": [ { @@ -5269,20 +5310,20 @@ "type": "tidelift" } ], - "time": "2025-12-23T14:52:06+00:00" + "time": "2026-01-09T12:15:10+00:00" }, { "name": "symfony/http-kernel", - "version": "v8.0.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9" + "reference": "3e61425b663a995957217d03c444b9d27ca7d928" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9", - "reference": "e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3e61425b663a995957217d03c444b9d27ca7d928", + "reference": "3e61425b663a995957217d03c444b9d27ca7d928", "shasum": "" }, "require": { @@ -5353,7 +5394,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v8.0.3" + "source": "https://github.com/symfony/http-kernel/tree/v8.0.4" }, "funding": [ { @@ -5373,7 +5414,7 @@ "type": "tidelift" } ], - "time": "2025-12-31T09:29:34+00:00" + "time": "2026-01-25T08:21:00+00:00" }, { "name": "symfony/monolog-bridge", @@ -5531,6 +5572,77 @@ ], "time": "2025-12-08T08:00:13+00:00" }, + { + "name": "symfony/options-resolver", + "version": "v8.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "d2b592535ffa6600c265a3893a7f7fd2bad82dd7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/d2b592535ffa6600c265a3893a7f7fd2bad82dd7", + "reference": "d2b592535ffa6600c265a3893a7f7fd2bad82dd7", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v8.0.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-11-12T15:55:31+00:00" + }, { "name": "symfony/password-hasher", "version": "v8.0.0", @@ -6188,16 +6300,16 @@ }, { "name": "symfony/routing", - "version": "v8.0.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3827ac6e03dcd86e430fb6ae6056acf5b51aece3" + "reference": "4a2bc08d1c35307239329f434d45c2bfe8241fa9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3827ac6e03dcd86e430fb6ae6056acf5b51aece3", - "reference": "3827ac6e03dcd86e430fb6ae6056acf5b51aece3", + "url": "https://api.github.com/repos/symfony/routing/zipball/4a2bc08d1c35307239329f434d45c2bfe8241fa9", + "reference": "4a2bc08d1c35307239329f434d45c2bfe8241fa9", "shasum": "" }, "require": { @@ -6244,7 +6356,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v8.0.3" + "source": "https://github.com/symfony/routing/tree/v8.0.4" }, "funding": [ { @@ -6264,7 +6376,7 @@ "type": "tidelift" } ], - "time": "2025-12-19T10:01:18+00:00" + "time": "2026-01-12T12:37:40+00:00" }, { "name": "symfony/runtime", @@ -7555,16 +7667,16 @@ }, { "name": "symfony/var-dumper", - "version": "v8.0.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "3bc368228532ad538cc216768caa8968be95a8d6" + "reference": "326e0406fc315eca57ef5740fa4a280b7a068c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3bc368228532ad538cc216768caa8968be95a8d6", - "reference": "3bc368228532ad538cc216768caa8968be95a8d6", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/326e0406fc315eca57ef5740fa4a280b7a068c82", + "reference": "326e0406fc315eca57ef5740fa4a280b7a068c82", "shasum": "" }, "require": { @@ -7618,7 +7730,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v8.0.3" + "source": "https://github.com/symfony/var-dumper/tree/v8.0.4" }, "funding": [ { @@ -7638,7 +7750,7 @@ "type": "tidelift" } ], - "time": "2025-12-18T11:23:51+00:00" + "time": "2026-01-01T23:07:29+00:00" }, { "name": "symfony/var-exporter", @@ -8099,16 +8211,16 @@ }, { "name": "webmozart/assert", - "version": "2.0.0", + "version": "2.1.2", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "1b34b004e35a164bc5bb6ebd33c844b2d8069a54" + "reference": "ce6a2f100c404b2d32a1dd1270f9b59ad4f57649" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/1b34b004e35a164bc5bb6ebd33c844b2d8069a54", - "reference": "1b34b004e35a164bc5bb6ebd33c844b2d8069a54", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/ce6a2f100c404b2d32a1dd1270f9b59ad4f57649", + "reference": "ce6a2f100c404b2d32a1dd1270f9b59ad4f57649", "shasum": "" }, "require": { @@ -8155,9 +8267,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/2.0.0" + "source": "https://github.com/webmozarts/assert/tree/2.1.2" }, - "time": "2025-12-16T21:36:00+00:00" + "time": "2026-01-13T14:02:24+00:00" }, { "name": "willdurand/negotiation", @@ -8613,16 +8725,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.92.4", + "version": "v3.92.5", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "9e7488b19403423e02e8403cc1eb596baf4673b0" + "reference": "260cc8c4a1d2f6d2f22cd4f9c70aa72e55ebac58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/9e7488b19403423e02e8403cc1eb596baf4673b0", - "reference": "9e7488b19403423e02e8403cc1eb596baf4673b0", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/260cc8c4a1d2f6d2f22cd4f9c70aa72e55ebac58", + "reference": "260cc8c4a1d2f6d2f22cd4f9c70aa72e55ebac58", "shasum": "" }, "require": { @@ -8705,7 +8817,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.92.4" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.92.5" }, "funding": [ { @@ -8713,7 +8825,7 @@ "type": "github" } ], - "time": "2026-01-04T00:38:52+00:00" + "time": "2026-01-08T21:57:37+00:00" }, { "name": "myclabs/deep-copy", @@ -9287,16 +9399,16 @@ }, { "name": "phpunit/phpunit", - "version": "12.5.4", + "version": "12.5.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "4ba0e923f9d3fc655de22f9547c01d15a41fc93a" + "reference": "ab8e4374264bc65523d1458d14bf80261577e01f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4ba0e923f9d3fc655de22f9547c01d15a41fc93a", - "reference": "4ba0e923f9d3fc655de22f9547c01d15a41fc93a", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ab8e4374264bc65523d1458d14bf80261577e01f", + "reference": "ab8e4374264bc65523d1458d14bf80261577e01f", "shasum": "" }, "require": { @@ -9310,7 +9422,7 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.3", - "phpunit/php-code-coverage": "^12.5.1", + "phpunit/php-code-coverage": "^12.5.2", "phpunit/php-file-iterator": "^6.0.0", "phpunit/php-invoker": "^6.0.0", "phpunit/php-text-template": "^5.0.0", @@ -9364,7 +9476,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.4" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.6" }, "funding": [ { @@ -9388,7 +9500,7 @@ "type": "tidelift" } ], - "time": "2025-12-15T06:05:34+00:00" + "time": "2026-01-16T16:28:10+00:00" }, { "name": "react/cache", @@ -11076,89 +11188,18 @@ ], "time": "2025-12-06T17:00:47+00:00" }, - { - "name": "symfony/options-resolver", - "version": "v8.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "d2b592535ffa6600c265a3893a7f7fd2bad82dd7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/d2b592535ffa6600c265a3893a7f7fd2bad82dd7", - "reference": "d2b592535ffa6600c265a3893a7f7fd2bad82dd7", - "shasum": "" - }, - "require": { - "php": ">=8.4", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an improved replacement for the array_replace PHP function", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], - "support": { - "source": "https://github.com/symfony/options-resolver/tree/v8.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-11-12T15:55:31+00:00" - }, { "name": "symfony/process", - "version": "v8.0.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "0cbbd88ec836f8757641c651bb995335846abb78" + "reference": "10df72602d88c0a3fa685b822976a052611dd607" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/0cbbd88ec836f8757641c651bb995335846abb78", - "reference": "0cbbd88ec836f8757641c651bb995335846abb78", + "url": "https://api.github.com/repos/symfony/process/zipball/10df72602d88c0a3fa685b822976a052611dd607", + "reference": "10df72602d88c0a3fa685b822976a052611dd607", "shasum": "" }, "require": { @@ -11190,7 +11231,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v8.0.3" + "source": "https://github.com/symfony/process/tree/v8.0.4" }, "funding": [ { @@ -11210,7 +11251,92 @@ "type": "tidelift" } ], - "time": "2025-12-19T10:01:18+00:00" + "time": "2026-01-23T11:07:10+00:00" + }, + { + "name": "symfony/web-profiler-bundle", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "88679cfe4067bafb8df5d6defcaec061fe16af2d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/88679cfe4067bafb8df5d6defcaec061fe16af2d", + "reference": "88679cfe4067bafb8df5d6defcaec061fe16af2d", + "shasum": "" + }, + "require": { + "composer-runtime-api": ">=2.1", + "php": ">=8.4", + "symfony/config": "^7.4|^8.0", + "symfony/framework-bundle": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", + "symfony/twig-bundle": "^7.4|^8.0" + }, + "conflict": { + "symfony/serializer": "<7.4", + "symfony/workflow": "<7.4" + }, + "require-dev": { + "symfony/browser-kit": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/css-selector": "^7.4|^8.0", + "symfony/runtime": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\WebProfilerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a development tool that gives detailed information about the execution of any request", + "homepage": "https://symfony.com", + "keywords": [ + "dev" + ], + "support": { + "source": "https://github.com/symfony/web-profiler-bundle/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-27T17:05:29+00:00" }, { "name": "theseer/tokenizer", diff --git a/config/bundles.php b/config/bundles.php index 9af6e40..5531a12 100644 --- a/config/bundles.php +++ b/config/bundles.php @@ -6,11 +6,13 @@ use ApiPlatform\Symfony\Bundle\ApiPlatformBundle; use Doctrine\Bundle\DoctrineBundle\DoctrineBundle; use Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle; use Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle; +use Malio\EdnotifBundle\EdnotifBundle; use Nelmio\CorsBundle\NelmioCorsBundle; use Symfony\Bundle\FrameworkBundle\FrameworkBundle; use Symfony\Bundle\MonologBundle\MonologBundle; use Symfony\Bundle\SecurityBundle\SecurityBundle; use Symfony\Bundle\TwigBundle\TwigBundle; +use Symfony\Bundle\WebProfilerBundle\WebProfilerBundle; return [ FrameworkBundle::class => ['all' => true], @@ -22,4 +24,6 @@ return [ LexikJWTAuthenticationBundle::class => ['all' => true], ApiPlatformBundle::class => ['all' => true], MonologBundle::class => ['all' => true], + EdnotifBundle::class => ['all' => true], + WebProfilerBundle::class => ['dev' => true], ]; diff --git a/config/packages/ednotif.yaml b/config/packages/ednotif.yaml new file mode 100644 index 0000000..c4b9fc9 --- /dev/null +++ b/config/packages/ednotif.yaml @@ -0,0 +1,13 @@ +ednotif: + guichet_wsdl: 'https://ws-reswel-elv.equade.fr/wsguichet/WsGuichet?wsdl' + metier_wsdl: 'https://ws-ednotif.equade.fr/wsIpBNotif/wsIpBNotif?wsdl' + exploitation_code: '%env(string:EDNOTIF_EXPLOITATION_CODE)%' + exploitation_number: '%env(string:EDNOTIF_EXPLOITATION_NUMERO)%' + exploitation_country_code: 'FR' + login: '%env(string:EDNOTIF_LOGIN)%' + password: '%env(string:EDNOTIF_PASSWORD)%' + token_ttl_seconds: 900 + soap_options: + trace: false + exceptions: true + connection_timeout: 15 diff --git a/config/packages/web_profiler.yaml b/config/packages/web_profiler.yaml new file mode 100644 index 0000000..025353a --- /dev/null +++ b/config/packages/web_profiler.yaml @@ -0,0 +1,7 @@ +when@dev: + web_profiler: + toolbar: true + + framework: + profiler: + collect_serializer_data: true diff --git a/config/reference.php b/config/reference.php index bd0651f..51984cc 100644 --- a/config/reference.php +++ b/config/reference.php @@ -35,7 +35,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * type?: string|null, * ignore_errors?: bool, * }> - * @psalm-type ParametersConfig = array|null>|null> + * @psalm-type ParametersConfig = array|Param|null>|Param|null> * @psalm-type ArgumentsType = list|array * @psalm-type CallType = array|array{0:string, 1?:ArgumentsType, 2?:bool}|array{method:string, arguments?:ArgumentsType, returns_clone?:bool} * @psalm-type TagsType = list>> // arrays inside the list must have only one element, with the tag name as the key @@ -128,44 +128,44 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * } * @psalm-type ExtensionType = array * @psalm-type FrameworkConfig = array{ - * secret?: scalar|null|Param, + * secret?: scalar|Param|null, * http_method_override?: bool|Param, // Set true to enable support for the '_method' request parameter to determine the intended HTTP method on POST requests. // Default: false * allowed_http_method_override?: list|null, - * trust_x_sendfile_type_header?: scalar|null|Param, // Set true to enable support for xsendfile in binary file responses. // Default: "%env(bool:default::SYMFONY_TRUST_X_SENDFILE_TYPE_HEADER)%" - * ide?: scalar|null|Param, // Default: "%env(default::SYMFONY_IDE)%" + * trust_x_sendfile_type_header?: scalar|Param|null, // Set true to enable support for xsendfile in binary file responses. // Default: "%env(bool:default::SYMFONY_TRUST_X_SENDFILE_TYPE_HEADER)%" + * ide?: scalar|Param|null, // Default: "%env(default::SYMFONY_IDE)%" * test?: bool|Param, - * default_locale?: scalar|null|Param, // Default: "en" + * default_locale?: scalar|Param|null, // Default: "en" * set_locale_from_accept_language?: bool|Param, // Whether to use the Accept-Language HTTP header to set the Request locale (only when the "_locale" request attribute is not passed). // Default: false * set_content_language_from_locale?: bool|Param, // Whether to set the Content-Language HTTP header on the Response using the Request locale. // Default: false - * enabled_locales?: list, - * trusted_hosts?: list, + * enabled_locales?: list, + * trusted_hosts?: list, * trusted_proxies?: mixed, // Default: ["%env(default::SYMFONY_TRUSTED_PROXIES)%"] - * trusted_headers?: list, - * error_controller?: scalar|null|Param, // Default: "error_controller" + * trusted_headers?: list, + * error_controller?: scalar|Param|null, // Default: "error_controller" * handle_all_throwables?: bool|Param, // HttpKernel will handle all kinds of \Throwable. // Default: true * csrf_protection?: bool|array{ - * enabled?: scalar|null|Param, // Default: null - * stateless_token_ids?: list, - * check_header?: scalar|null|Param, // Whether to check the CSRF token in a header in addition to a cookie when using stateless protection. // Default: false - * cookie_name?: scalar|null|Param, // The name of the cookie to use when using stateless protection. // Default: "csrf-token" + * enabled?: scalar|Param|null, // Default: null + * stateless_token_ids?: list, + * check_header?: scalar|Param|null, // Whether to check the CSRF token in a header in addition to a cookie when using stateless protection. // Default: false + * cookie_name?: scalar|Param|null, // The name of the cookie to use when using stateless protection. // Default: "csrf-token" * }, * form?: bool|array{ // Form configuration * enabled?: bool|Param, // Default: false - * csrf_protection?: array{ - * enabled?: scalar|null|Param, // Default: null - * token_id?: scalar|null|Param, // Default: null - * field_name?: scalar|null|Param, // Default: "_token" - * field_attr?: array, + * csrf_protection?: bool|array{ + * enabled?: scalar|Param|null, // Default: null + * token_id?: scalar|Param|null, // Default: null + * field_name?: scalar|Param|null, // Default: "_token" + * field_attr?: array, * }, * }, * http_cache?: bool|array{ // HTTP cache configuration * enabled?: bool|Param, // Default: false * debug?: bool|Param, // Default: "%kernel.debug%" * trace_level?: "none"|"short"|"full"|Param, - * trace_header?: scalar|null|Param, + * trace_header?: scalar|Param|null, * default_ttl?: int|Param, - * private_headers?: list, - * skip_response_headers?: list, + * private_headers?: list, + * skip_response_headers?: list, * allow_reload?: bool|Param, * allow_revalidate?: bool|Param, * stale_while_revalidate?: int|Param, @@ -180,16 +180,16 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * fragments?: bool|array{ // Fragments configuration * enabled?: bool|Param, // Default: false - * hinclude_default_template?: scalar|null|Param, // Default: null - * path?: scalar|null|Param, // Default: "/_fragment" + * hinclude_default_template?: scalar|Param|null, // Default: null + * path?: scalar|Param|null, // Default: "/_fragment" * }, * profiler?: bool|array{ // Profiler configuration * enabled?: bool|Param, // Default: false * collect?: bool|Param, // Default: true - * collect_parameter?: scalar|null|Param, // The name of the parameter to use to enable or disable collection on a per request basis. // Default: null + * collect_parameter?: scalar|Param|null, // The name of the parameter to use to enable or disable collection on a per request basis. // Default: null * only_exceptions?: bool|Param, // Default: false * only_main_requests?: bool|Param, // Default: false - * dsn?: scalar|null|Param, // Default: "file:%kernel.cache_dir%/profiler" + * dsn?: scalar|Param|null, // Default: "file:%kernel.cache_dir%/profiler" * collect_serializer_data?: true|Param, // Default: true * }, * workflows?: bool|array{ @@ -201,16 +201,16 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * type?: "workflow"|"state_machine"|Param, // Default: "state_machine" * marking_store?: array{ * type?: "method"|Param, - * property?: scalar|null|Param, - * service?: scalar|null|Param, + * property?: scalar|Param|null, + * service?: scalar|Param|null, * }, - * supports?: list, - * definition_validators?: list, - * support_strategy?: scalar|null|Param, - * initial_marking?: list, + * supports?: list, + * definition_validators?: list, + * support_strategy?: scalar|Param|null, + * initial_marking?: list, * events_to_dispatch?: list|null, * places?: list, * }>, * transitions: list>, + * formats?: array>, * }, * assets?: bool|array{ // Assets configuration * enabled?: bool|Param, // Default: true * strict_mode?: bool|Param, // Throw an exception if an entry is missing from the manifest.json. // Default: false - * version_strategy?: scalar|null|Param, // Default: null - * version?: scalar|null|Param, // Default: null - * version_format?: scalar|null|Param, // Default: "%%s?%%s" - * json_manifest_path?: scalar|null|Param, // Default: null - * base_path?: scalar|null|Param, // Default: "" - * base_urls?: list, + * version_strategy?: scalar|Param|null, // Default: null + * version?: scalar|Param|null, // Default: null + * version_format?: scalar|Param|null, // Default: "%%s?%%s" + * json_manifest_path?: scalar|Param|null, // Default: null + * base_path?: scalar|Param|null, // Default: "" + * base_urls?: list, * packages?: array, + * version_strategy?: scalar|Param|null, // Default: null + * version?: scalar|Param|null, + * version_format?: scalar|Param|null, // Default: null + * json_manifest_path?: scalar|Param|null, // Default: null + * base_path?: scalar|Param|null, // Default: "" + * base_urls?: list, * }>, * }, * asset_mapper?: bool|array{ // Asset Mapper configuration * enabled?: bool|Param, // Default: false - * paths?: array, - * excluded_patterns?: list, + * paths?: array, + * excluded_patterns?: list, * exclude_dotfiles?: bool|Param, // If true, any files starting with "." will be excluded from the asset mapper. // Default: true * server?: bool|Param, // If true, a "dev server" will return the assets from the public directory (true in "debug" mode only by default). // Default: true - * public_prefix?: scalar|null|Param, // The public path where the assets will be written to (and served from when "server" is true). // Default: "/assets/" + * public_prefix?: scalar|Param|null, // The public path where the assets will be written to (and served from when "server" is true). // Default: "/assets/" * missing_import_mode?: "strict"|"warn"|"ignore"|Param, // Behavior if an asset cannot be found when imported from JavaScript or CSS files - e.g. "import './non-existent.js'". "strict" means an exception is thrown, "warn" means a warning is logged, "ignore" means the import is left as-is. // Default: "warn" - * extensions?: array, - * importmap_path?: scalar|null|Param, // The path of the importmap.php file. // Default: "%kernel.project_dir%/importmap.php" - * importmap_polyfill?: scalar|null|Param, // The importmap name that will be used to load the polyfill. Set to false to disable. // Default: "es-module-shims" - * importmap_script_attributes?: array, - * vendor_dir?: scalar|null|Param, // The directory to store JavaScript vendors. // Default: "%kernel.project_dir%/assets/vendor" + * extensions?: array, + * importmap_path?: scalar|Param|null, // The path of the importmap.php file. // Default: "%kernel.project_dir%/importmap.php" + * importmap_polyfill?: scalar|Param|null, // The importmap name that will be used to load the polyfill. Set to false to disable. // Default: "es-module-shims" + * importmap_script_attributes?: array, + * vendor_dir?: scalar|Param|null, // The directory to store JavaScript vendors. // Default: "%kernel.project_dir%/assets/vendor" * precompress?: bool|array{ // Precompress assets with Brotli, Zstandard and gzip. * enabled?: bool|Param, // Default: false - * formats?: list, - * extensions?: list, + * formats?: list, + * extensions?: list, * }, * }, * translator?: bool|array{ // Translator configuration * enabled?: bool|Param, // Default: false - * fallbacks?: list, + * fallbacks?: list, * logging?: bool|Param, // Default: false - * formatter?: scalar|null|Param, // Default: "translator.formatter.default" - * cache_dir?: scalar|null|Param, // Default: "%kernel.cache_dir%/translations" - * default_path?: scalar|null|Param, // The default path used to load translations. // Default: "%kernel.project_dir%/translations" - * paths?: list, + * formatter?: scalar|Param|null, // Default: "translator.formatter.default" + * cache_dir?: scalar|Param|null, // Default: "%kernel.cache_dir%/translations" + * default_path?: scalar|Param|null, // The default path used to load translations. // Default: "%kernel.project_dir%/translations" + * paths?: list, * pseudo_localization?: bool|array{ * enabled?: bool|Param, // Default: false * accents?: bool|Param, // Default: true * expansion_factor?: float|Param, // Default: 1.0 * brackets?: bool|Param, // Default: true * parse_html?: bool|Param, // Default: false - * localizable_html_attributes?: list, + * localizable_html_attributes?: list, * }, * providers?: array, - * locales?: list, + * dsn?: scalar|Param|null, + * domains?: list, + * locales?: list, * }>, * globals?: array, + * parameters?: array, * domain?: string|Param, * }>, * }, * validation?: bool|array{ // Validation configuration * enabled?: bool|Param, // Default: true * enable_attributes?: bool|Param, // Default: true - * static_method?: list, - * translation_domain?: scalar|null|Param, // Default: "validators" + * static_method?: list, + * translation_domain?: scalar|Param|null, // Default: "validators" * email_validation_mode?: "html5"|"html5-allow-no-tld"|"strict"|Param, // Default: "html5" * mapping?: array{ - * paths?: list, + * paths?: list, * }, * not_compromised_password?: bool|array{ * enabled?: bool|Param, // When disabled, compromised passwords will be accepted as valid. // Default: true - * endpoint?: scalar|null|Param, // API endpoint for the NotCompromisedPassword Validator. // Default: null + * endpoint?: scalar|Param|null, // API endpoint for the NotCompromisedPassword Validator. // Default: null * }, * disable_translation?: bool|Param, // Default: false * auto_mapping?: array, + * services?: list, * }>, * }, * serializer?: bool|array{ // Serializer configuration * enabled?: bool|Param, // Default: true * enable_attributes?: bool|Param, // Default: true - * name_converter?: scalar|null|Param, - * circular_reference_handler?: scalar|null|Param, - * max_depth_handler?: scalar|null|Param, + * name_converter?: scalar|Param|null, + * circular_reference_handler?: scalar|Param|null, + * max_depth_handler?: scalar|Param|null, * mapping?: array{ - * paths?: list, + * paths?: list, * }, * default_context?: list, * named_serializers?: array, * include_built_in_normalizers?: bool|Param, // Whether to include the built-in normalizers // Default: true * include_built_in_encoders?: bool|Param, // Whether to include the built-in encoders // Default: true @@ -373,31 +373,31 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * type_info?: bool|array{ // Type info configuration * enabled?: bool|Param, // Default: true - * aliases?: array, + * aliases?: array, * }, * property_info?: bool|array{ // Property info configuration * enabled?: bool|Param, // Default: true * with_constructor_extractor?: bool|Param, // Registers the constructor extractor. // Default: true * }, * cache?: array{ // Cache configuration - * prefix_seed?: scalar|null|Param, // Used to namespace cache keys when using several apps with the same shared backend. // Default: "_%kernel.project_dir%.%kernel.container_class%" - * app?: scalar|null|Param, // App related cache pools configuration. // Default: "cache.adapter.filesystem" - * system?: scalar|null|Param, // System related cache pools configuration. // Default: "cache.adapter.system" - * directory?: scalar|null|Param, // Default: "%kernel.share_dir%/pools/app" - * default_psr6_provider?: scalar|null|Param, - * default_redis_provider?: scalar|null|Param, // Default: "redis://localhost" - * default_valkey_provider?: scalar|null|Param, // Default: "valkey://localhost" - * default_memcached_provider?: scalar|null|Param, // Default: "memcached://localhost" - * default_doctrine_dbal_provider?: scalar|null|Param, // Default: "database_connection" - * default_pdo_provider?: scalar|null|Param, // Default: null + * prefix_seed?: scalar|Param|null, // Used to namespace cache keys when using several apps with the same shared backend. // Default: "_%kernel.project_dir%.%kernel.container_class%" + * app?: scalar|Param|null, // App related cache pools configuration. // Default: "cache.adapter.filesystem" + * system?: scalar|Param|null, // System related cache pools configuration. // Default: "cache.adapter.system" + * directory?: scalar|Param|null, // Default: "%kernel.share_dir%/pools/app" + * default_psr6_provider?: scalar|Param|null, + * default_redis_provider?: scalar|Param|null, // Default: "redis://localhost" + * default_valkey_provider?: scalar|Param|null, // Default: "valkey://localhost" + * default_memcached_provider?: scalar|Param|null, // Default: "memcached://localhost" + * default_doctrine_dbal_provider?: scalar|Param|null, // Default: "database_connection" + * default_pdo_provider?: scalar|Param|null, // Default: null * pools?: array, - * tags?: scalar|null|Param, // Default: null + * adapters?: list, + * tags?: scalar|Param|null, // Default: null * public?: bool|Param, // Default: false - * default_lifetime?: scalar|null|Param, // Default lifetime of the pool. - * provider?: scalar|null|Param, // Overwrite the setting from the default provider for this adapter. - * early_expiration_message_bus?: scalar|null|Param, - * clearer?: scalar|null|Param, + * default_lifetime?: scalar|Param|null, // Default lifetime of the pool. + * provider?: scalar|Param|null, // Overwrite the setting from the default provider for this adapter. + * early_expiration_message_bus?: scalar|Param|null, + * clearer?: scalar|Param|null, * }>, * }, * php_errors?: array{ // PHP errors handling configuration @@ -405,51 +405,51 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * throw?: bool|Param, // Throw PHP errors as \ErrorException instances. // Default: true * }, * exceptions?: array, * web_link?: bool|array{ // Web links configuration * enabled?: bool|Param, // Default: true * }, * lock?: bool|string|array{ // Lock configuration * enabled?: bool|Param, // Default: false - * resources?: array>, + * resources?: array>, * }, * semaphore?: bool|string|array{ // Semaphore configuration * enabled?: bool|Param, // Default: false - * resources?: array, + * resources?: array, * }, * messenger?: bool|array{ // Messenger configuration * enabled?: bool|Param, // Default: false * routing?: array, + * senders?: list, * }>, * serializer?: array{ - * default_serializer?: scalar|null|Param, // Service id to use as the default serializer for the transports. // Default: "messenger.transport.native_php_serializer" + * default_serializer?: scalar|Param|null, // Service id to use as the default serializer for the transports. // Default: "messenger.transport.native_php_serializer" * symfony_serializer?: array{ - * format?: scalar|null|Param, // Serialization format for the messenger.transport.symfony_serializer service (which is not the serializer used by default). // Default: "json" + * format?: scalar|Param|null, // Serialization format for the messenger.transport.symfony_serializer service (which is not the serializer used by default). // Default: "json" * context?: array, * }, * }, * transports?: array, - * failure_transport?: scalar|null|Param, // Transport name to send failed messages to (after all retries have failed). // Default: null + * failure_transport?: scalar|Param|null, // Transport name to send failed messages to (after all retries have failed). // Default: null * retry_strategy?: string|array{ - * service?: scalar|null|Param, // Service id to override the retry strategy entirely. // Default: null + * service?: scalar|Param|null, // Service id to override the retry strategy entirely. // Default: null * max_retries?: int|Param, // Default: 3 * delay?: int|Param, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000 * multiplier?: float|Param, // If greater than 1, delay will grow exponentially for each retry: this delay = (delay * (multiple ^ retries)). // Default: 2 * max_delay?: int|Param, // Max time in ms that a retry should ever be delayed (0 = infinite). // Default: 0 * jitter?: float|Param, // Randomness to apply to the delay (between 0 and 1). // Default: 0.1 * }, - * rate_limiter?: scalar|null|Param, // Rate limiter name to use when processing messages. // Default: null + * rate_limiter?: scalar|Param|null, // Rate limiter name to use when processing messages. // Default: null * }>, - * failure_transport?: scalar|null|Param, // Transport name to send failed messages to (after all retries have failed). // Default: null - * stop_worker_on_signals?: list, - * default_bus?: scalar|null|Param, // Default: null + * failure_transport?: scalar|Param|null, // Transport name to send failed messages to (after all retries have failed). // Default: null + * stop_worker_on_signals?: list, + * default_bus?: scalar|Param|null, // Default: null * buses?: array, * }>, * }>, @@ -473,29 +473,29 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * headers?: array, * vars?: array, * max_redirects?: int|Param, // The maximum number of redirects to follow. - * http_version?: scalar|null|Param, // The default HTTP version, typically 1.1 or 2.0, leave to null for the best version. - * resolve?: array, - * proxy?: scalar|null|Param, // The URL of the proxy to pass requests through or null for automatic detection. - * no_proxy?: scalar|null|Param, // A comma separated list of hosts that do not require a proxy to be reached. + * http_version?: scalar|Param|null, // The default HTTP version, typically 1.1 or 2.0, leave to null for the best version. + * resolve?: array, + * proxy?: scalar|Param|null, // The URL of the proxy to pass requests through or null for automatic detection. + * no_proxy?: scalar|Param|null, // A comma separated list of hosts that do not require a proxy to be reached. * timeout?: float|Param, // The idle timeout, defaults to the "default_socket_timeout" ini parameter. * max_duration?: float|Param, // The maximum execution time for the request+response as a whole. - * bindto?: scalar|null|Param, // A network interface name, IP address, a host name or a UNIX socket to bind to. + * bindto?: scalar|Param|null, // A network interface name, IP address, a host name or a UNIX socket to bind to. * verify_peer?: bool|Param, // Indicates if the peer should be verified in a TLS context. * verify_host?: bool|Param, // Indicates if the host should exist as a certificate common name. - * cafile?: scalar|null|Param, // A certificate authority file. - * capath?: scalar|null|Param, // A directory that contains multiple certificate authority files. - * local_cert?: scalar|null|Param, // A PEM formatted certificate file. - * local_pk?: scalar|null|Param, // A private key file. - * passphrase?: scalar|null|Param, // The passphrase used to encrypt the "local_pk" file. - * ciphers?: scalar|null|Param, // A list of TLS ciphers separated by colons, commas or spaces (e.g. "RC3-SHA:TLS13-AES-128-GCM-SHA256"...) + * cafile?: scalar|Param|null, // A certificate authority file. + * capath?: scalar|Param|null, // A directory that contains multiple certificate authority files. + * local_cert?: scalar|Param|null, // A PEM formatted certificate file. + * local_pk?: scalar|Param|null, // A private key file. + * passphrase?: scalar|Param|null, // The passphrase used to encrypt the "local_pk" file. + * ciphers?: scalar|Param|null, // A list of TLS ciphers separated by colons, commas or spaces (e.g. "RC3-SHA:TLS13-AES-128-GCM-SHA256"...) * peer_fingerprint?: array{ // Associative array: hashing algorithm => hash(es). * sha1?: mixed, * pin-sha256?: mixed, * md5?: mixed, * }, - * crypto_method?: scalar|null|Param, // The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants. + * crypto_method?: scalar|Param|null, // The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants. * extra?: array, - * rate_limiter?: scalar|null|Param, // Rate limiter name to use for throttling requests. // Default: null + * rate_limiter?: scalar|Param|null, // Rate limiter name to use for throttling requests. // Default: null * caching?: bool|array{ // Caching configuration. * enabled?: bool|Param, // Default: false * cache_pool?: string|Param, // The taggable cache pool to use for storing the responses. // Default: "cache.http_client" @@ -504,7 +504,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * retry_failed?: bool|array{ * enabled?: bool|Param, // Default: false - * retry_strategy?: scalar|null|Param, // service id to override the retry strategy. // Default: null + * retry_strategy?: scalar|Param|null, // service id to override the retry strategy. // Default: null * http_codes?: array, @@ -516,39 +516,39 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * jitter?: float|Param, // Randomness in percent (between 0 and 1) to apply to the delay. // Default: 0.1 * }, * }, - * mock_response_factory?: scalar|null|Param, // The id of the service that should generate mock responses. It should be either an invokable or an iterable. + * mock_response_factory?: scalar|Param|null, // The id of the service that should generate mock responses. It should be either an invokable or an iterable. * scoped_clients?: array, + * scope?: scalar|Param|null, // The regular expression that the request URL must match before adding the other options. When none is provided, the base URI is used instead. + * base_uri?: scalar|Param|null, // The URI to resolve relative URLs, following rules in RFC 3985, section 2. + * auth_basic?: scalar|Param|null, // An HTTP Basic authentication "username:password". + * auth_bearer?: scalar|Param|null, // A token enabling HTTP Bearer authorization. + * auth_ntlm?: scalar|Param|null, // A "username:password" pair to use Microsoft NTLM authentication (requires the cURL extension). + * query?: array, * headers?: array, * max_redirects?: int|Param, // The maximum number of redirects to follow. - * http_version?: scalar|null|Param, // The default HTTP version, typically 1.1 or 2.0, leave to null for the best version. - * resolve?: array, - * proxy?: scalar|null|Param, // The URL of the proxy to pass requests through or null for automatic detection. - * no_proxy?: scalar|null|Param, // A comma separated list of hosts that do not require a proxy to be reached. + * http_version?: scalar|Param|null, // The default HTTP version, typically 1.1 or 2.0, leave to null for the best version. + * resolve?: array, + * proxy?: scalar|Param|null, // The URL of the proxy to pass requests through or null for automatic detection. + * no_proxy?: scalar|Param|null, // A comma separated list of hosts that do not require a proxy to be reached. * timeout?: float|Param, // The idle timeout, defaults to the "default_socket_timeout" ini parameter. * max_duration?: float|Param, // The maximum execution time for the request+response as a whole. - * bindto?: scalar|null|Param, // A network interface name, IP address, a host name or a UNIX socket to bind to. + * bindto?: scalar|Param|null, // A network interface name, IP address, a host name or a UNIX socket to bind to. * verify_peer?: bool|Param, // Indicates if the peer should be verified in a TLS context. * verify_host?: bool|Param, // Indicates if the host should exist as a certificate common name. - * cafile?: scalar|null|Param, // A certificate authority file. - * capath?: scalar|null|Param, // A directory that contains multiple certificate authority files. - * local_cert?: scalar|null|Param, // A PEM formatted certificate file. - * local_pk?: scalar|null|Param, // A private key file. - * passphrase?: scalar|null|Param, // The passphrase used to encrypt the "local_pk" file. - * ciphers?: scalar|null|Param, // A list of TLS ciphers separated by colons, commas or spaces (e.g. "RC3-SHA:TLS13-AES-128-GCM-SHA256"...). + * cafile?: scalar|Param|null, // A certificate authority file. + * capath?: scalar|Param|null, // A directory that contains multiple certificate authority files. + * local_cert?: scalar|Param|null, // A PEM formatted certificate file. + * local_pk?: scalar|Param|null, // A private key file. + * passphrase?: scalar|Param|null, // The passphrase used to encrypt the "local_pk" file. + * ciphers?: scalar|Param|null, // A list of TLS ciphers separated by colons, commas or spaces (e.g. "RC3-SHA:TLS13-AES-128-GCM-SHA256"...). * peer_fingerprint?: array{ // Associative array: hashing algorithm => hash(es). * sha1?: mixed, * pin-sha256?: mixed, * md5?: mixed, * }, - * crypto_method?: scalar|null|Param, // The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants. + * crypto_method?: scalar|Param|null, // The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants. * extra?: array, - * rate_limiter?: scalar|null|Param, // Rate limiter name to use for throttling requests. // Default: null + * rate_limiter?: scalar|Param|null, // Rate limiter name to use for throttling requests. // Default: null * caching?: bool|array{ // Caching configuration. * enabled?: bool|Param, // Default: false * cache_pool?: string|Param, // The taggable cache pool to use for storing the responses. // Default: "cache.http_client" @@ -557,7 +557,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * retry_failed?: bool|array{ * enabled?: bool|Param, // Default: false - * retry_strategy?: scalar|null|Param, // service id to override the retry strategy. // Default: null + * retry_strategy?: scalar|Param|null, // service id to override the retry strategy. // Default: null * http_codes?: array, @@ -572,69 +572,69 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * mailer?: bool|array{ // Mailer configuration * enabled?: bool|Param, // Default: false - * message_bus?: scalar|null|Param, // The message bus to use. Defaults to the default bus if the Messenger component is installed. // Default: null - * dsn?: scalar|null|Param, // Default: null - * transports?: array, + * message_bus?: scalar|Param|null, // The message bus to use. Defaults to the default bus if the Messenger component is installed. // Default: null + * dsn?: scalar|Param|null, // Default: null + * transports?: array, * envelope?: array{ // Mailer Envelope configuration - * sender?: scalar|null|Param, - * recipients?: list, - * allowed_recipients?: list, + * sender?: scalar|Param|null, + * recipients?: list, + * allowed_recipients?: list, * }, * headers?: array, * dkim_signer?: bool|array{ // DKIM signer configuration * enabled?: bool|Param, // Default: false - * key?: scalar|null|Param, // Key content, or path to key (in PEM format with the `file://` prefix) // Default: "" - * domain?: scalar|null|Param, // Default: "" - * select?: scalar|null|Param, // Default: "" - * passphrase?: scalar|null|Param, // The private key passphrase // Default: "" + * key?: scalar|Param|null, // Key content, or path to key (in PEM format with the `file://` prefix) // Default: "" + * domain?: scalar|Param|null, // Default: "" + * select?: scalar|Param|null, // Default: "" + * passphrase?: scalar|Param|null, // The private key passphrase // Default: "" * options?: array, * }, * smime_signer?: bool|array{ // S/MIME signer configuration * enabled?: bool|Param, // Default: false - * key?: scalar|null|Param, // Path to key (in PEM format) // Default: "" - * certificate?: scalar|null|Param, // Path to certificate (in PEM format without the `file://` prefix) // Default: "" - * passphrase?: scalar|null|Param, // The private key passphrase // Default: null - * extra_certificates?: scalar|null|Param, // Default: null + * key?: scalar|Param|null, // Path to key (in PEM format) // Default: "" + * certificate?: scalar|Param|null, // Path to certificate (in PEM format without the `file://` prefix) // Default: "" + * passphrase?: scalar|Param|null, // The private key passphrase // Default: null + * extra_certificates?: scalar|Param|null, // Default: null * sign_options?: int|Param, // Default: null * }, * smime_encrypter?: bool|array{ // S/MIME encrypter configuration * enabled?: bool|Param, // Default: false - * repository?: scalar|null|Param, // S/MIME certificate repository service. This service shall implement the `Symfony\Component\Mailer\EventListener\SmimeCertificateRepositoryInterface`. // Default: "" + * repository?: scalar|Param|null, // S/MIME certificate repository service. This service shall implement the `Symfony\Component\Mailer\EventListener\SmimeCertificateRepositoryInterface`. // Default: "" * cipher?: int|Param, // A set of algorithms used to encrypt the message // Default: null * }, * }, * secrets?: bool|array{ * enabled?: bool|Param, // Default: true - * vault_directory?: scalar|null|Param, // Default: "%kernel.project_dir%/config/secrets/%kernel.runtime_environment%" - * local_dotenv_file?: scalar|null|Param, // Default: "%kernel.project_dir%/.env.%kernel.runtime_environment%.local" - * decryption_env_var?: scalar|null|Param, // Default: "base64:default::SYMFONY_DECRYPTION_SECRET" + * vault_directory?: scalar|Param|null, // Default: "%kernel.project_dir%/config/secrets/%kernel.runtime_environment%" + * local_dotenv_file?: scalar|Param|null, // Default: "%kernel.project_dir%/.env.%kernel.environment%.local" + * decryption_env_var?: scalar|Param|null, // Default: "base64:default::SYMFONY_DECRYPTION_SECRET" * }, * notifier?: bool|array{ // Notifier configuration * enabled?: bool|Param, // Default: false - * message_bus?: scalar|null|Param, // The message bus to use. Defaults to the default bus if the Messenger component is installed. // Default: null - * chatter_transports?: array, - * texter_transports?: array, + * message_bus?: scalar|Param|null, // The message bus to use. Defaults to the default bus if the Messenger component is installed. // Default: null + * chatter_transports?: array, + * texter_transports?: array, * notification_on_failed_messages?: bool|Param, // Default: false - * channel_policy?: array>, + * channel_policy?: array>, * admin_recipients?: list, * }, * rate_limiter?: bool|array{ // Rate limiter configuration * enabled?: bool|Param, // Default: false * limiters?: array, + * limiters?: list, * limit?: int|Param, // The maximum allowed hits in a fixed interval or burst. - * interval?: scalar|null|Param, // Configures the fixed interval if "policy" is set to "fixed_window" or "sliding_window". The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent). + * interval?: scalar|Param|null, // Configures the fixed interval if "policy" is set to "fixed_window" or "sliding_window". The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent). * rate?: array{ // Configures the fill rate if "policy" is set to "token_bucket". - * interval?: scalar|null|Param, // Configures the rate interval. The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent). + * interval?: scalar|Param|null, // Configures the rate interval. The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent). * amount?: int|Param, // Amount of tokens to add each interval. // Default: 1 * }, * }>, @@ -643,9 +643,9 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * enabled?: bool|Param, // Default: true * default_uuid_version?: 7|6|4|1|Param, // Default: 7 * name_based_uuid_version?: 5|3|Param, // Default: 5 - * name_based_uuid_namespace?: scalar|null|Param, + * name_based_uuid_namespace?: scalar|Param|null, * time_based_uuid_version?: 7|6|1|Param, // Default: 7 - * time_based_uuid_node?: scalar|null|Param, + * time_based_uuid_node?: scalar|Param|null, * }, * html_sanitizer?: bool|array{ // HtmlSanitizer configuration * enabled?: bool|Param, // Default: false @@ -672,10 +672,10 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * webhook?: bool|array{ // Webhook configuration * enabled?: bool|Param, // Default: false - * message_bus?: scalar|null|Param, // The message bus to use. // Default: "messenger.default_bus" + * message_bus?: scalar|Param|null, // The message bus to use. // Default: "messenger.default_bus" * routing?: array, * }, * remote-event?: bool|array{ // RemoteEvent configuration @@ -686,439 +686,439 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * } * @psalm-type TwigConfig = array{ - * form_themes?: list, + * form_themes?: list, * globals?: array, - * autoescape_service?: scalar|null|Param, // Default: null - * autoescape_service_method?: scalar|null|Param, // Default: null - * cache?: scalar|null|Param, // Default: true - * charset?: scalar|null|Param, // Default: "%kernel.charset%" + * autoescape_service?: scalar|Param|null, // Default: null + * autoescape_service_method?: scalar|Param|null, // Default: null + * cache?: scalar|Param|null, // Default: true + * charset?: scalar|Param|null, // Default: "%kernel.charset%" * debug?: bool|Param, // Default: "%kernel.debug%" * strict_variables?: bool|Param, // Default: "%kernel.debug%" - * auto_reload?: scalar|null|Param, + * auto_reload?: scalar|Param|null, * optimizations?: int|Param, - * default_path?: scalar|null|Param, // The default path used to load templates. // Default: "%kernel.project_dir%/templates" - * file_name_pattern?: list, + * default_path?: scalar|Param|null, // The default path used to load templates. // Default: "%kernel.project_dir%/templates" + * file_name_pattern?: list, * paths?: array, * date?: array{ // The default format options used by the date filter. - * format?: scalar|null|Param, // Default: "F j, Y H:i" - * interval_format?: scalar|null|Param, // Default: "%d days" - * timezone?: scalar|null|Param, // The timezone used when formatting dates, when set to null, the timezone returned by date_default_timezone_get() is used. // Default: null + * format?: scalar|Param|null, // Default: "F j, Y H:i" + * interval_format?: scalar|Param|null, // Default: "%d days" + * timezone?: scalar|Param|null, // The timezone used when formatting dates, when set to null, the timezone returned by date_default_timezone_get() is used. // Default: null * }, * number_format?: array{ // The default format options for the number_format filter. * decimals?: int|Param, // Default: 0 - * decimal_point?: scalar|null|Param, // Default: "." - * thousands_separator?: scalar|null|Param, // Default: "," + * decimal_point?: scalar|Param|null, // Default: "." + * thousands_separator?: scalar|Param|null, // Default: "," * }, * mailer?: array{ - * html_to_text_converter?: scalar|null|Param, // A service implementing the "Symfony\Component\Mime\HtmlToTextConverter\HtmlToTextConverterInterface". // Default: null + * html_to_text_converter?: scalar|Param|null, // A service implementing the "Symfony\Component\Mime\HtmlToTextConverter\HtmlToTextConverterInterface". // Default: null * }, * } * @psalm-type SecurityConfig = array{ - * access_denied_url?: scalar|null|Param, // Default: null + * access_denied_url?: scalar|Param|null, // Default: null * session_fixation_strategy?: "none"|"migrate"|"invalidate"|Param, // Default: "migrate" * expose_security_errors?: \Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::None|\Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::AccountStatus|\Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::All|Param, // Default: "none" * erase_credentials?: bool|Param, // Default: true * access_decision_manager?: array{ * strategy?: "affirmative"|"consensus"|"unanimous"|"priority"|Param, - * service?: scalar|null|Param, - * strategy_service?: scalar|null|Param, + * service?: scalar|Param|null, + * strategy_service?: scalar|Param|null, * allow_if_all_abstain?: bool|Param, // Default: false * allow_if_equal_granted_denied?: bool|Param, // Default: true * }, * password_hashers?: array, - * hash_algorithm?: scalar|null|Param, // Name of hashing algorithm for PBKDF2 (i.e. sha256, sha512, etc..) See hash_algos() for a list of supported algorithms. // Default: "sha512" - * key_length?: scalar|null|Param, // Default: 40 + * algorithm?: scalar|Param|null, + * migrate_from?: list, + * hash_algorithm?: scalar|Param|null, // Name of hashing algorithm for PBKDF2 (i.e. sha256, sha512, etc..) See hash_algos() for a list of supported algorithms. // Default: "sha512" + * key_length?: scalar|Param|null, // Default: 40 * ignore_case?: bool|Param, // Default: false * encode_as_base64?: bool|Param, // Default: true - * iterations?: scalar|null|Param, // Default: 5000 + * iterations?: scalar|Param|null, // Default: 5000 * cost?: int|Param, // Default: null - * memory_cost?: scalar|null|Param, // Default: null - * time_cost?: scalar|null|Param, // Default: null - * id?: scalar|null|Param, + * memory_cost?: scalar|Param|null, // Default: null + * time_cost?: scalar|Param|null, // Default: null + * id?: scalar|Param|null, * }>, * providers?: array, + * providers?: list, * }, * memory?: array{ * users?: array, + * password?: scalar|Param|null, // Default: null + * roles?: list, * }>, * }, * ldap?: array{ - * service: scalar|null|Param, - * base_dn: scalar|null|Param, - * search_dn?: scalar|null|Param, // Default: null - * search_password?: scalar|null|Param, // Default: null - * extra_fields?: list, - * default_roles?: list, - * role_fetcher?: scalar|null|Param, // Default: null - * uid_key?: scalar|null|Param, // Default: "sAMAccountName" - * filter?: scalar|null|Param, // Default: "({uid_key}={user_identifier})" - * password_attribute?: scalar|null|Param, // Default: null + * service: scalar|Param|null, + * base_dn: scalar|Param|null, + * search_dn?: scalar|Param|null, // Default: null + * search_password?: scalar|Param|null, // Default: null + * extra_fields?: list, + * default_roles?: list, + * role_fetcher?: scalar|Param|null, // Default: null + * uid_key?: scalar|Param|null, // Default: "sAMAccountName" + * filter?: scalar|Param|null, // Default: "({uid_key}={user_identifier})" + * password_attribute?: scalar|Param|null, // Default: null * }, * entity?: array{ - * class: scalar|null|Param, // The full entity class name of your user class. - * property?: scalar|null|Param, // Default: null - * manager_name?: scalar|null|Param, // Default: null + * class: scalar|Param|null, // The full entity class name of your user class. + * property?: scalar|Param|null, // Default: null + * manager_name?: scalar|Param|null, // Default: null * }, * lexik_jwt?: array{ - * class?: scalar|null|Param, // Default: "Lexik\\Bundle\\JWTAuthenticationBundle\\Security\\User\\JWTUser" + * class?: scalar|Param|null, // Default: "Lexik\\Bundle\\JWTAuthenticationBundle\\Security\\User\\JWTUser" * }, * }>, * firewalls: array, + * pattern?: scalar|Param|null, + * host?: scalar|Param|null, + * methods?: list, * security?: bool|Param, // Default: true - * user_checker?: scalar|null|Param, // The UserChecker to use when authenticating users in this firewall. // Default: "security.user_checker" - * request_matcher?: scalar|null|Param, - * access_denied_url?: scalar|null|Param, - * access_denied_handler?: scalar|null|Param, - * entry_point?: scalar|null|Param, // An enabled authenticator name or a service id that implements "Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface". - * provider?: scalar|null|Param, + * user_checker?: scalar|Param|null, // The UserChecker to use when authenticating users in this firewall. // Default: "security.user_checker" + * request_matcher?: scalar|Param|null, + * access_denied_url?: scalar|Param|null, + * access_denied_handler?: scalar|Param|null, + * entry_point?: scalar|Param|null, // An enabled authenticator name or a service id that implements "Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface". + * provider?: scalar|Param|null, * stateless?: bool|Param, // Default: false * lazy?: bool|Param, // Default: false - * context?: scalar|null|Param, + * context?: scalar|Param|null, * logout?: array{ - * enable_csrf?: bool|null|Param, // Default: null - * csrf_token_id?: scalar|null|Param, // Default: "logout" - * csrf_parameter?: scalar|null|Param, // Default: "_csrf_token" - * csrf_token_manager?: scalar|null|Param, - * path?: scalar|null|Param, // Default: "/logout" - * target?: scalar|null|Param, // Default: "/" + * enable_csrf?: bool|Param|null, // Default: null + * csrf_token_id?: scalar|Param|null, // Default: "logout" + * csrf_parameter?: scalar|Param|null, // Default: "_csrf_token" + * csrf_token_manager?: scalar|Param|null, + * path?: scalar|Param|null, // Default: "/logout" + * target?: scalar|Param|null, // Default: "/" * invalidate_session?: bool|Param, // Default: true * clear_site_data?: list<"*"|"cache"|"cookies"|"storage"|"executionContexts"|Param>, * delete_cookies?: array, * }, * switch_user?: array{ - * provider?: scalar|null|Param, - * parameter?: scalar|null|Param, // Default: "_switch_user" - * role?: scalar|null|Param, // Default: "ROLE_ALLOWED_TO_SWITCH" - * target_route?: scalar|null|Param, // Default: null + * provider?: scalar|Param|null, + * parameter?: scalar|Param|null, // Default: "_switch_user" + * role?: scalar|Param|null, // Default: "ROLE_ALLOWED_TO_SWITCH" + * target_route?: scalar|Param|null, // Default: null * }, - * required_badges?: list, - * custom_authenticators?: list, + * required_badges?: list, + * custom_authenticators?: list, * login_throttling?: array{ - * limiter?: scalar|null|Param, // A service id implementing "Symfony\Component\HttpFoundation\RateLimiter\RequestRateLimiterInterface". + * limiter?: scalar|Param|null, // A service id implementing "Symfony\Component\HttpFoundation\RateLimiter\RequestRateLimiterInterface". * max_attempts?: int|Param, // Default: 5 - * interval?: scalar|null|Param, // Default: "1 minute" - * lock_factory?: scalar|null|Param, // The service ID of the lock factory used by the login rate limiter (or null to disable locking). // Default: null + * interval?: scalar|Param|null, // Default: "1 minute" + * lock_factory?: scalar|Param|null, // The service ID of the lock factory used by the login rate limiter (or null to disable locking). // Default: null * cache_pool?: string|Param, // The cache pool to use for storing the limiter state // Default: "cache.rate_limiter" * storage_service?: string|Param, // The service ID of a custom storage implementation, this precedes any configured "cache_pool" // Default: null * }, * x509?: array{ - * provider?: scalar|null|Param, - * user?: scalar|null|Param, // Default: "SSL_CLIENT_S_DN_Email" - * credentials?: scalar|null|Param, // Default: "SSL_CLIENT_S_DN" - * user_identifier?: scalar|null|Param, // Default: "emailAddress" + * provider?: scalar|Param|null, + * user?: scalar|Param|null, // Default: "SSL_CLIENT_S_DN_Email" + * credentials?: scalar|Param|null, // Default: "SSL_CLIENT_S_DN" + * user_identifier?: scalar|Param|null, // Default: "emailAddress" * }, * remote_user?: array{ - * provider?: scalar|null|Param, - * user?: scalar|null|Param, // Default: "REMOTE_USER" + * provider?: scalar|Param|null, + * user?: scalar|Param|null, // Default: "REMOTE_USER" * }, * jwt?: array{ - * provider?: scalar|null|Param, // Default: null - * authenticator?: scalar|null|Param, // Default: "lexik_jwt_authentication.security.jwt_authenticator" + * provider?: scalar|Param|null, // Default: null + * authenticator?: scalar|Param|null, // Default: "lexik_jwt_authentication.security.jwt_authenticator" * }, * login_link?: array{ - * check_route: scalar|null|Param, // Route that will validate the login link - e.g. "app_login_link_verify". - * check_post_only?: scalar|null|Param, // If true, only HTTP POST requests to "check_route" will be handled by the authenticator. // Default: false - * signature_properties: list, + * check_route: scalar|Param|null, // Route that will validate the login link - e.g. "app_login_link_verify". + * check_post_only?: scalar|Param|null, // If true, only HTTP POST requests to "check_route" will be handled by the authenticator. // Default: false + * signature_properties: list, * lifetime?: int|Param, // The lifetime of the login link in seconds. // Default: 600 * max_uses?: int|Param, // Max number of times a login link can be used - null means unlimited within lifetime. // Default: null - * used_link_cache?: scalar|null|Param, // Cache service id used to expired links of max_uses is set. - * success_handler?: scalar|null|Param, // A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface. - * failure_handler?: scalar|null|Param, // A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface. - * provider?: scalar|null|Param, // The user provider to load users from. - * secret?: scalar|null|Param, // Default: "%kernel.secret%" + * used_link_cache?: scalar|Param|null, // Cache service id used to expired links of max_uses is set. + * success_handler?: scalar|Param|null, // A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface. + * failure_handler?: scalar|Param|null, // A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface. + * provider?: scalar|Param|null, // The user provider to load users from. + * secret?: scalar|Param|null, // Default: "%kernel.secret%" * always_use_default_target_path?: bool|Param, // Default: false - * default_target_path?: scalar|null|Param, // Default: "/" - * login_path?: scalar|null|Param, // Default: "/login" - * target_path_parameter?: scalar|null|Param, // Default: "_target_path" + * default_target_path?: scalar|Param|null, // Default: "/" + * login_path?: scalar|Param|null, // Default: "/login" + * target_path_parameter?: scalar|Param|null, // Default: "_target_path" * use_referer?: bool|Param, // Default: false - * failure_path?: scalar|null|Param, // Default: null + * failure_path?: scalar|Param|null, // Default: null * failure_forward?: bool|Param, // Default: false - * failure_path_parameter?: scalar|null|Param, // Default: "_failure_path" + * failure_path_parameter?: scalar|Param|null, // Default: "_failure_path" * }, * form_login?: array{ - * provider?: scalar|null|Param, + * provider?: scalar|Param|null, * remember_me?: bool|Param, // Default: true - * success_handler?: scalar|null|Param, - * failure_handler?: scalar|null|Param, - * check_path?: scalar|null|Param, // Default: "/login_check" + * success_handler?: scalar|Param|null, + * failure_handler?: scalar|Param|null, + * check_path?: scalar|Param|null, // Default: "/login_check" * use_forward?: bool|Param, // Default: false - * login_path?: scalar|null|Param, // Default: "/login" - * username_parameter?: scalar|null|Param, // Default: "_username" - * password_parameter?: scalar|null|Param, // Default: "_password" - * csrf_parameter?: scalar|null|Param, // Default: "_csrf_token" - * csrf_token_id?: scalar|null|Param, // Default: "authenticate" + * login_path?: scalar|Param|null, // Default: "/login" + * username_parameter?: scalar|Param|null, // Default: "_username" + * password_parameter?: scalar|Param|null, // Default: "_password" + * csrf_parameter?: scalar|Param|null, // Default: "_csrf_token" + * csrf_token_id?: scalar|Param|null, // Default: "authenticate" * enable_csrf?: bool|Param, // Default: false * post_only?: bool|Param, // Default: true * form_only?: bool|Param, // Default: false * always_use_default_target_path?: bool|Param, // Default: false - * default_target_path?: scalar|null|Param, // Default: "/" - * target_path_parameter?: scalar|null|Param, // Default: "_target_path" + * default_target_path?: scalar|Param|null, // Default: "/" + * target_path_parameter?: scalar|Param|null, // Default: "_target_path" * use_referer?: bool|Param, // Default: false - * failure_path?: scalar|null|Param, // Default: null + * failure_path?: scalar|Param|null, // Default: null * failure_forward?: bool|Param, // Default: false - * failure_path_parameter?: scalar|null|Param, // Default: "_failure_path" + * failure_path_parameter?: scalar|Param|null, // Default: "_failure_path" * }, * form_login_ldap?: array{ - * provider?: scalar|null|Param, + * provider?: scalar|Param|null, * remember_me?: bool|Param, // Default: true - * success_handler?: scalar|null|Param, - * failure_handler?: scalar|null|Param, - * check_path?: scalar|null|Param, // Default: "/login_check" + * success_handler?: scalar|Param|null, + * failure_handler?: scalar|Param|null, + * check_path?: scalar|Param|null, // Default: "/login_check" * use_forward?: bool|Param, // Default: false - * login_path?: scalar|null|Param, // Default: "/login" - * username_parameter?: scalar|null|Param, // Default: "_username" - * password_parameter?: scalar|null|Param, // Default: "_password" - * csrf_parameter?: scalar|null|Param, // Default: "_csrf_token" - * csrf_token_id?: scalar|null|Param, // Default: "authenticate" + * login_path?: scalar|Param|null, // Default: "/login" + * username_parameter?: scalar|Param|null, // Default: "_username" + * password_parameter?: scalar|Param|null, // Default: "_password" + * csrf_parameter?: scalar|Param|null, // Default: "_csrf_token" + * csrf_token_id?: scalar|Param|null, // Default: "authenticate" * enable_csrf?: bool|Param, // Default: false * post_only?: bool|Param, // Default: true * form_only?: bool|Param, // Default: false * always_use_default_target_path?: bool|Param, // Default: false - * default_target_path?: scalar|null|Param, // Default: "/" - * target_path_parameter?: scalar|null|Param, // Default: "_target_path" + * default_target_path?: scalar|Param|null, // Default: "/" + * target_path_parameter?: scalar|Param|null, // Default: "_target_path" * use_referer?: bool|Param, // Default: false - * failure_path?: scalar|null|Param, // Default: null + * failure_path?: scalar|Param|null, // Default: null * failure_forward?: bool|Param, // Default: false - * failure_path_parameter?: scalar|null|Param, // Default: "_failure_path" - * service?: scalar|null|Param, // Default: "ldap" - * dn_string?: scalar|null|Param, // Default: "{user_identifier}" - * query_string?: scalar|null|Param, - * search_dn?: scalar|null|Param, // Default: "" - * search_password?: scalar|null|Param, // Default: "" + * failure_path_parameter?: scalar|Param|null, // Default: "_failure_path" + * service?: scalar|Param|null, // Default: "ldap" + * dn_string?: scalar|Param|null, // Default: "{user_identifier}" + * query_string?: scalar|Param|null, + * search_dn?: scalar|Param|null, // Default: "" + * search_password?: scalar|Param|null, // Default: "" * }, * json_login?: array{ - * provider?: scalar|null|Param, + * provider?: scalar|Param|null, * remember_me?: bool|Param, // Default: true - * success_handler?: scalar|null|Param, - * failure_handler?: scalar|null|Param, - * check_path?: scalar|null|Param, // Default: "/login_check" + * success_handler?: scalar|Param|null, + * failure_handler?: scalar|Param|null, + * check_path?: scalar|Param|null, // Default: "/login_check" * use_forward?: bool|Param, // Default: false - * login_path?: scalar|null|Param, // Default: "/login" - * username_path?: scalar|null|Param, // Default: "username" - * password_path?: scalar|null|Param, // Default: "password" + * login_path?: scalar|Param|null, // Default: "/login" + * username_path?: scalar|Param|null, // Default: "username" + * password_path?: scalar|Param|null, // Default: "password" * }, * json_login_ldap?: array{ - * provider?: scalar|null|Param, + * provider?: scalar|Param|null, * remember_me?: bool|Param, // Default: true - * success_handler?: scalar|null|Param, - * failure_handler?: scalar|null|Param, - * check_path?: scalar|null|Param, // Default: "/login_check" + * success_handler?: scalar|Param|null, + * failure_handler?: scalar|Param|null, + * check_path?: scalar|Param|null, // Default: "/login_check" * use_forward?: bool|Param, // Default: false - * login_path?: scalar|null|Param, // Default: "/login" - * username_path?: scalar|null|Param, // Default: "username" - * password_path?: scalar|null|Param, // Default: "password" - * service?: scalar|null|Param, // Default: "ldap" - * dn_string?: scalar|null|Param, // Default: "{user_identifier}" - * query_string?: scalar|null|Param, - * search_dn?: scalar|null|Param, // Default: "" - * search_password?: scalar|null|Param, // Default: "" + * login_path?: scalar|Param|null, // Default: "/login" + * username_path?: scalar|Param|null, // Default: "username" + * password_path?: scalar|Param|null, // Default: "password" + * service?: scalar|Param|null, // Default: "ldap" + * dn_string?: scalar|Param|null, // Default: "{user_identifier}" + * query_string?: scalar|Param|null, + * search_dn?: scalar|Param|null, // Default: "" + * search_password?: scalar|Param|null, // Default: "" * }, * access_token?: array{ - * provider?: scalar|null|Param, + * provider?: scalar|Param|null, * remember_me?: bool|Param, // Default: true - * success_handler?: scalar|null|Param, - * failure_handler?: scalar|null|Param, - * realm?: scalar|null|Param, // Default: null - * token_extractors?: list, + * success_handler?: scalar|Param|null, + * failure_handler?: scalar|Param|null, + * realm?: scalar|Param|null, // Default: null + * token_extractors?: list, * token_handler: string|array{ - * id?: scalar|null|Param, + * id?: scalar|Param|null, * oidc_user_info?: string|array{ - * base_uri: scalar|null|Param, // Base URI of the userinfo endpoint on the OIDC server, or the OIDC server URI to use the discovery (require "discovery" to be configured). + * base_uri: scalar|Param|null, // Base URI of the userinfo endpoint on the OIDC server, or the OIDC server URI to use the discovery (require "discovery" to be configured). * discovery?: array{ // Enable the OIDC discovery. * cache?: array{ - * id: scalar|null|Param, // Cache service id to use to cache the OIDC discovery configuration. + * id: scalar|Param|null, // Cache service id to use to cache the OIDC discovery configuration. * }, * }, - * claim?: scalar|null|Param, // Claim which contains the user identifier (e.g. sub, email, etc.). // Default: "sub" - * client?: scalar|null|Param, // HttpClient service id to use to call the OIDC server. + * claim?: scalar|Param|null, // Claim which contains the user identifier (e.g. sub, email, etc.). // Default: "sub" + * client?: scalar|Param|null, // HttpClient service id to use to call the OIDC server. * }, * oidc?: array{ * discovery?: array{ // Enable the OIDC discovery. - * base_uri: list, + * base_uri: list, * cache?: array{ - * id: scalar|null|Param, // Cache service id to use to cache the OIDC discovery configuration. + * id: scalar|Param|null, // Cache service id to use to cache the OIDC discovery configuration. * }, * }, - * claim?: scalar|null|Param, // Claim which contains the user identifier (e.g.: sub, email..). // Default: "sub" - * audience: scalar|null|Param, // Audience set in the token, for validation purpose. - * issuers: list, - * algorithms: list, - * keyset?: scalar|null|Param, // JSON-encoded JWKSet used to sign the token (must contain a list of valid public keys). + * claim?: scalar|Param|null, // Claim which contains the user identifier (e.g.: sub, email..). // Default: "sub" + * audience: scalar|Param|null, // Audience set in the token, for validation purpose. + * issuers: list, + * algorithms: list, + * keyset?: scalar|Param|null, // JSON-encoded JWKSet used to sign the token (must contain a list of valid public keys). * encryption?: bool|array{ * enabled?: bool|Param, // Default: false * enforce?: bool|Param, // When enabled, the token shall be encrypted. // Default: false - * algorithms: list, - * keyset: scalar|null|Param, // JSON-encoded JWKSet used to decrypt the token (must contain a list of valid private keys). + * algorithms: list, + * keyset: scalar|Param|null, // JSON-encoded JWKSet used to decrypt the token (must contain a list of valid private keys). * }, * }, * cas?: array{ - * validation_url: scalar|null|Param, // CAS server validation URL - * prefix?: scalar|null|Param, // CAS prefix // Default: "cas" - * http_client?: scalar|null|Param, // HTTP Client service // Default: null + * validation_url: scalar|Param|null, // CAS server validation URL + * prefix?: scalar|Param|null, // CAS prefix // Default: "cas" + * http_client?: scalar|Param|null, // HTTP Client service // Default: null * }, - * oauth2?: scalar|null|Param, + * oauth2?: scalar|Param|null, * }, * }, * http_basic?: array{ - * provider?: scalar|null|Param, - * realm?: scalar|null|Param, // Default: "Secured Area" + * provider?: scalar|Param|null, + * realm?: scalar|Param|null, // Default: "Secured Area" * }, * http_basic_ldap?: array{ - * provider?: scalar|null|Param, - * realm?: scalar|null|Param, // Default: "Secured Area" - * service?: scalar|null|Param, // Default: "ldap" - * dn_string?: scalar|null|Param, // Default: "{user_identifier}" - * query_string?: scalar|null|Param, - * search_dn?: scalar|null|Param, // Default: "" - * search_password?: scalar|null|Param, // Default: "" + * provider?: scalar|Param|null, + * realm?: scalar|Param|null, // Default: "Secured Area" + * service?: scalar|Param|null, // Default: "ldap" + * dn_string?: scalar|Param|null, // Default: "{user_identifier}" + * query_string?: scalar|Param|null, + * search_dn?: scalar|Param|null, // Default: "" + * search_password?: scalar|Param|null, // Default: "" * }, * remember_me?: array{ - * secret?: scalar|null|Param, // Default: "%kernel.secret%" - * service?: scalar|null|Param, - * user_providers?: list, + * secret?: scalar|Param|null, // Default: "%kernel.secret%" + * service?: scalar|Param|null, + * user_providers?: list, * catch_exceptions?: bool|Param, // Default: true - * signature_properties?: list, + * signature_properties?: list, * token_provider?: string|array{ - * service?: scalar|null|Param, // The service ID of a custom remember-me token provider. + * service?: scalar|Param|null, // The service ID of a custom remember-me token provider. * doctrine?: bool|array{ * enabled?: bool|Param, // Default: false - * connection?: scalar|null|Param, // Default: null + * connection?: scalar|Param|null, // Default: null * }, * }, - * token_verifier?: scalar|null|Param, // The service ID of a custom rememberme token verifier. - * name?: scalar|null|Param, // Default: "REMEMBERME" + * token_verifier?: scalar|Param|null, // The service ID of a custom rememberme token verifier. + * name?: scalar|Param|null, // Default: "REMEMBERME" * lifetime?: int|Param, // Default: 31536000 - * path?: scalar|null|Param, // Default: "/" - * domain?: scalar|null|Param, // Default: null + * path?: scalar|Param|null, // Default: "/" + * domain?: scalar|Param|null, // Default: null * secure?: true|false|"auto"|Param, // Default: false * httponly?: bool|Param, // Default: true * samesite?: null|"lax"|"strict"|"none"|Param, // Default: null * always_remember_me?: bool|Param, // Default: false - * remember_me_parameter?: scalar|null|Param, // Default: "_remember_me" + * remember_me_parameter?: scalar|Param|null, // Default: "_remember_me" * }, * }>, * access_control?: list, - * attributes?: array, - * route?: scalar|null|Param, // Default: null - * methods?: list, - * allow_if?: scalar|null|Param, // Default: null - * roles?: list, + * ips?: list, + * attributes?: array, + * route?: scalar|Param|null, // Default: null + * methods?: list, + * allow_if?: scalar|Param|null, // Default: null + * roles?: list, * }>, - * role_hierarchy?: array>, + * role_hierarchy?: array>, * } * @psalm-type DoctrineConfig = array{ * dbal?: array{ - * default_connection?: scalar|null|Param, + * default_connection?: scalar|Param|null, * types?: array, - * driver_schemes?: array, + * driver_schemes?: array, * connections?: array, - * mapping_types?: array, - * default_table_options?: array, - * schema_manager_factory?: scalar|null|Param, // Default: "doctrine.dbal.default_schema_manager_factory" - * result_cache?: scalar|null|Param, + * mapping_types?: array, + * default_table_options?: array, + * schema_manager_factory?: scalar|Param|null, // Default: "doctrine.dbal.default_schema_manager_factory" + * result_cache?: scalar|Param|null, * replicas?: array, * }>, * }, * orm?: array{ - * default_entity_manager?: scalar|null|Param, + * default_entity_manager?: scalar|Param|null, * enable_native_lazy_objects?: bool|Param, // Deprecated: The "enable_native_lazy_objects" option is deprecated and will be removed in DoctrineBundle 4.0, as native lazy objects are now always enabled. // Default: true * controller_resolver?: bool|array{ * enabled?: bool|Param, // Default: true @@ -1127,242 +1127,242 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * entity_managers?: array, * }>, * }>, * }, - * connection?: scalar|null|Param, - * class_metadata_factory_name?: scalar|null|Param, // Default: "Doctrine\\ORM\\Mapping\\ClassMetadataFactory" - * default_repository_class?: scalar|null|Param, // Default: "Doctrine\\ORM\\EntityRepository" - * auto_mapping?: scalar|null|Param, // Default: false - * naming_strategy?: scalar|null|Param, // Default: "doctrine.orm.naming_strategy.default" - * quote_strategy?: scalar|null|Param, // Default: "doctrine.orm.quote_strategy.default" - * typed_field_mapper?: scalar|null|Param, // Default: "doctrine.orm.typed_field_mapper.default" - * entity_listener_resolver?: scalar|null|Param, // Default: null - * fetch_mode_subselect_batch_size?: scalar|null|Param, - * repository_factory?: scalar|null|Param, // Default: "doctrine.orm.container_repository_factory" - * schema_ignore_classes?: list, + * connection?: scalar|Param|null, + * class_metadata_factory_name?: scalar|Param|null, // Default: "Doctrine\\ORM\\Mapping\\ClassMetadataFactory" + * default_repository_class?: scalar|Param|null, // Default: "Doctrine\\ORM\\EntityRepository" + * auto_mapping?: scalar|Param|null, // Default: false + * naming_strategy?: scalar|Param|null, // Default: "doctrine.orm.naming_strategy.default" + * quote_strategy?: scalar|Param|null, // Default: "doctrine.orm.quote_strategy.default" + * typed_field_mapper?: scalar|Param|null, // Default: "doctrine.orm.typed_field_mapper.default" + * entity_listener_resolver?: scalar|Param|null, // Default: null + * fetch_mode_subselect_batch_size?: scalar|Param|null, + * repository_factory?: scalar|Param|null, // Default: "doctrine.orm.container_repository_factory" + * schema_ignore_classes?: list, * validate_xml_mapping?: bool|Param, // Set to "true" to opt-in to the new mapping driver mode that was added in Doctrine ORM 2.14 and will be mandatory in ORM 3.0. See https://github.com/doctrine/orm/pull/6728. // Default: false * second_level_cache?: array{ * region_cache_driver?: string|array{ - * type?: scalar|null|Param, // Default: null - * id?: scalar|null|Param, - * pool?: scalar|null|Param, + * type?: scalar|Param|null, // Default: null + * id?: scalar|Param|null, + * pool?: scalar|Param|null, * }, - * region_lock_lifetime?: scalar|null|Param, // Default: 60 + * region_lock_lifetime?: scalar|Param|null, // Default: 60 * log_enabled?: bool|Param, // Default: true - * region_lifetime?: scalar|null|Param, // Default: 3600 + * region_lifetime?: scalar|Param|null, // Default: 3600 * enabled?: bool|Param, // Default: true - * factory?: scalar|null|Param, + * factory?: scalar|Param|null, * regions?: array, * loggers?: array, * }, - * hydrators?: array, + * hydrators?: array, * mappings?: array, * dql?: array{ - * string_functions?: array, - * numeric_functions?: array, - * datetime_functions?: array, + * string_functions?: array, + * numeric_functions?: array, + * datetime_functions?: array, * }, * filters?: array, * }>, - * identity_generation_preferences?: array, + * identity_generation_preferences?: array, * }>, - * resolve_target_entities?: array, + * resolve_target_entities?: array, * }, * } * @psalm-type DoctrineMigrationsConfig = array{ * enable_service_migrations?: bool|Param, // Whether to enable fetching migrations from the service container. // Default: false - * migrations_paths?: array, - * services?: array, - * factories?: array, + * migrations_paths?: array, + * services?: array, + * factories?: array, * storage?: array{ // Storage to use for migration status metadata. * table_storage?: array{ // The default metadata storage, implemented as a table in the database. - * table_name?: scalar|null|Param, // Default: null - * version_column_name?: scalar|null|Param, // Default: null - * version_column_length?: scalar|null|Param, // Default: null - * executed_at_column_name?: scalar|null|Param, // Default: null - * execution_time_column_name?: scalar|null|Param, // Default: null + * table_name?: scalar|Param|null, // Default: null + * version_column_name?: scalar|Param|null, // Default: null + * version_column_length?: scalar|Param|null, // Default: null + * executed_at_column_name?: scalar|Param|null, // Default: null + * execution_time_column_name?: scalar|Param|null, // Default: null * }, * }, - * migrations?: list, - * connection?: scalar|null|Param, // Connection name to use for the migrations database. // Default: null - * em?: scalar|null|Param, // Entity manager name to use for the migrations database (available when doctrine/orm is installed). // Default: null - * all_or_nothing?: scalar|null|Param, // Run all migrations in a transaction. // Default: false - * check_database_platform?: scalar|null|Param, // Adds an extra check in the generated migrations to allow execution only on the same platform as they were initially generated on. // Default: true - * custom_template?: scalar|null|Param, // Custom template path for generated migration classes. // Default: null - * organize_migrations?: scalar|null|Param, // Organize migrations mode. Possible values are: "BY_YEAR", "BY_YEAR_AND_MONTH", false // Default: false + * migrations?: list, + * connection?: scalar|Param|null, // Connection name to use for the migrations database. // Default: null + * em?: scalar|Param|null, // Entity manager name to use for the migrations database (available when doctrine/orm is installed). // Default: null + * all_or_nothing?: scalar|Param|null, // Run all migrations in a transaction. // Default: false + * check_database_platform?: scalar|Param|null, // Adds an extra check in the generated migrations to allow execution only on the same platform as they were initially generated on. // Default: true + * custom_template?: scalar|Param|null, // Custom template path for generated migration classes. // Default: null + * organize_migrations?: scalar|Param|null, // Organize migrations mode. Possible values are: "BY_YEAR", "BY_YEAR_AND_MONTH", false // Default: false * enable_profiler?: bool|Param, // Whether or not to enable the profiler collector to calculate and visualize migration status. This adds some queries overhead. // Default: false * transactional?: bool|Param, // Whether or not to wrap migrations in a single transaction. // Default: true * } * @psalm-type NelmioCorsConfig = array{ * defaults?: array{ * allow_credentials?: bool|Param, // Default: false - * allow_origin?: list, - * allow_headers?: list, - * allow_methods?: list, + * allow_origin?: list, + * allow_headers?: list, + * allow_methods?: list, * allow_private_network?: bool|Param, // Default: false - * expose_headers?: list, - * max_age?: scalar|null|Param, // Default: 0 - * hosts?: list, + * expose_headers?: list, + * max_age?: scalar|Param|null, // Default: 0 + * hosts?: list, * origin_regex?: bool|Param, // Default: false - * forced_allow_origin_value?: scalar|null|Param, // Default: null + * forced_allow_origin_value?: scalar|Param|null, // Default: null * skip_same_as_origin?: bool|Param, // Default: true * }, * paths?: array, - * allow_headers?: list, - * allow_methods?: list, + * allow_origin?: list, + * allow_headers?: list, + * allow_methods?: list, * allow_private_network?: bool|Param, - * expose_headers?: list, - * max_age?: scalar|null|Param, // Default: 0 - * hosts?: list, + * expose_headers?: list, + * max_age?: scalar|Param|null, // Default: 0 + * hosts?: list, * origin_regex?: bool|Param, - * forced_allow_origin_value?: scalar|null|Param, // Default: null + * forced_allow_origin_value?: scalar|Param|null, // Default: null * skip_same_as_origin?: bool|Param, * }>, * } * @psalm-type LexikJwtAuthenticationConfig = array{ - * public_key?: scalar|null|Param, // The key used to sign tokens (useless for HMAC). If not set, the key will be automatically computed from the secret key. // Default: null - * additional_public_keys?: list, - * secret_key?: scalar|null|Param, // The key used to sign tokens. It can be a raw secret (for HMAC), a raw RSA/ECDSA key or the path to a file itself being plaintext or PEM. // Default: null - * pass_phrase?: scalar|null|Param, // The key passphrase (useless for HMAC) // Default: "" - * token_ttl?: scalar|null|Param, // Default: 3600 + * public_key?: scalar|Param|null, // The key used to sign tokens (useless for HMAC). If not set, the key will be automatically computed from the secret key. // Default: null + * additional_public_keys?: list, + * secret_key?: scalar|Param|null, // The key used to sign tokens. It can be a raw secret (for HMAC), a raw RSA/ECDSA key or the path to a file itself being plaintext or PEM. // Default: null + * pass_phrase?: scalar|Param|null, // The key passphrase (useless for HMAC) // Default: "" + * token_ttl?: scalar|Param|null, // Default: 3600 * allow_no_expiration?: bool|Param, // Allow tokens without "exp" claim (i.e. indefinitely valid, no lifetime) to be considered valid. Caution: usage of this should be rare. // Default: false - * clock_skew?: scalar|null|Param, // Default: 0 + * clock_skew?: scalar|Param|null, // Default: 0 * encoder?: array{ - * service?: scalar|null|Param, // Default: "lexik_jwt_authentication.encoder.lcobucci" - * signature_algorithm?: scalar|null|Param, // Default: "RS256" + * service?: scalar|Param|null, // Default: "lexik_jwt_authentication.encoder.lcobucci" + * signature_algorithm?: scalar|Param|null, // Default: "RS256" * }, - * user_id_claim?: scalar|null|Param, // Default: "username" + * user_id_claim?: scalar|Param|null, // Default: "username" * token_extractors?: array{ * authorization_header?: bool|array{ * enabled?: bool|Param, // Default: true - * prefix?: scalar|null|Param, // Default: "Bearer" - * name?: scalar|null|Param, // Default: "Authorization" + * prefix?: scalar|Param|null, // Default: "Bearer" + * name?: scalar|Param|null, // Default: "Authorization" * }, * cookie?: bool|array{ * enabled?: bool|Param, // Default: false - * name?: scalar|null|Param, // Default: "BEARER" + * name?: scalar|Param|null, // Default: "BEARER" * }, * query_parameter?: bool|array{ * enabled?: bool|Param, // Default: false - * name?: scalar|null|Param, // Default: "bearer" + * name?: scalar|Param|null, // Default: "bearer" * }, * split_cookie?: bool|array{ * enabled?: bool|Param, // Default: false - * cookies?: list, + * cookies?: list, * }, * }, - * remove_token_from_body_when_cookies_used?: scalar|null|Param, // Default: true + * remove_token_from_body_when_cookies_used?: scalar|Param|null, // Default: true * set_cookies?: array, + * path?: scalar|Param|null, // Default: "/" + * domain?: scalar|Param|null, // Default: null + * secure?: scalar|Param|null, // Default: true + * httpOnly?: scalar|Param|null, // Default: true + * partitioned?: scalar|Param|null, // Default: false + * split?: list, * }>, * api_platform?: bool|array{ // API Platform compatibility: add check_path in OpenAPI documentation. * enabled?: bool|Param, // Default: false - * check_path?: scalar|null|Param, // The login check path to add in OpenAPI. // Default: null - * username_path?: scalar|null|Param, // The path to the username in the JSON body. // Default: null - * password_path?: scalar|null|Param, // The path to the password in the JSON body. // Default: null + * check_path?: scalar|Param|null, // The login check path to add in OpenAPI. // Default: null + * username_path?: scalar|Param|null, // The path to the username in the JSON body. // Default: null + * password_path?: scalar|Param|null, // The path to the password in the JSON body. // Default: null * }, * access_token_issuance?: bool|array{ * enabled?: bool|Param, // Default: false * signature?: array{ - * algorithm: scalar|null|Param, // The algorithm use to sign the access tokens. - * key: scalar|null|Param, // The signature key. It shall be JWK encoded. + * algorithm: scalar|Param|null, // The algorithm use to sign the access tokens. + * key: scalar|Param|null, // The signature key. It shall be JWK encoded. * }, * encryption?: bool|array{ * enabled?: bool|Param, // Default: false - * key_encryption_algorithm: scalar|null|Param, // The key encryption algorithm is used to encrypt the token. - * content_encryption_algorithm: scalar|null|Param, // The key encryption algorithm is used to encrypt the token. - * key: scalar|null|Param, // The encryption key. It shall be JWK encoded. + * key_encryption_algorithm: scalar|Param|null, // The key encryption algorithm is used to encrypt the token. + * content_encryption_algorithm: scalar|Param|null, // The key encryption algorithm is used to encrypt the token. + * key: scalar|Param|null, // The encryption key. It shall be JWK encoded. * }, * }, * access_token_verification?: bool|array{ * enabled?: bool|Param, // Default: false * signature?: array{ - * header_checkers?: list, - * claim_checkers?: list, - * mandatory_claims?: list, - * allowed_algorithms?: list, - * keyset: scalar|null|Param, // The signature keyset. It shall be JWKSet encoded. + * header_checkers?: list, + * claim_checkers?: list, + * mandatory_claims?: list, + * allowed_algorithms?: list, + * keyset: scalar|Param|null, // The signature keyset. It shall be JWKSet encoded. * }, * encryption?: bool|array{ * enabled?: bool|Param, // Default: false * continue_on_decryption_failure?: bool|Param, // If enable, non-encrypted tokens or tokens that failed during decryption or verification processes are accepted. // Default: false - * header_checkers?: list, - * allowed_key_encryption_algorithms?: list, - * allowed_content_encryption_algorithms?: list, - * keyset: scalar|null|Param, // The encryption keyset. It shall be JWKSet encoded. + * header_checkers?: list, + * allowed_key_encryption_algorithms?: list, + * allowed_content_encryption_algorithms?: list, + * keyset: scalar|Param|null, // The encryption keyset. It shall be JWKSet encoded. * }, * }, * blocklist_token?: bool|array{ * enabled?: bool|Param, // Default: false - * cache?: scalar|null|Param, // Storage to track blocked tokens // Default: "cache.app" + * cache?: scalar|Param|null, // Storage to track blocked tokens // Default: "cache.app" * }, * } * @psalm-type ApiPlatformConfig = array{ - * title?: scalar|null|Param, // The title of the API. // Default: "" - * description?: scalar|null|Param, // The description of the API. // Default: "" - * version?: scalar|null|Param, // The version of the API. // Default: "0.0.0" + * title?: scalar|Param|null, // The title of the API. // Default: "" + * description?: scalar|Param|null, // The description of the API. // Default: "" + * version?: scalar|Param|null, // The version of the API. // Default: "0.0.0" * show_webby?: bool|Param, // If true, show Webby on the documentation page // Default: true * use_symfony_listeners?: bool|Param, // Uses Symfony event listeners instead of the ApiPlatform\Symfony\Controller\MainController. // Default: false - * name_converter?: scalar|null|Param, // Specify a name converter to use. // Default: null - * asset_package?: scalar|null|Param, // Specify an asset package name to use. // Default: null - * path_segment_name_generator?: scalar|null|Param, // Specify a path name generator to use. // Default: "api_platform.metadata.path_segment_name_generator.underscore" - * inflector?: scalar|null|Param, // Specify an inflector to use. // Default: "api_platform.metadata.inflector" + * name_converter?: scalar|Param|null, // Specify a name converter to use. // Default: null + * asset_package?: scalar|Param|null, // Specify an asset package name to use. // Default: null + * path_segment_name_generator?: scalar|Param|null, // Specify a path name generator to use. // Default: "api_platform.metadata.path_segment_name_generator.underscore" + * inflector?: scalar|Param|null, // Specify an inflector to use. // Default: "api_platform.metadata.inflector" * validator?: array{ * serialize_payload_fields?: mixed, // Set to null to serialize all payload fields when a validation error is thrown, or set the fields you want to include explicitly. // Default: [] * query_parameter_validation?: bool|Param, // Deprecated: Will be removed in API Platform 5.0. // Default: true @@ -1384,23 +1384,23 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * enable_phpdoc_parser?: bool|Param, // Enable resource metadata collector using PHPStan PhpDocParser. // Default: true * enable_link_security?: bool|Param, // Enable security for Links (sub resources) // Default: false * collection?: array{ - * exists_parameter_name?: scalar|null|Param, // The name of the query parameter to filter on nullable field values. // Default: "exists" - * order?: scalar|null|Param, // The default order of results. // Default: "ASC" - * order_parameter_name?: scalar|null|Param, // The name of the query parameter to order results. // Default: "order" - * order_nulls_comparison?: "nulls_smallest"|"nulls_largest"|"nulls_always_first"|"nulls_always_last"|null|Param, // The nulls comparison strategy. // Default: null + * exists_parameter_name?: scalar|Param|null, // The name of the query parameter to filter on nullable field values. // Default: "exists" + * order?: scalar|Param|null, // The default order of results. // Default: "ASC" + * order_parameter_name?: scalar|Param|null, // The name of the query parameter to order results. // Default: "order" + * order_nulls_comparison?: "nulls_smallest"|"nulls_largest"|"nulls_always_first"|"nulls_always_last"|Param|null, // The nulls comparison strategy. // Default: null * pagination?: bool|array{ * enabled?: bool|Param, // Default: true - * page_parameter_name?: scalar|null|Param, // The default name of the parameter handling the page number. // Default: "page" - * enabled_parameter_name?: scalar|null|Param, // The name of the query parameter to enable or disable pagination. // Default: "pagination" - * items_per_page_parameter_name?: scalar|null|Param, // The name of the query parameter to set the number of items per page. // Default: "itemsPerPage" - * partial_parameter_name?: scalar|null|Param, // The name of the query parameter to enable or disable partial pagination. // Default: "partial" + * page_parameter_name?: scalar|Param|null, // The default name of the parameter handling the page number. // Default: "page" + * enabled_parameter_name?: scalar|Param|null, // The name of the query parameter to enable or disable pagination. // Default: "pagination" + * items_per_page_parameter_name?: scalar|Param|null, // The name of the query parameter to set the number of items per page. // Default: "itemsPerPage" + * partial_parameter_name?: scalar|Param|null, // The name of the query parameter to enable or disable partial pagination. // Default: "partial" * }, * }, * mapping?: array{ - * imports?: list, - * paths?: list, + * imports?: list, + * paths?: list, * }, - * resource_class_directories?: list, + * resource_class_directories?: list, * serializer?: array{ * hydra_prefix?: bool|Param, // Use the "hydra:" prefix. // Default: false * }, @@ -1412,19 +1412,19 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * oauth?: bool|array{ * enabled?: bool|Param, // Default: false - * clientId?: scalar|null|Param, // The oauth client id. // Default: "" - * clientSecret?: scalar|null|Param, // The OAuth client secret. Never use this parameter in your production environment. It exposes crucial security information. This feature is intended for dev/test environments only. Enable "oauth.pkce" instead // Default: "" + * clientId?: scalar|Param|null, // The oauth client id. // Default: "" + * clientSecret?: scalar|Param|null, // The OAuth client secret. Never use this parameter in your production environment. It exposes crucial security information. This feature is intended for dev/test environments only. Enable "oauth.pkce" instead // Default: "" * pkce?: bool|Param, // Enable the oauth PKCE. // Default: false - * type?: scalar|null|Param, // The oauth type. // Default: "oauth2" - * flow?: scalar|null|Param, // The oauth flow grant type. // Default: "application" - * tokenUrl?: scalar|null|Param, // The oauth token url. // Default: "" - * authorizationUrl?: scalar|null|Param, // The oauth authentication url. // Default: "" - * refreshUrl?: scalar|null|Param, // The oauth refresh url. // Default: "" - * scopes?: list, + * type?: scalar|Param|null, // The oauth type. // Default: "oauth2" + * flow?: scalar|Param|null, // The oauth flow grant type. // Default: "application" + * tokenUrl?: scalar|Param|null, // The oauth token url. // Default: "" + * authorizationUrl?: scalar|Param|null, // The oauth authentication url. // Default: "" + * refreshUrl?: scalar|Param|null, // The oauth refresh url. // Default: "" + * scopes?: list, * }, * graphql?: bool|array{ * enabled?: bool|Param, // Default: false - * default_ide?: scalar|null|Param, // Default: "graphiql" + * default_ide?: scalar|Param|null, // Default: "graphiql" * graphiql?: bool|array{ * enabled?: bool|Param, // Default: false * }, @@ -1434,7 +1434,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * max_query_depth?: int|Param, // Default: 20 * graphql_playground?: array, * max_query_complexity?: int|Param, // Default: 500 - * nesting_separator?: scalar|null|Param, // The separator to use to filter nested fields. // Default: "_" + * nesting_separator?: scalar|Param|null, // The separator to use to filter nested fields. // Default: "_" * collection?: array{ * pagination?: bool|array{ * enabled?: bool|Param, // Default: true @@ -1443,35 +1443,35 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * swagger?: array{ * persist_authorization?: bool|Param, // Persist the SwaggerUI Authorization in the localStorage. // Default: false - * versions?: list, + * versions?: list, * api_keys?: array, * http_auth?: array, * swagger_ui_extra_configuration?: mixed, // To pass extra configuration to Swagger UI, like docExpansion or filter. // Default: [] * }, * http_cache?: array{ - * public?: bool|null|Param, // To make all responses public by default. // Default: null + * public?: bool|Param|null, // To make all responses public by default. // Default: null * invalidation?: bool|array{ // Enable the tags-based cache invalidation system. * enabled?: bool|Param, // Default: false - * varnish_urls?: list, - * urls?: list, - * scoped_clients?: list, + * varnish_urls?: list, + * urls?: list, + * scoped_clients?: list, * max_header_length?: int|Param, // Max header length supported by the cache server. // Default: 7500 * request_options?: mixed, // To pass options to the client charged with the request. // Default: [] - * purger?: scalar|null|Param, // Specify a purger to use (available values: "api_platform.http_cache.purger.varnish.ban", "api_platform.http_cache.purger.varnish.xkey", "api_platform.http_cache.purger.souin"). // Default: "api_platform.http_cache.purger.varnish" + * purger?: scalar|Param|null, // Specify a purger to use (available values: "api_platform.http_cache.purger.varnish.ban", "api_platform.http_cache.purger.varnish.xkey", "api_platform.http_cache.purger.souin"). // Default: "api_platform.http_cache.purger.varnish" * xkey?: array{ // Deprecated: The "xkey" configuration is deprecated, use your own purger to customize surrogate keys or the appropriate paramters. - * glue?: scalar|null|Param, // xkey glue between keys // Default: " " + * glue?: scalar|Param|null, // xkey glue between keys // Default: " " * }, * }, * }, * mercure?: bool|array{ * enabled?: bool|Param, // Default: false - * hub_url?: scalar|null|Param, // The URL sent in the Link HTTP header. If not set, will default to the URL for MercureBundle's default hub. // Default: null + * hub_url?: scalar|Param|null, // The URL sent in the Link HTTP header. If not set, will default to the URL for MercureBundle's default hub. // Default: null * include_type?: bool|Param, // Always include @var in updates (including delete ones). // Default: false * }, * messenger?: bool|array{ @@ -1479,46 +1479,46 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * elasticsearch?: bool|array{ * enabled?: bool|Param, // Default: false - * hosts?: list, + * hosts?: list, * }, * openapi?: array{ * contact?: array{ - * name?: scalar|null|Param, // The identifying name of the contact person/organization. // Default: null - * url?: scalar|null|Param, // The URL pointing to the contact information. MUST be in the format of a URL. // Default: null - * email?: scalar|null|Param, // The email address of the contact person/organization. MUST be in the format of an email address. // Default: null + * name?: scalar|Param|null, // The identifying name of the contact person/organization. // Default: null + * url?: scalar|Param|null, // The URL pointing to the contact information. MUST be in the format of a URL. // Default: null + * email?: scalar|Param|null, // The email address of the contact person/organization. MUST be in the format of an email address. // Default: null * }, - * termsOfService?: scalar|null|Param, // A URL to the Terms of Service for the API. MUST be in the format of a URL. // Default: null + * termsOfService?: scalar|Param|null, // A URL to the Terms of Service for the API. MUST be in the format of a URL. // Default: null * tags?: list, * license?: array{ - * name?: scalar|null|Param, // The license name used for the API. // Default: null - * url?: scalar|null|Param, // URL to the license used for the API. MUST be in the format of a URL. // Default: null - * identifier?: scalar|null|Param, // An SPDX license expression for the API. The identifier field is mutually exclusive of the url field. // Default: null + * name?: scalar|Param|null, // The license name used for the API. // Default: null + * url?: scalar|Param|null, // URL to the license used for the API. MUST be in the format of a URL. // Default: null + * identifier?: scalar|Param|null, // An SPDX license expression for the API. The identifier field is mutually exclusive of the url field. // Default: null * }, * swagger_ui_extra_configuration?: mixed, // To pass extra configuration to Swagger UI, like docExpansion or filter. // Default: [] * overrideResponses?: bool|Param, // Whether API Platform adds automatic responses to the OpenAPI documentation. // Default: true - * error_resource_class?: scalar|null|Param, // The class used to represent errors in the OpenAPI documentation. // Default: null - * validation_error_resource_class?: scalar|null|Param, // The class used to represent validation errors in the OpenAPI documentation. // Default: null + * error_resource_class?: scalar|Param|null, // The class used to represent errors in the OpenAPI documentation. // Default: null + * validation_error_resource_class?: scalar|Param|null, // The class used to represent validation errors in the OpenAPI documentation. // Default: null * }, * maker?: bool|array{ * enabled?: bool|Param, // Default: false * }, * exception_to_status?: array, * formats?: array, + * mime_types?: list, * }>, * patch_formats?: array, + * mime_types?: list, * }>, * docs_formats?: array, + * mime_types?: list, * }>, * error_formats?: array, + * mime_types?: list, * }>, - * jsonschema_formats?: list, + * jsonschema_formats?: list, * defaults?: array{ * uri_template?: mixed, * short_name?: mixed, @@ -1609,148 +1609,175 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * }, * } * @psalm-type MonologConfig = array{ - * use_microseconds?: scalar|null|Param, // Default: true - * channels?: list, + * use_microseconds?: scalar|Param|null, // Default: true + * channels?: list, * handlers?: array, + * code?: scalar|Param|null, + * urls?: list, * }>, - * accepted_levels?: list, - * min_level?: scalar|null|Param, // Default: "DEBUG" - * max_level?: scalar|null|Param, // Default: "EMERGENCY" - * buffer_size?: scalar|null|Param, // Default: 0 + * accepted_levels?: list, + * min_level?: scalar|Param|null, // Default: "DEBUG" + * max_level?: scalar|Param|null, // Default: "EMERGENCY" + * buffer_size?: scalar|Param|null, // Default: 0 * flush_on_overflow?: bool|Param, // Default: false - * handler?: scalar|null|Param, - * url?: scalar|null|Param, - * exchange?: scalar|null|Param, - * exchange_name?: scalar|null|Param, // Default: "log" - * channel?: scalar|null|Param, // Default: null - * bot_name?: scalar|null|Param, // Default: "Monolog" - * use_attachment?: scalar|null|Param, // Default: true - * use_short_attachment?: scalar|null|Param, // Default: false - * include_extra?: scalar|null|Param, // Default: false - * icon_emoji?: scalar|null|Param, // Default: null - * webhook_url?: scalar|null|Param, - * exclude_fields?: list, - * token?: scalar|null|Param, - * region?: scalar|null|Param, - * source?: scalar|null|Param, + * handler?: scalar|Param|null, + * url?: scalar|Param|null, + * exchange?: scalar|Param|null, + * exchange_name?: scalar|Param|null, // Default: "log" + * channel?: scalar|Param|null, // Default: null + * bot_name?: scalar|Param|null, // Default: "Monolog" + * use_attachment?: scalar|Param|null, // Default: true + * use_short_attachment?: scalar|Param|null, // Default: false + * include_extra?: scalar|Param|null, // Default: false + * icon_emoji?: scalar|Param|null, // Default: null + * webhook_url?: scalar|Param|null, + * exclude_fields?: list, + * token?: scalar|Param|null, + * region?: scalar|Param|null, + * source?: scalar|Param|null, * use_ssl?: bool|Param, // Default: true * user?: mixed, - * title?: scalar|null|Param, // Default: null - * host?: scalar|null|Param, // Default: null - * port?: scalar|null|Param, // Default: 514 - * config?: list, - * members?: list, - * connection_string?: scalar|null|Param, - * timeout?: scalar|null|Param, - * time?: scalar|null|Param, // Default: 60 - * deduplication_level?: scalar|null|Param, // Default: 400 - * store?: scalar|null|Param, // Default: null - * connection_timeout?: scalar|null|Param, + * title?: scalar|Param|null, // Default: null + * host?: scalar|Param|null, // Default: null + * port?: scalar|Param|null, // Default: 514 + * config?: list, + * members?: list, + * connection_string?: scalar|Param|null, + * timeout?: scalar|Param|null, + * time?: scalar|Param|null, // Default: 60 + * deduplication_level?: scalar|Param|null, // Default: 400 + * store?: scalar|Param|null, // Default: null + * connection_timeout?: scalar|Param|null, * persistent?: bool|Param, - * message_type?: scalar|null|Param, // Default: 0 - * parse_mode?: scalar|null|Param, // Default: null - * disable_webpage_preview?: bool|null|Param, // Default: null - * disable_notification?: bool|null|Param, // Default: null + * message_type?: scalar|Param|null, // Default: 0 + * parse_mode?: scalar|Param|null, // Default: null + * disable_webpage_preview?: bool|Param|null, // Default: null + * disable_notification?: bool|Param|null, // Default: null * split_long_messages?: bool|Param, // Default: false * delay_between_messages?: bool|Param, // Default: false * topic?: int|Param, // Default: null * factor?: int|Param, // Default: 1 - * tags?: list, + * tags?: list, * console_formatter_options?: mixed, // Default: [] - * formatter?: scalar|null|Param, + * formatter?: scalar|Param|null, * nested?: bool|Param, // Default: false * publisher?: string|array{ - * id?: scalar|null|Param, - * hostname?: scalar|null|Param, - * port?: scalar|null|Param, // Default: 12201 - * chunk_size?: scalar|null|Param, // Default: 1420 + * id?: scalar|Param|null, + * hostname?: scalar|Param|null, + * port?: scalar|Param|null, // Default: 12201 + * chunk_size?: scalar|Param|null, // Default: 1420 * encoder?: "json"|"compressed_json"|Param, * }, * mongodb?: string|array{ - * id?: scalar|null|Param, // ID of a MongoDB\Client service - * uri?: scalar|null|Param, - * username?: scalar|null|Param, - * password?: scalar|null|Param, - * database?: scalar|null|Param, // Default: "monolog" - * collection?: scalar|null|Param, // Default: "logs" + * id?: scalar|Param|null, // ID of a MongoDB\Client service + * uri?: scalar|Param|null, + * username?: scalar|Param|null, + * password?: scalar|Param|null, + * database?: scalar|Param|null, // Default: "monolog" + * collection?: scalar|Param|null, // Default: "logs" * }, * elasticsearch?: string|array{ - * id?: scalar|null|Param, - * hosts?: list, - * host?: scalar|null|Param, - * port?: scalar|null|Param, // Default: 9200 - * transport?: scalar|null|Param, // Default: "Http" - * user?: scalar|null|Param, // Default: null - * password?: scalar|null|Param, // Default: null + * id?: scalar|Param|null, + * hosts?: list, + * host?: scalar|Param|null, + * port?: scalar|Param|null, // Default: 9200 + * transport?: scalar|Param|null, // Default: "Http" + * user?: scalar|Param|null, // Default: null + * password?: scalar|Param|null, // Default: null * }, - * index?: scalar|null|Param, // Default: "monolog" - * document_type?: scalar|null|Param, // Default: "logs" - * ignore_error?: scalar|null|Param, // Default: false + * index?: scalar|Param|null, // Default: "monolog" + * document_type?: scalar|Param|null, // Default: "logs" + * ignore_error?: scalar|Param|null, // Default: false * redis?: string|array{ - * id?: scalar|null|Param, - * host?: scalar|null|Param, - * password?: scalar|null|Param, // Default: null - * port?: scalar|null|Param, // Default: 6379 - * database?: scalar|null|Param, // Default: 0 - * key_name?: scalar|null|Param, // Default: "monolog_redis" + * id?: scalar|Param|null, + * host?: scalar|Param|null, + * password?: scalar|Param|null, // Default: null + * port?: scalar|Param|null, // Default: 6379 + * database?: scalar|Param|null, // Default: 0 + * key_name?: scalar|Param|null, // Default: "monolog_redis" * }, * predis?: string|array{ - * id?: scalar|null|Param, - * host?: scalar|null|Param, + * id?: scalar|Param|null, + * host?: scalar|Param|null, * }, - * from_email?: scalar|null|Param, - * to_email?: list, - * subject?: scalar|null|Param, - * content_type?: scalar|null|Param, // Default: null - * headers?: list, - * mailer?: scalar|null|Param, // Default: null + * from_email?: scalar|Param|null, + * to_email?: list, + * subject?: scalar|Param|null, + * content_type?: scalar|Param|null, // Default: null + * headers?: list, + * mailer?: scalar|Param|null, // Default: null * email_prototype?: string|array{ - * id: scalar|null|Param, - * method?: scalar|null|Param, // Default: null + * id: scalar|Param|null, + * method?: scalar|Param|null, // Default: null * }, * verbosity_levels?: array{ - * VERBOSITY_QUIET?: scalar|null|Param, // Default: "ERROR" - * VERBOSITY_NORMAL?: scalar|null|Param, // Default: "WARNING" - * VERBOSITY_VERBOSE?: scalar|null|Param, // Default: "NOTICE" - * VERBOSITY_VERY_VERBOSE?: scalar|null|Param, // Default: "INFO" - * VERBOSITY_DEBUG?: scalar|null|Param, // Default: "DEBUG" + * VERBOSITY_QUIET?: scalar|Param|null, // Default: "ERROR" + * VERBOSITY_NORMAL?: scalar|Param|null, // Default: "WARNING" + * VERBOSITY_VERBOSE?: scalar|Param|null, // Default: "NOTICE" + * VERBOSITY_VERY_VERBOSE?: scalar|Param|null, // Default: "INFO" + * VERBOSITY_DEBUG?: scalar|Param|null, // Default: "DEBUG" * }, * channels?: string|array{ - * type?: scalar|null|Param, - * elements?: list, + * type?: scalar|Param|null, + * elements?: list, * }, * }>, * } + * @psalm-type EdnotifConfig = array{ + * guichet_wsdl: scalar|Param|null, + * metier_wsdl: scalar|Param|null, + * exploitation_code: scalar|Param|null, + * zone?: scalar|Param|null, // Default: null + * application?: scalar|Param|null, // Default: null + * login: scalar|Param|null, + * password: scalar|Param|null, + * exploitation_number: scalar|Param|null, + * exploitation_country_code?: scalar|Param|null, // Default: "FR" + * token_ttl_seconds?: int|Param, // Default: 900 + * soap_options?: array{ + * trace?: bool|Param, // Default: false + * exceptions?: bool|Param, // Default: true + * connection_timeout?: int|Param, // Default: 15 + * cache_wsdl?: int|Param, // Default: 3 + * features?: int|Param, // Default: 1 + * }, + * } + * @psalm-type WebProfilerConfig = array{ + * toolbar?: bool|array{ // Profiler toolbar configuration + * enabled?: bool|Param, // Default: false + * ajax_replace?: bool|Param, // Replace toolbar on AJAX requests // Default: false + * }, + * intercept_redirects?: bool|Param, // Default: false + * excluded_ajax_paths?: scalar|Param|null, // Default: "^/((index|app(_[\\w]+)?)\\.php/)?_wdt" + * } * @psalm-type ConfigType = array{ * imports?: ImportsConfig, * parameters?: ParametersConfig, @@ -1764,6 +1791,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * lexik_jwt_authentication?: LexikJwtAuthenticationConfig, * api_platform?: ApiPlatformConfig, * monolog?: MonologConfig, + * ednotif?: EdnotifConfig, * "when@dev"?: array{ * imports?: ImportsConfig, * parameters?: ParametersConfig, @@ -1777,6 +1805,8 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * lexik_jwt_authentication?: LexikJwtAuthenticationConfig, * api_platform?: ApiPlatformConfig, * monolog?: MonologConfig, + * ednotif?: EdnotifConfig, + * web_profiler?: WebProfilerConfig, * }, * "when@prod"?: array{ * imports?: ImportsConfig, @@ -1791,6 +1821,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * lexik_jwt_authentication?: LexikJwtAuthenticationConfig, * api_platform?: ApiPlatformConfig, * monolog?: MonologConfig, + * ednotif?: EdnotifConfig, * }, * "when@test"?: array{ * imports?: ImportsConfig, @@ -1805,6 +1836,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param; * lexik_jwt_authentication?: LexikJwtAuthenticationConfig, * api_platform?: ApiPlatformConfig, * monolog?: MonologConfig, + * ednotif?: EdnotifConfig, * }, * ... */ + public array $presencePeriods = []; +} diff --git a/src/ApiResource/PresencePeriod.php b/src/ApiResource/PresencePeriod.php new file mode 100644 index 0000000..ca20703 --- /dev/null +++ b/src/ApiResource/PresencePeriod.php @@ -0,0 +1,14 @@ + + */ +final class BovinIdentificationProvider implements ProviderInterface +{ + public function __construct( + private BovinApiInterface $bovinApi + ) {} + + public function provide(Operation $operation, array $uriVariables = [], array $context = []): ?BovinIdentification + { + $numeroNational = (string) ($uriVariables['numeroNational'] ?? ''); + if ('' === $numeroNational) { + return null; + } + + $animalFileDto = $this->bovinApi->getAnimalFile( + nationalNumber: $numeroNational, + countryCode: 'FR' + ); + + $identificationDto = $animalFileDto->identification; + + $resource = new BovinIdentification(); + $resource->numeroNational = $numeroNational; + + $resource->sex = $identificationDto?->sex; + $resource->breedType = $identificationDto?->breedType; + $resource->workNumber = $identificationDto?->workNumber; + + $resource->birthDate = $identificationDto?->birthDate?->date?->format('Y-m-d'); + $resource->birthDateCompletenessFlag = $identificationDto?->birthDate?->completenessFlag; + + $resource->isFilie = $identificationDto?->isFilie; + + $resource->motherNationalNumber = $identificationDto?->motherCarrier?->bovin?->nationalNumber; + $resource->motherBreedType = $identificationDto?->motherCarrier?->breedType; + + $resource->fatherNationalNumber = $identificationDto?->fatherIpg?->bovin?->nationalNumber; + $resource->fatherBreedType = $identificationDto?->fatherIpg?->breedType; + + $resource->birthExploitationNumber = $identificationDto?->birthExploitation?->exploitationNumber; + + foreach ($animalFileDto->presencePeriods as $presencePeriodDto) { + $presencePeriod = new PresencePeriod(); + + $presencePeriod->entryDate = $presencePeriodDto->entry?->date?->format('Y-m-d'); + $presencePeriod->entryCause = $presencePeriodDto->entry?->cause; + + $presencePeriod->exitDate = $presencePeriodDto->exit?->date?->format('Y-m-d'); + $presencePeriod->exitCause = $presencePeriodDto->exit?->cause; + + $resource->presencePeriods[] = $presencePeriod; + } + + return $resource; + } +} diff --git a/symfony.lock b/symfony.lock index db811f6..38273ee 100644 --- a/symfony.lock +++ b/symfony.lock @@ -73,6 +73,9 @@ "config/packages/lexik_jwt_authentication.yaml" ] }, + "malio/ednotif-bundle": { + "version": "0.0.1" + }, "nelmio/cors-bundle": { "version": "2.6", "recipe": { @@ -228,5 +231,18 @@ "files": [ "config/packages/validator.yaml" ] + }, + "symfony/web-profiler-bundle": { + "version": "8.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "7.3", + "ref": "a363460c1b0b4a4d0242f2ce1a843ca0f6ac9026" + }, + "files": [ + "config/packages/web_profiler.yaml", + "config/routes/web_profiler.yaml" + ] } }