Compare commits
3 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
260b59a725 | |
|
|
b27895860d | |
|
|
f07f076147 |
|
|
@ -10,7 +10,7 @@ APP_SECRET=79e3e28a27aa752548962c961aee5324
|
|||
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
|
||||
# DATABASE_URL="postgres://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8&charset=utf8mb4"
|
||||
DB_DATABASE=stat_an
|
||||
DB_HOST=postgres
|
||||
DB_HOST=stat-an-postgres
|
||||
DB_PORT=5432
|
||||
DB_USERNAME=postgres
|
||||
DB_PASSWORD=postgres
|
||||
|
|
|
|||
|
|
@ -11,11 +11,18 @@
|
|||
"doctrine/doctrine-bundle": "^2.14",
|
||||
"doctrine/doctrine-migrations-bundle": "^3.4",
|
||||
"doctrine/orm": "^3.3",
|
||||
"league/tactician-bundle": "^1.5",
|
||||
"league/tactician-doctrine": "^1.2",
|
||||
"phpdocumentor/reflection-docblock": "^5.6",
|
||||
"phpstan/phpdoc-parser": "^2.1",
|
||||
"symfony/console": "7.2.*",
|
||||
"symfony/dotenv": "7.2.*",
|
||||
"symfony/flex": "^2",
|
||||
"symfony/framework-bundle": "7.2.*",
|
||||
"symfony/property-access": "7.2.*",
|
||||
"symfony/property-info": "7.2.*",
|
||||
"symfony/runtime": "7.2.*",
|
||||
"symfony/serializer": "7.2.*",
|
||||
"symfony/yaml": "7.2.*"
|
||||
},
|
||||
"require-dev": {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "0de5194aa02e73e25f4a87a916a437ef",
|
||||
"content-hash": "97a3015a0d62baaa09109aaacb210b6f",
|
||||
"packages": [
|
||||
{
|
||||
"name": "doctrine/cache",
|
||||
|
|
@ -1223,6 +1223,535 @@
|
|||
},
|
||||
"time": "2025-01-24T11:45:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/tactician",
|
||||
"version": "v1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/tactician.git",
|
||||
"reference": "e79f763170f3d5922ec29e85cffca0bac5cd8975"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/tactician/zipball/e79f763170f3d5922ec29e85cffca0bac5cd8975",
|
||||
"reference": "e79f763170f3d5922ec29e85cffca0bac5cd8975",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^1.3",
|
||||
"phpunit/phpunit": "^7.5.20 || ^9.3.8",
|
||||
"squizlabs/php_codesniffer": "^3.5.8"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"League\\Tactician\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ross Tuck",
|
||||
"homepage": "http://tactician.thephpleague.com"
|
||||
}
|
||||
],
|
||||
"description": "A small, flexible command bus. Handy for building service layers.",
|
||||
"keywords": [
|
||||
"command",
|
||||
"command bus",
|
||||
"service layer"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/tactician/issues",
|
||||
"source": "https://github.com/thephpleague/tactician/tree/v1.1.0"
|
||||
},
|
||||
"time": "2021-02-14T15:29:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/tactician-bundle",
|
||||
"version": "v1.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/tactician-bundle.git",
|
||||
"reference": "8acdfffc227295cca945ff1a964f88e4f034cdf9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/tactician-bundle/zipball/8acdfffc227295cca945ff1a964f88e4f034cdf9",
|
||||
"reference": "8acdfffc227295cca945ff1a964f88e4f034cdf9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"league/tactician": "^1.0",
|
||||
"league/tactician-container": "^2.0|^3.0",
|
||||
"league/tactician-logger": "^0.10|^0.11",
|
||||
"php": ">=7.2",
|
||||
"symfony/config": "^3.4|^4.4|^5.0|^6.0|^7.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.4|^5.0|^6.0|^7.0",
|
||||
"symfony/http-kernel": "^3.4|^4.4|^5.0|^6.0|^7.0",
|
||||
"symfony/yaml": "^3.4|^4.4|^5.0|^6.0|^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"matthiasnoback/symfony-config-test": "^4.2.1",
|
||||
"matthiasnoback/symfony-dependency-injection-test": "^4.2.1",
|
||||
"mockery/mockery": "~1.0",
|
||||
"phpspec/prophecy": "^1.18",
|
||||
"phpunit/phpunit": "~8.5",
|
||||
"symfony/console": "^3.4|^4.4|^5.0|^6.0|^7.0",
|
||||
"symfony/framework-bundle": "^3.4.31|^4.4|^5.0|^6.0|^7.0",
|
||||
"symfony/security-bundle": "^3.4|^4.4|^5.0|^6.0|^7.0",
|
||||
"symfony/security-core": "^3.4|^4.4|^5.0|^6.0|^7.0",
|
||||
"symfony/validator": "^3.4|^4.4|^5.0|^6.0|^7.0"
|
||||
},
|
||||
"suggest": {
|
||||
"league/tactician-doctrine": "For doctrine transaction middleware",
|
||||
"symfony/console": "For debugging command-to-handler routing using the tactician:debug console command",
|
||||
"symfony/security": "For command security middleware",
|
||||
"symfony/validator": "For command validator middleware"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"League\\Tactician\\Bundle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Rafael Dohms",
|
||||
"homepage": "http://doh.ms"
|
||||
},
|
||||
{
|
||||
"name": "Richard Tuin",
|
||||
"homepage": "http://www.rtuin.nl/"
|
||||
},
|
||||
{
|
||||
"name": "Xander Smalbil",
|
||||
"email": "xander@videofunk.nl"
|
||||
},
|
||||
{
|
||||
"name": "Ross Tuck",
|
||||
"email": "me@rosstuck.com"
|
||||
}
|
||||
],
|
||||
"description": "Bundle to integrate Tactician with Symfony projects",
|
||||
"keywords": [
|
||||
"bundle",
|
||||
"symfony",
|
||||
"tactician"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/tactician-bundle/issues",
|
||||
"source": "https://github.com/thephpleague/tactician-bundle/tree/v1.5.2"
|
||||
},
|
||||
"time": "2025-02-19T08:17:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/tactician-container",
|
||||
"version": "v3.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/tactician-container.git",
|
||||
"reference": "5150cbf861a51b1b27eba28449b46deee18cc423"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/tactician-container/zipball/5150cbf861a51b1b27eba28449b46deee18cc423",
|
||||
"reference": "5150cbf861a51b1b27eba28449b46deee18cc423",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"league/tactician": "^1.0",
|
||||
"php": ">=7.4",
|
||||
"psr/container": "~2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"league/container": "~4.0",
|
||||
"phpunit/phpunit": "~6.0",
|
||||
"squizlabs/php_codesniffer": "~2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"League\\Tactician\\Container\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nigel Greenway",
|
||||
"homepage": "http://futurepixels.co.uk"
|
||||
}
|
||||
],
|
||||
"description": "Tactician integration for any container implementing PSR-11",
|
||||
"keywords": [
|
||||
"container",
|
||||
"container-interop",
|
||||
"di",
|
||||
"interoperable",
|
||||
"league",
|
||||
"tactician"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/tactician-container/issues",
|
||||
"source": "https://github.com/thephpleague/tactician-container/tree/v3.0.0"
|
||||
},
|
||||
"time": "2021-12-16T20:15:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/tactician-doctrine",
|
||||
"version": "v1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/tactician-doctrine.git",
|
||||
"reference": "3ae678caddd008da3b54ba77be8dbf6e46e7c06a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/tactician-doctrine/zipball/3ae678caddd008da3b54ba77be8dbf6e46e7c06a",
|
||||
"reference": "3ae678caddd008da3b54ba77be8dbf6e46e7c06a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/dbal": "^2.4 || ^3.1.5",
|
||||
"league/tactician": "^1.1",
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/orm": "^2.4",
|
||||
"mockery/mockery": "^1.3.5",
|
||||
"phpunit/phpunit": "^7.5.20 || ^9.5.10",
|
||||
"squizlabs/php_codesniffer": "^3.6.2",
|
||||
"yoast/phpunit-polyfills": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/orm": "Required if you need to use ORM Transaction Middleware"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"League\\Tactician\\Doctrine\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ross Tuck"
|
||||
}
|
||||
],
|
||||
"description": "Plugins for Tactician commands using Doctrine, like wrapping every command in a transaction",
|
||||
"homepage": "https://github.com/thephpleague/tactician-doctrine",
|
||||
"keywords": [
|
||||
"command bus",
|
||||
"doctrine",
|
||||
"tactician",
|
||||
"transactions"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/tactician-doctrine/issues",
|
||||
"source": "https://github.com/thephpleague/tactician-doctrine/tree/v1.2.0"
|
||||
},
|
||||
"time": "2022-01-17T17:03:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/tactician-logger",
|
||||
"version": "v0.11.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/tactician-logger.git",
|
||||
"reference": "586a9f9781e9481a527010561ae80c0403d3f23d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/tactician-logger/zipball/586a9f9781e9481a527010561ae80c0403d3f23d",
|
||||
"reference": "586a9f9781e9481a527010561ae80c0403d3f23d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"league/tactician": "^1.1",
|
||||
"php": ">=7.3",
|
||||
"psr/log": "^1.0|^2.0|^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^1.3",
|
||||
"phpunit/phpunit": "^9.3",
|
||||
"squizlabs/php_codesniffer": "^3.5.8"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"League\\Tactician\\Logger\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ross Tuck"
|
||||
}
|
||||
],
|
||||
"description": "Adds PSR-3 logging support to the Tactician command bus",
|
||||
"homepage": "https://github.com/thephpleague/tactician-logger",
|
||||
"keywords": [
|
||||
"log",
|
||||
"logging",
|
||||
"tactician"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/tactician-logger/issues",
|
||||
"source": "https://github.com/thephpleague/tactician-logger/tree/v0.11.1"
|
||||
},
|
||||
"time": "2025-04-18T13:03:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/reflection-common",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
|
||||
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
|
||||
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-2.x": "2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jaap van Otterdijk",
|
||||
"email": "opensource@ijaap.nl"
|
||||
}
|
||||
],
|
||||
"description": "Common reflection classes used by phpdocumentor to reflect the code structure",
|
||||
"homepage": "http://www.phpdoc.org",
|
||||
"keywords": [
|
||||
"FQSEN",
|
||||
"phpDocumentor",
|
||||
"phpdoc",
|
||||
"reflection",
|
||||
"static analysis"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
|
||||
"source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
|
||||
},
|
||||
"time": "2020-06-27T09:03:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/reflection-docblock",
|
||||
"version": "5.6.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
||||
"reference": "92dde6a5919e34835c506ac8c523ef095a95ed62"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/92dde6a5919e34835c506ac8c523ef095a95ed62",
|
||||
"reference": "92dde6a5919e34835c506ac8c523ef095a95ed62",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/deprecations": "^1.1",
|
||||
"ext-filter": "*",
|
||||
"php": "^7.4 || ^8.0",
|
||||
"phpdocumentor/reflection-common": "^2.2",
|
||||
"phpdocumentor/type-resolver": "^1.7",
|
||||
"phpstan/phpdoc-parser": "^1.7|^2.0",
|
||||
"webmozart/assert": "^1.9.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~1.3.5 || ~1.6.0",
|
||||
"phpstan/extension-installer": "^1.1",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"phpstan/phpstan-mockery": "^1.1",
|
||||
"phpstan/phpstan-webmozart-assert": "^1.2",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"psalm/phar": "^5.26"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mike van Riel",
|
||||
"email": "me@mikevanriel.com"
|
||||
},
|
||||
{
|
||||
"name": "Jaap van Otterdijk",
|
||||
"email": "opensource@ijaap.nl"
|
||||
}
|
||||
],
|
||||
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
|
||||
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.2"
|
||||
},
|
||||
"time": "2025-04-13T19:20:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/type-resolver",
|
||||
"version": "1.10.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
||||
"reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a",
|
||||
"reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/deprecations": "^1.0",
|
||||
"php": "^7.3 || ^8.0",
|
||||
"phpdocumentor/reflection-common": "^2.0",
|
||||
"phpstan/phpdoc-parser": "^1.18|^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-tokenizer": "*",
|
||||
"phpbench/phpbench": "^1.2",
|
||||
"phpstan/extension-installer": "^1.1",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"phpstan/phpstan-phpunit": "^1.1",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"rector/rector": "^0.13.9",
|
||||
"vimeo/psalm": "^4.25"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-1.x": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mike van Riel",
|
||||
"email": "me@mikevanriel.com"
|
||||
}
|
||||
],
|
||||
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
|
||||
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0"
|
||||
},
|
||||
"time": "2024-11-09T15:12:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpdoc-parser",
|
||||
"version": "2.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpdoc-parser.git",
|
||||
"reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68",
|
||||
"reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.4 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "^2.0",
|
||||
"nikic/php-parser": "^5.3.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.2",
|
||||
"phpstan/extension-installer": "^1.0",
|
||||
"phpstan/phpstan": "^2.0",
|
||||
"phpstan/phpstan-phpunit": "^2.0",
|
||||
"phpstan/phpstan-strict-rules": "^2.0",
|
||||
"phpunit/phpunit": "^9.6",
|
||||
"symfony/process": "^5.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PHPStan\\PhpDocParser\\": [
|
||||
"src/"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"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.1.0"
|
||||
},
|
||||
"time": "2025-02-19T13:28:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/cache",
|
||||
"version": "3.0.0",
|
||||
|
|
@ -3260,6 +3789,167 @@
|
|||
],
|
||||
"time": "2025-02-20T12:04:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/property-access",
|
||||
"version": "v7.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/property-access.git",
|
||||
"reference": "b28732e315d81fbec787f838034de7d6c9b2b902"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/property-access/zipball/b28732e315d81fbec787f838034de7d6c9b2b902",
|
||||
"reference": "b28732e315d81fbec787f838034de7d6c9b2b902",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.2",
|
||||
"symfony/property-info": "^6.4|^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/cache": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\PropertyAccess\\": ""
|
||||
},
|
||||
"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 functions to read and write from/to an object or array using a simple string notation",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"access",
|
||||
"array",
|
||||
"extraction",
|
||||
"index",
|
||||
"injection",
|
||||
"object",
|
||||
"property",
|
||||
"property-path",
|
||||
"reflection"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/property-access/tree/v7.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-01-17T10:56:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/property-info",
|
||||
"version": "v7.2.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/property-info.git",
|
||||
"reference": "f00fd9685ecdbabe82ca25c7b739ce7bba99302c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/property-info/zipball/f00fd9685ecdbabe82ca25c7b739ce7bba99302c",
|
||||
"reference": "f00fd9685ecdbabe82ca25c7b739ce7bba99302c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.2",
|
||||
"symfony/string": "^6.4|^7.0",
|
||||
"symfony/type-info": "~7.1.9|^7.2.2"
|
||||
},
|
||||
"conflict": {
|
||||
"phpdocumentor/reflection-docblock": "<5.2",
|
||||
"phpdocumentor/type-resolver": "<1.5.1",
|
||||
"symfony/cache": "<6.4",
|
||||
"symfony/dependency-injection": "<6.4",
|
||||
"symfony/serializer": "<6.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpdocumentor/reflection-docblock": "^5.2",
|
||||
"phpstan/phpdoc-parser": "^1.0|^2.0",
|
||||
"symfony/cache": "^6.4|^7.0",
|
||||
"symfony/dependency-injection": "^6.4|^7.0",
|
||||
"symfony/serializer": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\PropertyInfo\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kévin Dunglas",
|
||||
"email": "dunglas@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Extracts information about PHP class' properties using metadata of popular sources",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"doctrine",
|
||||
"phpdoc",
|
||||
"property",
|
||||
"symfony",
|
||||
"type",
|
||||
"validator"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/property-info/tree/v7.2.5"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-03-06T16:27:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v7.2.3",
|
||||
|
|
@ -3420,6 +4110,104 @@
|
|||
],
|
||||
"time": "2024-12-29T21:39:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/serializer",
|
||||
"version": "v7.2.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/serializer.git",
|
||||
"reference": "be549655b034edc1a16ed23d8164aa04318c5ec1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/serializer/zipball/be549655b034edc1a16ed23d8164aa04318c5ec1",
|
||||
"reference": "be549655b034edc1a16ed23d8164aa04318c5ec1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.2",
|
||||
"symfony/deprecation-contracts": "^2.5|^3",
|
||||
"symfony/polyfill-ctype": "~1.8"
|
||||
},
|
||||
"conflict": {
|
||||
"phpdocumentor/reflection-docblock": "<3.2.2",
|
||||
"phpdocumentor/type-resolver": "<1.4.0",
|
||||
"symfony/dependency-injection": "<6.4",
|
||||
"symfony/property-access": "<6.4",
|
||||
"symfony/property-info": "<6.4",
|
||||
"symfony/uid": "<6.4",
|
||||
"symfony/validator": "<6.4",
|
||||
"symfony/yaml": "<6.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0",
|
||||
"phpstan/phpdoc-parser": "^1.0|^2.0",
|
||||
"seld/jsonlint": "^1.10",
|
||||
"symfony/cache": "^6.4|^7.0",
|
||||
"symfony/config": "^6.4|^7.0",
|
||||
"symfony/console": "^6.4|^7.0",
|
||||
"symfony/dependency-injection": "^7.2",
|
||||
"symfony/error-handler": "^6.4|^7.0",
|
||||
"symfony/filesystem": "^6.4|^7.0",
|
||||
"symfony/form": "^6.4|^7.0",
|
||||
"symfony/http-foundation": "^6.4|^7.0",
|
||||
"symfony/http-kernel": "^6.4|^7.0",
|
||||
"symfony/messenger": "^6.4|^7.0",
|
||||
"symfony/mime": "^6.4|^7.0",
|
||||
"symfony/property-access": "^6.4|^7.0",
|
||||
"symfony/property-info": "^6.4|^7.0",
|
||||
"symfony/translation-contracts": "^2.5|^3",
|
||||
"symfony/type-info": "^7.1",
|
||||
"symfony/uid": "^6.4|^7.0",
|
||||
"symfony/validator": "^6.4|^7.0",
|
||||
"symfony/var-dumper": "^6.4|^7.0",
|
||||
"symfony/var-exporter": "^6.4|^7.0",
|
||||
"symfony/yaml": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Serializer\\": ""
|
||||
},
|
||||
"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": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/serializer/tree/v7.2.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-04-27T13:34:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
"version": "v3.5.1",
|
||||
|
|
@ -3652,6 +4440,81 @@
|
|||
],
|
||||
"time": "2025-04-20T20:18:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/type-info",
|
||||
"version": "v7.2.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/type-info.git",
|
||||
"reference": "c4824a6b658294c828e609d3d8dbb4e87f6a375d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/type-info/zipball/c4824a6b658294c828e609d3d8dbb4e87f6a375d",
|
||||
"reference": "c4824a6b658294c828e609d3d8dbb4e87f6a375d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.2",
|
||||
"psr/container": "^1.1|^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpdoc-parser": "^1.0|^2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\TypeInfo\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mathias Arlaud",
|
||||
"email": "mathias.arlaud@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Baptiste LEDUC",
|
||||
"email": "baptiste.leduc@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Extracts PHP types information.",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"PHPStan",
|
||||
"phpdoc",
|
||||
"symfony",
|
||||
"type"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/type-info/tree/v7.2.5"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-03-24T09:03:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v7.2.6",
|
||||
|
|
@ -3882,6 +4745,64 @@
|
|||
}
|
||||
],
|
||||
"time": "2025-04-04T10:10:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
"version": "1.11.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webmozarts/assert.git",
|
||||
"reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
|
||||
"reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-ctype": "*",
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"phpstan/phpstan": "<0.12.20",
|
||||
"vimeo/psalm": "<4.6.1 || 4.6.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5.13"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.10-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Webmozart\\Assert\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Assertions to validate method input/output with nice error messages.",
|
||||
"keywords": [
|
||||
"assert",
|
||||
"check",
|
||||
"validate"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/webmozarts/assert/issues",
|
||||
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
|
||||
},
|
||||
"time": "2022-06-03T18:03:27+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
|
|
|
|||
|
|
@ -5,4 +5,5 @@ return [
|
|||
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
|
||||
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
|
||||
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
||||
League\Tactician\Bundle\TacticianBundle::class => ['all' => true],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -23,11 +23,17 @@ doctrine:
|
|||
Doctrine\DBAL\Platforms\PostgreSQLPlatform: identity
|
||||
auto_mapping: true
|
||||
mappings:
|
||||
App:
|
||||
type: attribute
|
||||
App\Domain\Entity:
|
||||
type: php
|
||||
dir: '%kernel.project_dir%/src/Infrastructure/Persistence/Mapping'
|
||||
is_bundle: false
|
||||
dir: '%kernel.project_dir%/src/Entity'
|
||||
prefix: 'App\Entity'
|
||||
prefix: App\Domain\Entity
|
||||
alias: App
|
||||
App\Application\ReadModel:
|
||||
type: php
|
||||
dir: '%kernel.project_dir%/src/Infrastructure/Persistence/Mapping'
|
||||
is_bundle: false
|
||||
prefix: App\Application\ReadModel
|
||||
alias: App
|
||||
controller_resolver:
|
||||
auto_mapping: false
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
# Library documentation: http://tactician.thephpleague.com/
|
||||
# Bundle documentation: https://github.com/thephpleague/tactician-bundle/blob/v1.0/README.md
|
||||
tactician:
|
||||
commandbus:
|
||||
default:
|
||||
middleware:
|
||||
# Security middleware - https://github.com/thephpleague/tactician-bundle#security-middleware-tacticianmiddlewaresecurity
|
||||
# - tactician.middleware.security
|
||||
# Validator middleware - https://github.com/thephpleague/tactician-bundle/tree/v1.0#validator-middleware-tacticianmiddlewarevalidator
|
||||
# - tactician.middleware.validator
|
||||
# Locking middleware - http://tactician.thephpleague.com/plugins/locking-middleware/
|
||||
- tactician.middleware.locking
|
||||
# Doctrine transactional middleware, requires additional package - https://github.com/thephpleague/tactician-doctrine
|
||||
- tactician.middleware.doctrine
|
||||
- command_handler
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
controllers:
|
||||
resource:
|
||||
path: ../src/Controller/
|
||||
namespace: App\Controller
|
||||
type: attribute
|
||||
healthcheck:
|
||||
path: /
|
||||
controller: App\Infrastructure\Controller\HealthCheck
|
||||
methods: GET
|
||||
|
|
@ -16,9 +16,30 @@ services:
|
|||
App\:
|
||||
resource: '../src/'
|
||||
exclude:
|
||||
- '../src/DependencyInjection/'
|
||||
- '../src/Entity/'
|
||||
- '../src/Domain'
|
||||
- '../src/Infrastructure/Persistence/Mapping'
|
||||
- '../src/Application/ReadModel'
|
||||
- '../src/Kernel.php'
|
||||
|
||||
App\Application\UseCase\:
|
||||
resource: '../src/Application/UseCase'
|
||||
exclude:
|
||||
- '../src/Application/UseCase/**/*Request.php'
|
||||
- '../src/Application/UseCase/**/*Context.php'
|
||||
public: true
|
||||
|
||||
League\Tactician\Handler\Locator\HandlerLocator: '@App\Application\CommandBus\ContainerCommandHandlerLocator'
|
||||
|
||||
App\Infrastructure\CommandBus\CommandBusCaller: '@App\Infrastructure\CommandBus\UnmanagedErrorsCommandBusCaller'
|
||||
|
||||
command_handler:
|
||||
class: League\Tactician\Handler\CommandHandlerMiddleware
|
||||
arguments:
|
||||
$commandNameExtractor: '@tactician.handler.command_name_extractor.class_name'
|
||||
$handlerLocator: '@App\Application\CommandBus\ContainerCommandHandlerLocator'
|
||||
$methodNameInflector: '@tactician.handler.method_name_inflector.handle'
|
||||
|
||||
Psr\Container\ContainerInterface: '@service_container'
|
||||
|
||||
# add more service definitions when explicit configuration is needed
|
||||
# please note that last definitions always *replace* previous ones
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\AssembleeNationale;
|
||||
|
||||
use Symfony\Component\Serializer\Attribute\SerializedPath;
|
||||
|
||||
readonly class InterExtraction
|
||||
{
|
||||
public function __construct(
|
||||
#[SerializedPath('[@nom_orateur]')]
|
||||
public string $nomOrateur,
|
||||
#[SerializedPath('[@id_acteur]')]
|
||||
public string $idActeur,
|
||||
#[SerializedPath('[@id_nomination_oe]')]
|
||||
public int $idNominationOe,
|
||||
#[SerializedPath('[@id_nomination_op]')]
|
||||
public int $idNominationOp,
|
||||
#[SerializedPath('[@id_mandat]')]
|
||||
public string $idMandat,
|
||||
#[SerializedPath('[@qualite]')]
|
||||
public ?string $qualite,
|
||||
#[SerializedPath('[paragraphe]')]
|
||||
/** @var ?Paragraphe[] $paragraphes */
|
||||
public ?array $paragraphes,
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\AssembleeNationale;
|
||||
|
||||
use Symfony\Component\Serializer\Attribute\SerializedPath;
|
||||
|
||||
readonly class Orateur
|
||||
{
|
||||
public function __construct(
|
||||
#[SerializedPath('[nom]')]
|
||||
public string $nom,
|
||||
#[SerializedPath('[id]')]
|
||||
public string $id,
|
||||
#[SerializedPath('[qualite]')]
|
||||
public string $qualite,
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\AssembleeNationale;
|
||||
|
||||
use Symfony\Component\Serializer\Attribute\SerializedPath;
|
||||
|
||||
readonly class Paragraphe
|
||||
{
|
||||
public function __construct(
|
||||
#[SerializedPath('[orateurs]')]
|
||||
public ?array $orateur,
|
||||
public array|string $texte,
|
||||
#[SerializedPath('[@ordre_absolu_seance]')]
|
||||
public int $ordreAbsoluteSeance,
|
||||
#[SerializedPath('[@code_grammaire]')]
|
||||
public string $codeGrammaire,
|
||||
#[SerializedPath('[@code_style]')]
|
||||
public string $codeStyle,
|
||||
#[SerializedPath('[@code_parole]')]
|
||||
public string $codeParole,
|
||||
#[SerializedPath('[@id_acteur]')]
|
||||
public null|string $idActeur,
|
||||
#[SerializedPath('[@id_mandat]')]
|
||||
public null|string|int $idMandat,
|
||||
#[SerializedPath('[@id_nomination_oe]')]
|
||||
public null|string|int $idNominationOe,
|
||||
#[SerializedPath('[@id_nomination_op]')]
|
||||
public null|string|int $idNominationOp,
|
||||
#[SerializedPath('[@art]')]
|
||||
public ?int $art,
|
||||
#[SerializedPath('[@adt]')]
|
||||
public ?int $adt,
|
||||
|
||||
/** @var ?Paragraphe[] $paragraphes */
|
||||
public ?array $paragraphes,
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\AssembleeNationale;
|
||||
|
||||
use Symfony\Component\Serializer\Attribute\SerializedPath;
|
||||
|
||||
readonly class Point
|
||||
{
|
||||
public function __construct(
|
||||
#[SerializedPath('[texte]')]
|
||||
public string|array|null $texte,
|
||||
#[SerializedPath('[@nivpoint]')]
|
||||
public int $nivPoint,
|
||||
#[SerializedPath('[@structure]')]
|
||||
public ?string $structure,
|
||||
#[SerializedPath('[point]')]
|
||||
/** @var ?Point[] $points */
|
||||
public ?array $points,
|
||||
#[SerializedPath('[paragraphe]')]
|
||||
/** @var ?Paragraphe[] $paragraphes */
|
||||
public ?array $paragraphes,
|
||||
#[SerializedPath('[interExtraction]')]
|
||||
/** @var ?InterExtraction[] $interExtraction */
|
||||
public ?array $interExtraction,
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\AssembleeNationale;
|
||||
|
||||
use Symfony\Component\Serializer\Attribute\Context;
|
||||
use Symfony\Component\Serializer\Attribute\SerializedPath;
|
||||
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
|
||||
|
||||
readonly class Seance
|
||||
{
|
||||
public function __construct(
|
||||
#[SerializedPath('[uid]')]
|
||||
public string $uid,
|
||||
#[SerializedPath('[metadonnees][dateSeance]')]
|
||||
#[Context([DateTimeNormalizer::FORMAT_KEY => 'YmdHisv'])]
|
||||
public \DateTimeImmutable $dateSeance,
|
||||
#[SerializedPath('[metadonnees][legislature]')]
|
||||
public int $legislature,
|
||||
#[SerializedPath('[metadonnees][session]')]
|
||||
public string $session,
|
||||
#[SerializedPath('[contenu][point]')]
|
||||
/** @var Point[] $points */
|
||||
public array $points,
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\CommandBus;
|
||||
|
||||
use League\Tactician\Exception\MissingHandlerException;
|
||||
use League\Tactician\Handler\Locator\HandlerLocator;
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
class ContainerCommandHandlerLocator implements HandlerLocator
|
||||
{
|
||||
public function __construct(
|
||||
private readonly ContainerInterface $container
|
||||
) {
|
||||
}
|
||||
|
||||
public function getHandlerForCommand($commandName)
|
||||
{
|
||||
$commandHandler = substr($commandName, 0, -\strlen('Request'));
|
||||
if (!$this->container->has($commandHandler)) {
|
||||
throw MissingHandlerException::forCommand($commandName);
|
||||
}
|
||||
|
||||
return $this->container->get($commandHandler);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\UseCase;
|
||||
|
||||
use App\Application\AssembleeNationale\Seance;
|
||||
use Symfony\Component\Serializer\SerializerInterface;
|
||||
|
||||
class DeserializeCompteRenduAN
|
||||
{
|
||||
public function __construct(
|
||||
private readonly SerializerInterface $serializer
|
||||
) {
|
||||
}
|
||||
|
||||
public function handle(DeserializeCompteRenduANRequest $request): void
|
||||
{
|
||||
$compteRenduXML = file_get_contents($request->filename);
|
||||
|
||||
dd($this->serializer->deserialize($compteRenduXML, Seance::class, 'xml'));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\UseCase;
|
||||
|
||||
class DeserializeCompteRenduANRequest
|
||||
{
|
||||
public function __construct(
|
||||
public string $filename,
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\UseCase;
|
||||
|
||||
class HealthCheck
|
||||
{
|
||||
public function handle(HealthCheckRequest $request): string
|
||||
{
|
||||
return $request->test;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\UseCase;
|
||||
|
||||
readonly class HealthCheckRequest
|
||||
{
|
||||
public function __construct(
|
||||
public string $test,
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
|
||||
class HealthcheckController
|
||||
{
|
||||
#[Route('/', name: 'healthcheck')]
|
||||
public function healthcheck(): Response
|
||||
{
|
||||
return new Response("ok");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Infrastructure\CommandBus;
|
||||
|
||||
interface CommandBusCaller
|
||||
{
|
||||
public function callCommandBus(object $request): mixed;
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Infrastructure\CommandBus;
|
||||
|
||||
use League\Tactician\CommandBus;
|
||||
|
||||
readonly class UnmanagedErrorsCommandBusCaller implements CommandBusCaller
|
||||
{
|
||||
public function __construct(
|
||||
private CommandBus $commandBus
|
||||
) {
|
||||
}
|
||||
|
||||
public function callCommandBus(object $request): mixed
|
||||
{
|
||||
return $this->commandBus->handle($request);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Infrastructure\Console;
|
||||
|
||||
use App\Application\UseCase\DeserializeCompteRenduANRequest;
|
||||
use App\Infrastructure\CommandBus\CommandBusCaller;
|
||||
use Symfony\Component\Console\Attribute\AsCommand;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
#[AsCommand('stat-an:debug:deserialize:compte-rendu')]
|
||||
class DebugDeserializeCompteRendu extends Command
|
||||
{
|
||||
public function __construct(
|
||||
private readonly CommandBusCaller $commandBusCaller,
|
||||
) {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$compteRendu = $this->commandBusCaller->callCommandBus(new DeserializeCompteRenduANRequest(__DIR__ . '/../../../samples/CRSANR5L17S2025O1N201.xml'));
|
||||
dd($compteRendu);
|
||||
|
||||
return Command::SUCCESS;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Infrastructure\Controller;
|
||||
|
||||
use App\Infrastructure\CommandBus\CommandBusCaller;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
|
||||
abstract class AController extends AbstractController
|
||||
{
|
||||
public function __construct(
|
||||
private readonly CommandBusCaller $commandBusCaller,
|
||||
) {
|
||||
}
|
||||
|
||||
protected function callCommandBus(object $request): mixed
|
||||
{
|
||||
return $this->commandBusCaller->callCommandBus($request);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Infrastructure\Controller;
|
||||
|
||||
use App\Application\UseCase\HealthCheckRequest;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
|
||||
class HealthCheck extends AController
|
||||
{
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
$healthcheck = $this->callCommandBus(new HealthCheckRequest('ok'));
|
||||
|
||||
return new JsonResponse(
|
||||
[
|
||||
'status' => $healthcheck,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
12
symfony.lock
12
symfony.lock
|
|
@ -38,6 +38,18 @@
|
|||
".php-cs-fixer.dist.php"
|
||||
]
|
||||
},
|
||||
"league/tactician-bundle": {
|
||||
"version": "1.5",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes-contrib",
|
||||
"branch": "main",
|
||||
"version": "1.0",
|
||||
"ref": "222c3d39d38378bc6a9790a0b5baf841ba6679b9"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/league_tactician.yaml"
|
||||
]
|
||||
},
|
||||
"phpstan/phpstan": {
|
||||
"version": "2.1",
|
||||
"recipe": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue