From a65b36b5f9050603d5ae827f85e9e87f6ee0a053 Mon Sep 17 00:00:00 2001 From: Vincent Chalamon <407859+vincentchalamon@users.noreply.github.com> Date: Thu, 26 Oct 2023 09:40:37 +0200 Subject: [PATCH] chore: update api from distro --- api/.dockerignore | 4 + api/.env | 11 +- api/.env.test | 1 + api/Dockerfile | 81 +- api/composer.json | 7 +- api/composer.lock | 1384 ++++++++++++++--- api/config/packages/doctrine.yaml | 1 + api/config/packages/validator.yaml | 5 + api/docker/caddy/Caddyfile | 55 - api/docker/php/conf.d/app.prod.ini | 2 - api/docker/php/docker-healthcheck.sh | 8 - api/docker/php/php-fpm.d/zz-docker.conf | 9 - api/frankenphp/Caddyfile | 77 + .../php => frankenphp}/conf.d/app.dev.ini | 2 +- api/{docker/php => frankenphp}/conf.d/app.ini | 1 + api/frankenphp/conf.d/app.prod.ini | 2 + .../php => frankenphp}/docker-entrypoint.sh | 17 +- api/frankenphp/worker.Caddyfile | 4 + api/phpunit.xml.dist | 6 +- api/src/Kernel.php | 2 - api/symfony.lock | 265 ++-- 21 files changed, 1392 insertions(+), 552 deletions(-) delete mode 100644 api/docker/caddy/Caddyfile delete mode 100644 api/docker/php/conf.d/app.prod.ini delete mode 100644 api/docker/php/docker-healthcheck.sh delete mode 100644 api/docker/php/php-fpm.d/zz-docker.conf create mode 100644 api/frankenphp/Caddyfile rename api/{docker/php => frankenphp}/conf.d/app.dev.ini (87%) rename api/{docker/php => frankenphp}/conf.d/app.ini (93%) create mode 100644 api/frankenphp/conf.d/app.prod.ini rename api/{docker/php => frankenphp}/docker-entrypoint.sh (82%) create mode 100644 api/frankenphp/worker.Caddyfile diff --git a/api/.dockerignore b/api/.dockerignore index 3225cf9b3..dc5a87529 100644 --- a/api/.dockerignore +++ b/api/.dockerignore @@ -11,6 +11,10 @@ **/.gitattributes **/.gitignore **/.gitmodules +**/compose.*.yaml +**/compose.*.yml +**/compose.yaml +**/compose.yml **/docker-compose.*.yaml **/docker-compose.*.yml **/docker-compose.yaml diff --git a/api/.env b/api/.env index 98017bb44..44d5d5aa5 100644 --- a/api/.env +++ b/api/.env @@ -16,9 +16,9 @@ # API Platform distribution TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 -TRUSTED_HOSTS=^(localhost|caddy)$ +TRUSTED_HOSTS=^(localhost|php)$ OIDC_SERVER_URL=https://localhost/oidc/realms/demo -OIDC_SERVER_URL_INTERNAL=https://caddy/oidc/realms/demo +OIDC_SERVER_URL_INTERNAL=http://php/oidc/realms/demo OIDC_SWAGGER_CLIENT_ID=api-platform-swagger ###> symfony/framework-bundle ### @@ -31,8 +31,9 @@ APP_SECRET=!ChangeMe! # IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml # # DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db" -# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8&charset=utf8mb4" -DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8" +# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4" +# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4" +DATABASE_URL="postgresql://app:!ChangeMe!@database:5432/app?serverVersion=15&charset=utf8" ###< doctrine/doctrine-bundle ### ###> nelmio/cors-bundle ### @@ -42,7 +43,7 @@ CORS_ALLOW_ORIGIN='^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$' ###> symfony/mercure-bundle ### # See https://symfony.com/doc/current/mercure.html#configuration # The URL of the Mercure hub, used by the app to publish updates (can be a local URL) -MERCURE_URL=http://caddy/.well-known/mercure +MERCURE_URL=http://php/.well-known/mercure # The public URL of the Mercure hub, used by the browser to connect MERCURE_PUBLIC_URL=https://localhost/.well-known/mercure # The secret used to sign the JWTs diff --git a/api/.env.test b/api/.env.test index 336af7033..e3d5d8bdb 100644 --- a/api/.env.test +++ b/api/.env.test @@ -1,6 +1,7 @@ # define your env variables for the test env here KERNEL_CLASS='App\Kernel' APP_SECRET='$ecretf0rt3st' +SYMFONY_DEPRECATIONS_HELPER=999999 PANTHER_APP_ENV=panther PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots diff --git a/api/Dockerfile b/api/Dockerfile index 9c6b80add..6536ccbfe 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -4,10 +4,9 @@ # Versions -FROM php:8.2-fpm-alpine AS php_upstream -FROM mlocati/php-extension-installer:2 AS php_extension_installer_upstream +# hadolint ignore=DL3007 +FROM dunglas/frankenphp:latest-alpine AS frankenphp_upstream FROM composer/composer:2-bin AS composer_upstream -FROM caddy:2-alpine AS caddy_upstream # The different stages of this Dockerfile are meant to be built into separate images @@ -15,54 +14,40 @@ FROM caddy:2-alpine AS caddy_upstream # https://docs.docker.com/compose/compose-file/#target -# Base PHP image -FROM php_upstream AS php_base +# Base FrankenPHP image +FROM frankenphp_upstream AS frankenphp_base -WORKDIR /srv/app +WORKDIR /app # persistent / runtime deps # hadolint ignore=DL3018 RUN apk add --no-cache \ acl \ - fcgi \ file \ gettext \ git \ ; -# php extensions installer: https://github.com/mlocati/docker-php-extension-installer -COPY --from=php_extension_installer_upstream --link /usr/bin/install-php-extensions /usr/local/bin/ - RUN set -eux; \ - install-php-extensions \ + install-php-extensions \ apcu \ intl \ opcache \ zip \ - ; + ; ###> recipes ### ###> doctrine/doctrine-bundle ### RUN set -eux; \ - install-php-extensions pdo_pgsql + install-php-extensions pdo_pgsql ###< doctrine/doctrine-bundle ### ###< recipes ### -COPY --link docker/php/conf.d/app.ini $PHP_INI_DIR/conf.d/ - -COPY --link docker/php/php-fpm.d/zz-docker.conf /usr/local/etc/php-fpm.d/zz-docker.conf -RUN mkdir -p /var/run/php - -COPY --link docker/php/docker-healthcheck.sh /usr/local/bin/docker-healthcheck -RUN chmod +x /usr/local/bin/docker-healthcheck - -HEALTHCHECK --interval=10s --timeout=3s --retries=3 CMD ["docker-healthcheck"] - -COPY --link docker/php/docker-entrypoint.sh /usr/local/bin/docker-entrypoint -RUN chmod +x /usr/local/bin/docker-entrypoint +COPY --link frankenphp/conf.d/app.ini $PHP_INI_DIR/conf.d/ +COPY --link --chmod=755 frankenphp/docker-entrypoint.sh /usr/local/bin/docker-entrypoint +COPY --link frankenphp/Caddyfile /etc/caddy/Caddyfile ENTRYPOINT ["docker-entrypoint"] -CMD ["php-fpm"] # https://getcomposer.org/doc/03-cli.md#composer-allow-superuser ENV COMPOSER_ALLOW_SUPERUSER=1 @@ -70,29 +55,35 @@ ENV PATH="${PATH}:/root/.composer/vendor/bin" COPY --from=composer_upstream --link /composer /usr/bin/composer +HEALTHCHECK --start-period=60s CMD curl -f http://localhost:2019/metrics || exit 1 +CMD [ "frankenphp", "run", "--config", "/etc/caddy/Caddyfile" ] -# Dev PHP image -FROM php_base AS php_dev +# Dev FrankenPHP image +FROM frankenphp_base AS frankenphp_dev ENV APP_ENV=dev XDEBUG_MODE=off -VOLUME /srv/app/var/ RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" RUN set -eux; \ install-php-extensions \ - xdebug \ - ; + xdebug \ + ; + +COPY --link frankenphp/conf.d/app.dev.ini $PHP_INI_DIR/conf.d/ -COPY --link docker/php/conf.d/app.dev.ini $PHP_INI_DIR/conf.d/ +CMD [ "frankenphp", "run", "--config", "/etc/caddy/Caddyfile", "--watch" ] -# Prod PHP image -FROM php_base AS php_prod +# Prod FrankenPHP image +FROM frankenphp_base AS frankenphp_prod ENV APP_ENV=prod +ENV FRANKENPHP_CONFIG="import worker.Caddyfile" RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" -COPY --link docker/php/conf.d/app.prod.ini $PHP_INI_DIR/conf.d/ + +COPY --link frankenphp/conf.d/app.prod.ini $PHP_INI_DIR/conf.d/ +COPY --link frankenphp/worker.Caddyfile /etc/caddy/worker.Caddyfile # prevent the reinstallation of vendors at every changes in the source code COPY --link composer.* symfony.* ./ @@ -101,7 +92,7 @@ RUN set -eux; \ # copy sources COPY --link . ./ -RUN rm -Rf docker/ +RUN rm -Rf frankenphp/ RUN set -eux; \ mkdir -p var/cache var/log; \ @@ -109,21 +100,3 @@ RUN set -eux; \ composer dump-env prod; \ composer run-script --no-dev post-install-cmd; \ chmod +x bin/console; sync; - - -# Base Caddy image -FROM caddy_upstream AS caddy_base - -ARG TARGETARCH - -WORKDIR /srv/app - -# Download Caddy compiled with the Mercure and Vulcain -ADD --chmod=500 https://caddyserver.com/api/download?os=linux&arch=$TARGETARCH&p=github.com/dunglas/mercure/caddy&p=github.com/dunglas/vulcain/caddy /usr/bin/caddy - -COPY --link docker/caddy/Caddyfile /etc/caddy/Caddyfile - -# Prod Caddy image -FROM caddy_base AS caddy_prod - -COPY --from=php_prod --link /srv/app/public public/ diff --git a/api/composer.json b/api/composer.json index dbe7d84d3..bff441b7a 100644 --- a/api/composer.json +++ b/api/composer.json @@ -5,14 +5,14 @@ "php": ">=8.2", "ext-ctype": "*", "ext-iconv": "*", - "ext-xml": "*", - "api-platform/core": "^3.2@beta", + "api-platform/core": "^3.2", "doctrine/doctrine-bundle": "^2.7", "doctrine/doctrine-migrations-bundle": "^3.2", "doctrine/orm": "^2.12", "myclabs/php-enum": "^1.8", "nelmio/cors-bundle": "^2.2", "phpstan/phpdoc-parser": "^1.16", + "runtime/frankenphp-symfony": "^0.1.1", "symfony/asset": "6.3.*", "symfony/clock": "6.3.*", "symfony/console": "6.3.*", @@ -37,6 +37,7 @@ "webonyx/graphql-php": "^15.5" }, "require-dev": { + "api-platform/schema-generator": "^5.0", "dama/doctrine-test-bundle": "^7.2", "doctrine/doctrine-fixtures-bundle": "^3.4", "justinrainbow/json-schema": "^5.2", @@ -51,7 +52,6 @@ "vimeo/psalm": "^4.7", "zenstruck/foundry": "^1.32" }, - "prefer-stable": true, "config": { "optimize-autoloader": true, "preferred-install": { @@ -59,7 +59,6 @@ }, "sort-packages": true, "allow-plugins": { - "composer/package-versions-deprecated": true, "symfony/flex": true, "symfony/runtime": true } diff --git a/api/composer.lock b/api/composer.lock index 6e4c2f00e..c79f50937 100644 --- a/api/composer.lock +++ b/api/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": "a07f841d2120cf530694877dc3f40aa8", + "content-hash": "532b14a28d780e37531ca255892e8ee6", "packages": [ { "name": "api-platform/core", - "version": "v3.2.0-beta.1", + "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/api-platform/core.git", - "reference": "747c8235790efaf9e30c83b93b7cdc037398ffe4" + "reference": "13aa25cd319ee5d45ce28d1e98e43b01f6132499" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/core/zipball/747c8235790efaf9e30c83b93b7cdc037398ffe4", - "reference": "747c8235790efaf9e30c83b93b7cdc037398ffe4", + "url": "https://api.github.com/repos/api-platform/core/zipball/13aa25cd319ee5d45ce28d1e98e43b01f6132499", + "reference": "13aa25cd319ee5d45ce28d1e98e43b01f6132499", "shasum": "" }, "require": { @@ -129,7 +129,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.2.x-dev" + "dev-main": "3.3.x-dev" }, "symfony": { "require": "^6.1" @@ -166,15 +166,9 @@ ], "support": { "issues": "https://github.com/api-platform/core/issues", - "source": "https://github.com/api-platform/core/tree/v3.2.0-beta.1" + "source": "https://github.com/api-platform/core/tree/v3.2.1" }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/api-platform/core", - "type": "tidelift" - } - ], - "time": "2023-09-20T16:37:19+00:00" + "time": "2023-10-18T07:46:05+00:00" }, { "name": "brick/math", @@ -326,16 +320,16 @@ }, { "name": "doctrine/collections", - "version": "2.1.3", + "version": "2.1.4", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "3023e150f90a38843856147b58190aa8b46cc155" + "reference": "72328a11443a0de79967104ad36ba7b30bded134" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/3023e150f90a38843856147b58190aa8b46cc155", - "reference": "3023e150f90a38843856147b58190aa8b46cc155", + "url": "https://api.github.com/repos/doctrine/collections/zipball/72328a11443a0de79967104ad36ba7b30bded134", + "reference": "72328a11443a0de79967104ad36ba7b30bded134", "shasum": "" }, "require": { @@ -343,7 +337,7 @@ "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^10.0", + "doctrine/coding-standard": "^12", "ext-json": "*", "phpstan/phpstan": "^1.8", "phpstan/phpstan-phpunit": "^1.0", @@ -392,7 +386,7 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/2.1.3" + "source": "https://github.com/doctrine/collections/tree/2.1.4" }, "funding": [ { @@ -408,7 +402,7 @@ "type": "tidelift" } ], - "time": "2023-07-06T15:15:36+00:00" + "time": "2023-10-03T09:22:33+00:00" }, { "name": "doctrine/common", @@ -503,16 +497,16 @@ }, { "name": "doctrine/dbal", - "version": "3.6.6", + "version": "3.7.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "63646ffd71d1676d2f747f871be31b7e921c7864" + "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/63646ffd71d1676d2f747f871be31b7e921c7864", - "reference": "63646ffd71d1676d2f747f871be31b7e921c7864", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/5b7bd66c9ff58c04c5474ab85edce442f8081cb2", + "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2", "shasum": "" }, "require": { @@ -528,9 +522,9 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.29", + "phpstan/phpstan": "1.10.35", "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.9", + "phpunit/phpunit": "9.6.13", "psalm/plugin-phpunit": "0.18.4", "slevomat/coding-standard": "8.13.1", "squizlabs/php_codesniffer": "3.7.2", @@ -596,7 +590,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.6.6" + "source": "https://github.com/doctrine/dbal/tree/3.7.1" }, "funding": [ { @@ -612,20 +606,20 @@ "type": "tidelift" } ], - "time": "2023-08-17T05:38:17+00:00" + "time": "2023-10-06T05:06:20+00:00" }, { "name": "doctrine/deprecations", - "version": "v1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", "shasum": "" }, "require": { @@ -657,9 +651,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" }, - "time": "2023-06-03T09:27:29+00:00" + "time": "2023-09-27T20:04:15+00:00" }, { "name": "doctrine/doctrine-bundle", @@ -1915,16 +1909,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.24.1", + "version": "1.24.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01" + "reference": "bcad8d995980440892759db0c32acae7c8e79442" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01", - "reference": "9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442", + "reference": "bcad8d995980440892759db0c32acae7c8e79442", "shasum": "" }, "require": { @@ -1956,9 +1950,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/1.24.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2" }, - "time": "2023-09-18T12:18:02+00:00" + "time": "2023-09-26T12:28:12+00:00" }, { "name": "psr/cache", @@ -2266,6 +2260,58 @@ }, "time": "2021-07-14T16:46:02+00:00" }, + { + "name": "runtime/frankenphp-symfony", + "version": "0.1.1", + "source": { + "type": "git", + "url": "https://github.com/php-runtime/frankenphp-symfony.git", + "reference": "6c752824a4caf075996da91eddc5ebfbaa90b9aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-runtime/frankenphp-symfony/zipball/6c752824a4caf075996da91eddc5ebfbaa90b9aa", + "reference": "6c752824a4caf075996da91eddc5ebfbaa90b9aa", + "shasum": "" + }, + "require": { + "php": ">=8.0", + "symfony/dependency-injection": "^5.4 || ^6.0", + "symfony/http-kernel": "^5.4 || ^6.0", + "symfony/runtime": "^5.4 || ^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Runtime\\FrankenPhpSymfony\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "kevin@dunglas.dev" + } + ], + "description": "FrankenPHP runtime for Symfony", + "support": { + "issues": "https://github.com/php-runtime/frankenphp-symfony/issues", + "source": "https://github.com/php-runtime/frankenphp-symfony/tree/0.1.1" + }, + "funding": [ + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2022-10-20T07:27:57+00:00" + }, { "name": "spomky-labs/pki-framework", "version": "1.1.0", @@ -2447,16 +2493,16 @@ }, { "name": "symfony/cache", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "e60d00b4f633efa4c1ef54e77c12762d9073e7b3" + "reference": "84aff8d948d6292d2b5a01ac622760be44dddc72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/e60d00b4f633efa4c1ef54e77c12762d9073e7b3", - "reference": "e60d00b4f633efa4c1ef54e77c12762d9073e7b3", + "url": "https://api.github.com/repos/symfony/cache/zipball/84aff8d948d6292d2b5a01ac622760be44dddc72", + "reference": "84aff8d948d6292d2b5a01ac622760be44dddc72", "shasum": "" }, "require": { @@ -2465,7 +2511,7 @@ "psr/log": "^1.1|^2|^3", "symfony/cache-contracts": "^2.5|^3", "symfony/service-contracts": "^2.5|^3", - "symfony/var-exporter": "^6.2.10" + "symfony/var-exporter": "^6.3.6" }, "conflict": { "doctrine/dbal": "<2.13.1", @@ -2480,7 +2526,7 @@ }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/dbal": "^2.13.1|^3.0", + "doctrine/dbal": "^2.13.1|^3|^4", "predis/predis": "^1.1|^2.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "symfony/config": "^5.4|^6.0", @@ -2523,7 +2569,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.3.4" + "source": "https://github.com/symfony/cache/tree/v6.3.6" }, "funding": [ { @@ -2539,7 +2585,7 @@ "type": "tidelift" } ], - "time": "2023-08-05T09:10:27+00:00" + "time": "2023-10-17T14:44:58+00:00" }, { "name": "symfony/cache-contracts", @@ -2857,16 +2903,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v6.3.4", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "68a5a9570806a087982f383f6109c5e925892a49" + "reference": "2ed62b3bf98346e1f45529a7b6be2196739bb993" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/68a5a9570806a087982f383f6109c5e925892a49", - "reference": "68a5a9570806a087982f383f6109c5e925892a49", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/2ed62b3bf98346e1f45529a7b6be2196739bb993", + "reference": "2ed62b3bf98346e1f45529a7b6be2196739bb993", "shasum": "" }, "require": { @@ -2918,7 +2964,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/v6.3.4" + "source": "https://github.com/symfony/dependency-injection/tree/v6.3.5" }, "funding": [ { @@ -2934,7 +2980,7 @@ "type": "tidelift" } ], - "time": "2023-08-16T17:55:17+00:00" + "time": "2023-09-25T16:46:40+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3005,16 +3051,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "589eeeb93669739ec1d8bd4593e4972d94e0981d" + "reference": "6479c0b2cb2fa94338a5fb5b810a82d573ca15c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/589eeeb93669739ec1d8bd4593e4972d94e0981d", - "reference": "589eeeb93669739ec1d8bd4593e4972d94e0981d", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/6479c0b2cb2fa94338a5fb5b810a82d573ca15c2", + "reference": "6479c0b2cb2fa94338a5fb5b810a82d573ca15c2", "shasum": "" }, "require": { @@ -3047,8 +3093,8 @@ "doctrine/annotations": "^1.13.1|^2", "doctrine/collections": "^1.0|^2.0", "doctrine/data-fixtures": "^1.1", - "doctrine/dbal": "^2.13.1|^3.0", - "doctrine/orm": "^2.12", + "doctrine/dbal": "^2.13.1|^3|^4", + "doctrine/orm": "^2.12|^3", "psr/log": "^1|^2|^3", "symfony/cache": "^5.4|^6.0", "symfony/config": "^5.4|^6.0", @@ -3095,7 +3141,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.3.4" + "source": "https://github.com/symfony/doctrine-bridge/tree/v6.3.6" }, "funding": [ { @@ -3111,7 +3157,7 @@ "type": "tidelift" } ], - "time": "2023-08-08T10:40:25+00:00" + "time": "2023-10-17T16:20:28+00:00" }, { "name": "symfony/dotenv", @@ -3189,16 +3235,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.3.2", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a" + "reference": "1f69476b64fb47105c06beef757766c376b548c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/85fd65ed295c4078367c784e8a5a6cee30348b7a", - "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/1f69476b64fb47105c06beef757766c376b548c4", + "reference": "1f69476b64fb47105c06beef757766c376b548c4", "shasum": "" }, "require": { @@ -3243,7 +3289,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/v6.3.2" + "source": "https://github.com/symfony/error-handler/tree/v6.3.5" }, "funding": [ { @@ -3259,7 +3305,7 @@ "type": "tidelift" } ], - "time": "2023-07-16T17:05:46+00:00" + "time": "2023-09-12T06:57:20+00:00" }, { "name": "symfony/event-dispatcher", @@ -3546,16 +3592,16 @@ }, { "name": "symfony/finder", - "version": "v6.3.3", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e" + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9915db259f67d21eefee768c1abcf1cc61b1fc9e", - "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e", + "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4", + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4", "shasum": "" }, "require": { @@ -3590,7 +3636,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.3.3" + "source": "https://github.com/symfony/finder/tree/v6.3.5" }, "funding": [ { @@ -3606,20 +3652,20 @@ "type": "tidelift" } ], - "time": "2023-07-31T08:31:44+00:00" + "time": "2023-09-26T12:56:25+00:00" }, { "name": "symfony/flex", - "version": "v2.3.3", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "9c402af768c6c9f8126a9ffa192ecf7c16581e35" + "reference": "46bebc3d097d1bb1dce04c5ba83658afd79988f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/9c402af768c6c9f8126a9ffa192ecf7c16581e35", - "reference": "9c402af768c6c9f8126a9ffa192ecf7c16581e35", + "url": "https://api.github.com/repos/symfony/flex/zipball/46bebc3d097d1bb1dce04c5ba83658afd79988f9", + "reference": "46bebc3d097d1bb1dce04c5ba83658afd79988f9", "shasum": "" }, "require": { @@ -3655,7 +3701,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.3.3" + "source": "https://github.com/symfony/flex/tree/v2.4.0" }, "funding": [ { @@ -3671,20 +3717,20 @@ "type": "tidelift" } ], - "time": "2023-08-04T09:02:35+00:00" + "time": "2023-10-22T18:05:25+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "f822f54ff05cd88878910b4559f66c12176d952c" + "reference": "5b5dca452a70d06d0463d3aeae640b2d034ef485" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/f822f54ff05cd88878910b4559f66c12176d952c", - "reference": "f822f54ff05cd88878910b4559f66c12176d952c", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5b5dca452a70d06d0463d3aeae640b2d034ef485", + "reference": "5b5dca452a70d06d0463d3aeae640b2d034ef485", "shasum": "" }, "require": { @@ -3799,7 +3845,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/v6.3.4" + "source": "https://github.com/symfony/framework-bundle/tree/v6.3.6" }, "funding": [ { @@ -3815,20 +3861,20 @@ "type": "tidelift" } ], - "time": "2023-08-16T18:04:38+00:00" + "time": "2023-10-12T17:41:20+00:00" }, { "name": "symfony/http-client", - "version": "v6.3.2", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "15f9f4bad62bfcbe48b5dedd866f04a08fc7ff00" + "reference": "ab8446f997efb9913627e9da10fa784d2182fe92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/15f9f4bad62bfcbe48b5dedd866f04a08fc7ff00", - "reference": "15f9f4bad62bfcbe48b5dedd866f04a08fc7ff00", + "url": "https://api.github.com/repos/symfony/http-client/zipball/ab8446f997efb9913627e9da10fa784d2182fe92", + "reference": "ab8446f997efb9913627e9da10fa784d2182fe92", "shasum": "" }, "require": { @@ -3891,7 +3937,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.3.2" + "source": "https://github.com/symfony/http-client/tree/v6.3.6" }, "funding": [ { @@ -3907,7 +3953,7 @@ "type": "tidelift" } ], - "time": "2023-07-05T08:41:27+00:00" + "time": "2023-10-06T10:08:56+00:00" }, { "name": "symfony/http-client-contracts", @@ -3989,16 +4035,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "cac1556fdfdf6719668181974104e6fcfa60e844" + "reference": "c186627f52febe09c6d5270b04f8462687a250a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cac1556fdfdf6719668181974104e6fcfa60e844", - "reference": "cac1556fdfdf6719668181974104e6fcfa60e844", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c186627f52febe09c6d5270b04f8462687a250a6", + "reference": "c186627f52febe09c6d5270b04f8462687a250a6", "shasum": "" }, "require": { @@ -4008,12 +4054,12 @@ "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.2" + "symfony/cache": "<6.3" }, "require-dev": { - "doctrine/dbal": "^2.13.1|^3.0", + "doctrine/dbal": "^2.13.1|^3|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^5.4|^6.0", + "symfony/cache": "^6.3", "symfony/dependency-injection": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", @@ -4046,7 +4092,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.3.4" + "source": "https://github.com/symfony/http-foundation/tree/v6.3.6" }, "funding": [ { @@ -4062,20 +4108,20 @@ "type": "tidelift" } ], - "time": "2023-08-22T08:20:46+00:00" + "time": "2023-10-17T11:32:53+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb" + "reference": "4945f5001b06ff9080cd3d8f1f9f069094c0d156" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb", - "reference": "36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4945f5001b06ff9080cd3d8f1f9f069094c0d156", + "reference": "4945f5001b06ff9080cd3d8f1f9f069094c0d156", "shasum": "" }, "require": { @@ -4159,7 +4205,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/v6.3.4" + "source": "https://github.com/symfony/http-kernel/tree/v6.3.6" }, "funding": [ { @@ -4175,7 +4221,7 @@ "type": "tidelift" } ], - "time": "2023-08-26T13:54:49+00:00" + "time": "2023-10-21T13:12:51+00:00" }, { "name": "symfony/mercure", @@ -4505,16 +4551,16 @@ }, { "name": "symfony/password-hasher", - "version": "v6.3.0", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "d23ad221989e6b8278d050cabfd7b569eee84590" + "reference": "278d3a49715073879f75e372ad80b8cfeca949d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/d23ad221989e6b8278d050cabfd7b569eee84590", - "reference": "d23ad221989e6b8278d050cabfd7b569eee84590", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/278d3a49715073879f75e372ad80b8cfeca949d3", + "reference": "278d3a49715073879f75e372ad80b8cfeca949d3", "shasum": "" }, "require": { @@ -4557,7 +4603,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.3.0" + "source": "https://github.com/symfony/password-hasher/tree/v6.3.5" }, "funding": [ { @@ -4573,7 +4619,7 @@ "type": "tidelift" } ], - "time": "2023-02-14T09:04:20+00:00" + "time": "2023-09-25T17:05:16+00:00" }, { "name": "symfony/polyfill-php83", @@ -4899,16 +4945,16 @@ }, { "name": "symfony/routing", - "version": "v6.3.3", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a" + "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e7243039ab663822ff134fbc46099b5fdfa16f6a", - "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a", + "url": "https://api.github.com/repos/symfony/routing/zipball/82616e59acd3e3d9c916bba798326cb7796d7d31", + "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31", "shasum": "" }, "require": { @@ -4962,7 +5008,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.3.3" + "source": "https://github.com/symfony/routing/tree/v6.3.5" }, "funding": [ { @@ -4978,7 +5024,7 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-09-20T16:05:51+00:00" }, { "name": "symfony/runtime", @@ -5061,16 +5107,16 @@ }, { "name": "symfony/security-bundle", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "31957477b289220a47880ead3727bf5cc059fa08" + "reference": "0b07f3820370aba96e1633993c5c561364f88f30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/31957477b289220a47880ead3727bf5cc059fa08", - "reference": "31957477b289220a47880ead3727bf5cc059fa08", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/0b07f3820370aba96e1633993c5c561364f88f30", + "reference": "0b07f3820370aba96e1633993c5c561364f88f30", "shasum": "" }, "require": { @@ -5087,7 +5133,8 @@ "symfony/password-hasher": "^5.4|^6.0", "symfony/security-core": "^6.2", "symfony/security-csrf": "^5.4|^6.0", - "symfony/security-http": "^6.3" + "symfony/security-http": "^6.3.6", + "symfony/service-contracts": "^2.5|^3" }, "conflict": { "symfony/browser-kit": "<5.4", @@ -5151,7 +5198,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v6.3.4" + "source": "https://github.com/symfony/security-bundle/tree/v6.3.6" }, "funding": [ { @@ -5167,20 +5214,20 @@ "type": "tidelift" } ], - "time": "2023-08-25T08:46:23+00:00" + "time": "2023-10-12T16:11:32+00:00" }, { "name": "symfony/security-core", - "version": "v6.3.3", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "b86ce012cc9a62a15ed43af5037eebc3e6de4d7f" + "reference": "ec8f24dc1195f46483510892271d01a5202bba70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/b86ce012cc9a62a15ed43af5037eebc3e6de4d7f", - "reference": "b86ce012cc9a62a15ed43af5037eebc3e6de4d7f", + "url": "https://api.github.com/repos/symfony/security-core/zipball/ec8f24dc1195f46483510892271d01a5202bba70", + "reference": "ec8f24dc1195f46483510892271d01a5202bba70", "shasum": "" }, "require": { @@ -5236,7 +5283,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v6.3.3" + "source": "https://github.com/symfony/security-core/tree/v6.3.5" }, "funding": [ { @@ -5252,7 +5299,7 @@ "type": "tidelift" } ], - "time": "2023-07-31T07:08:24+00:00" + "time": "2023-09-10T17:47:23+00:00" }, { "name": "symfony/security-csrf", @@ -5324,16 +5371,16 @@ }, { "name": "symfony/security-http", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "0afb37c1120c1c46219bdbd1dd912fb4d48eaf7d" + "reference": "573ef96ab62d509ac953362fa61f9d1bd283f3a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/0afb37c1120c1c46219bdbd1dd912fb4d48eaf7d", - "reference": "0afb37c1120c1c46219bdbd1dd912fb4d48eaf7d", + "url": "https://api.github.com/repos/symfony/security-http/zipball/573ef96ab62d509ac953362fa61f9d1bd283f3a7", + "reference": "573ef96ab62d509ac953362fa61f9d1bd283f3a7", "shasum": "" }, "require": { @@ -5343,7 +5390,8 @@ "symfony/http-kernel": "^6.3", "symfony/polyfill-mbstring": "~1.0", "symfony/property-access": "^5.4|^6.0", - "symfony/security-core": "^6.3" + "symfony/security-core": "^6.3", + "symfony/service-contracts": "^2.5|^3" }, "conflict": { "symfony/clock": "<6.3", @@ -5391,7 +5439,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.3.4" + "source": "https://github.com/symfony/security-http/tree/v6.3.6" }, "funding": [ { @@ -5407,20 +5455,20 @@ "type": "tidelift" } ], - "time": "2023-08-25T19:43:09+00:00" + "time": "2023-10-13T10:26:24+00:00" }, { "name": "symfony/serializer", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "96d28a58d5a128bf77c54534b380eb7c92c8f846" + "reference": "8c5fb7144889839751ad9680cf4f183f60f8fbce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/96d28a58d5a128bf77c54534b380eb7c92c8f846", - "reference": "96d28a58d5a128bf77c54534b380eb7c92c8f846", + "url": "https://api.github.com/repos/symfony/serializer/zipball/8c5fb7144889839751ad9680cf4f183f60f8fbce", + "reference": "8c5fb7144889839751ad9680cf4f183f60f8fbce", "shasum": "" }, "require": { @@ -5485,7 +5533,7 @@ "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/v6.3.4" + "source": "https://github.com/symfony/serializer/tree/v6.3.6" }, "funding": [ { @@ -5501,7 +5549,7 @@ "type": "tidelift" } ], - "time": "2023-08-24T14:35:28+00:00" + "time": "2023-10-17T11:32:53+00:00" }, { "name": "symfony/service-contracts", @@ -5649,16 +5697,16 @@ }, { "name": "symfony/string", - "version": "v6.3.2", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "53d1a83225002635bca3482fcbf963001313fb68" + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/53d1a83225002635bca3482fcbf963001313fb68", - "reference": "53d1a83225002635bca3482fcbf963001313fb68", + "url": "https://api.github.com/repos/symfony/string/zipball/13d76d0fb049051ed12a04bef4f9de8715bea339", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339", "shasum": "" }, "require": { @@ -5715,7 +5763,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.2" + "source": "https://github.com/symfony/string/tree/v6.3.5" }, "funding": [ { @@ -5731,7 +5779,7 @@ "type": "tidelift" } ], - "time": "2023-07-05T08:41:27+00:00" + "time": "2023-09-18T10:38:32+00:00" }, { "name": "symfony/translation-contracts", @@ -5813,16 +5861,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.3.2", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "6f8435db76a2d79917489a19a82679276c1b4e32" + "reference": "18f2cbe1d46ad43c4d3bd45e5e6279172068e064" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/6f8435db76a2d79917489a19a82679276c1b4e32", - "reference": "6f8435db76a2d79917489a19a82679276c1b4e32", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/18f2cbe1d46ad43c4d3bd45e5e6279172068e064", + "reference": "18f2cbe1d46ad43c4d3bd45e5e6279172068e064", "shasum": "" }, "require": { @@ -5901,7 +5949,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.3.2" + "source": "https://github.com/symfony/twig-bridge/tree/v6.3.5" }, "funding": [ { @@ -5917,7 +5965,7 @@ "type": "tidelift" } ], - "time": "2023-07-20T16:42:33+00:00" + "time": "2023-09-12T06:57:20+00:00" }, { "name": "symfony/twig-bundle", @@ -6080,16 +6128,16 @@ }, { "name": "symfony/validator", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "0c8435154920b9bbe93bece675234c244cadf73b" + "reference": "254290aa13d591883eb36327cbe80689cee38ffb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/0c8435154920b9bbe93bece675234c244cadf73b", - "reference": "0c8435154920b9bbe93bece675234c244cadf73b", + "url": "https://api.github.com/repos/symfony/validator/zipball/254290aa13d591883eb36327cbe80689cee38ffb", + "reference": "254290aa13d591883eb36327cbe80689cee38ffb", "shasum": "" }, "require": { @@ -6156,7 +6204,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.3.4" + "source": "https://github.com/symfony/validator/tree/v6.3.6" }, "funding": [ { @@ -6172,20 +6220,20 @@ "type": "tidelift" } ], - "time": "2023-08-17T15:49:05+00:00" + "time": "2023-10-20T16:20:17+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "2027be14f8ae8eae999ceadebcda5b4909b81d45" + "reference": "999ede244507c32b8e43aebaa10e9fce20de7c97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2027be14f8ae8eae999ceadebcda5b4909b81d45", - "reference": "2027be14f8ae8eae999ceadebcda5b4909b81d45", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/999ede244507c32b8e43aebaa10e9fce20de7c97", + "reference": "999ede244507c32b8e43aebaa10e9fce20de7c97", "shasum": "" }, "require": { @@ -6240,7 +6288,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.3.4" + "source": "https://github.com/symfony/var-dumper/tree/v6.3.6" }, "funding": [ { @@ -6256,20 +6304,20 @@ "type": "tidelift" } ], - "time": "2023-08-24T14:51:05+00:00" + "time": "2023-10-12T18:45:56+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.3.4", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691" + "reference": "374d289c13cb989027274c86206ddc63b16a2441" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df1f8aac5751871b83d30bf3e2c355770f8f0691", - "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/374d289c13cb989027274c86206ddc63b16a2441", + "reference": "374d289c13cb989027274c86206ddc63b16a2441", "shasum": "" }, "require": { @@ -6314,7 +6362,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.3.4" + "source": "https://github.com/symfony/var-exporter/tree/v6.3.6" }, "funding": [ { @@ -6330,7 +6378,7 @@ "type": "tidelift" } ], - "time": "2023-08-16T18:14:47+00:00" + "time": "2023-10-13T09:16:49+00:00" }, { "name": "symfony/web-link", @@ -6853,16 +6901,16 @@ }, { "name": "webonyx/graphql-php", - "version": "v15.6.3", + "version": "v15.7.0", "source": { "type": "git", "url": "https://github.com/webonyx/graphql-php.git", - "reference": "3f045a4626d179ea6462e1a11744619860b55eb8" + "reference": "44ff70977ee020c0b24bfdfaf947be56943de505" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/3f045a4626d179ea6462e1a11744619860b55eb8", - "reference": "3f045a4626d179ea6462e1a11744619860b55eb8", + "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/44ff70977ee020c0b24bfdfaf947be56943de505", + "reference": "44ff70977ee020c0b24bfdfaf947be56943de505", "shasum": "" }, "require": { @@ -6875,11 +6923,12 @@ "amphp/http-server": "^2.1", "dms/phpunit-arraysubset-asserts": "dev-master", "ergebnis/composer-normalize": "^2.28", + "friendsofphp/php-cs-fixer": "3.30.0", "mll-lab/php-cs-fixer-config": "^5", "nyholm/psr7": "^1.5", "phpbench/phpbench": "^1.2", "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "1.10.32", + "phpstan/phpstan": "1.10.37", "phpstan/phpstan-phpunit": "1.3.14", "phpstan/phpstan-strict-rules": "1.5.1", "phpunit/phpunit": "^9.5 || ^10", @@ -6914,7 +6963,7 @@ ], "support": { "issues": "https://github.com/webonyx/graphql-php/issues", - "source": "https://github.com/webonyx/graphql-php/tree/v15.6.3" + "source": "https://github.com/webonyx/graphql-php/tree/v15.7.0" }, "funding": [ { @@ -6922,7 +6971,7 @@ "type": "open_collective" } ], - "time": "2023-09-01T08:13:33+00:00" + "time": "2023-10-04T09:10:34+00:00" }, { "name": "willdurand/negotiation", @@ -7148,6 +7197,157 @@ ], "time": "2021-03-30T17:13:30+00:00" }, + { + "name": "api-platform/schema-generator", + "version": "v5.2.2", + "source": { + "type": "git", + "url": "https://github.com/api-platform/schema-generator.git", + "reference": "1709653e7349c354588f9cb311060c6d059be340" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/schema-generator/zipball/1709653e7349c354588f9cb311060c6d059be340", + "reference": "1709653e7349c354588f9cb311060c6d059be340", + "shasum": "" + }, + "require": { + "cebe/php-openapi": "^1.6", + "doctrine/inflector": "^1.4.3 || ^2.0", + "ext-json": "*", + "friendsofphp/php-cs-fixer": "^2.15 || ^3.0", + "league/html-to-markdown": "^5.0", + "nette/php-generator": "^3.6 || ^4.0", + "nikic/php-parser": "^4.13", + "php": ">=7.4", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "sweetrdf/easyrdf": "^1.6", + "symfony/config": "^5.2 || ^6.0", + "symfony/console": "^5.2 || ^6.0", + "symfony/filesystem": "^5.2 || ^6.0", + "symfony/string": "^5.2 || ^6.0", + "symfony/yaml": "^5.2 || ^6.0", + "twig/twig": "^3.0" + }, + "require-dev": { + "api-platform/core": "^2.7 || ^3.0", + "doctrine/orm": "^2.7", + "myclabs/php-enum": "^1.7", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/phpstan": "^1.2.0", + "symfony/doctrine-bridge": "^5.2 || ^6.0", + "symfony/finder": "^5.2 || ^6.0", + "symfony/phpunit-bridge": "^5.2 || ^6.0", + "symfony/serializer": "^5.2 || ^6.0", + "symfony/validator": "^5.2 || ^6.0" + }, + "bin": [ + "bin/schema" + ], + "type": "library", + "autoload": { + "psr-4": { + "ApiPlatform\\SchemaGenerator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "dunglas@gmail.com" + } + ], + "description": "Various tools to generate a data model based on Schema.org vocables", + "homepage": "https://api-platform.com/docs/schema-generator/", + "keywords": [ + "RDF", + "doctrine", + "entity", + "enum", + "model", + "owl", + "schema.org", + "semantic", + "symfony" + ], + "support": { + "issues": "https://github.com/api-platform/schema-generator/issues", + "source": "https://github.com/api-platform/schema-generator/tree/v5.2.2" + }, + "time": "2023-07-19T21:17:31+00:00" + }, + { + "name": "cebe/php-openapi", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/cebe/php-openapi.git", + "reference": "020d72b8e3a9a60bc229953e93eda25c49f46f45" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cebe/php-openapi/zipball/020d72b8e3a9a60bc229953e93eda25c49f46f45", + "reference": "020d72b8e3a9a60bc229953e93eda25c49f46f45", + "shasum": "" + }, + "require": { + "ext-json": "*", + "justinrainbow/json-schema": "^5.2", + "php": ">=7.1.0", + "symfony/yaml": "^3.4 || ^4 || ^5 || ^6" + }, + "conflict": { + "symfony/yaml": "3.4.0 - 3.4.4 || 4.0.0 - 4.4.17 || 5.0.0 - 5.1.9 || 5.2.0" + }, + "require-dev": { + "apis-guru/openapi-directory": "1.0.0", + "cebe/indent": "*", + "mermade/openapi3-examples": "1.0.0", + "nexmo/api-specification": "1.0.0", + "oai/openapi-specification": "3.0.3", + "phpstan/phpstan": "^0.12.0", + "phpunit/phpunit": "^6.5 || ^7.5 || ^8.5 || ^9.4" + }, + "bin": [ + "bin/php-openapi" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "cebe\\openapi\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Carsten Brandt", + "email": "mail@cebe.cc", + "homepage": "https://cebe.cc/", + "role": "Creator" + } + ], + "description": "Read and write OpenAPI yaml/json files and make the content accessable in PHP objects.", + "homepage": "https://github.com/cebe/php-openapi#readme", + "keywords": [ + "openapi" + ], + "support": { + "issues": "https://github.com/cebe/php-openapi/issues", + "source": "https://github.com/cebe/php-openapi" + }, + "time": "2022-04-20T14:46:44+00:00" + }, { "name": "composer/package-versions-deprecated", "version": "1.11.99.5", @@ -7223,16 +7423,16 @@ }, { "name": "composer/pcre", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", "shasum": "" }, "require": { @@ -7274,7 +7474,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.0" + "source": "https://github.com/composer/pcre/tree/3.1.1" }, "funding": [ { @@ -7290,7 +7490,7 @@ "type": "tidelift" } ], - "time": "2022-11-17T09:50:14+00:00" + "time": "2023-10-11T07:11:09+00:00" }, { "name": "composer/semver", @@ -7877,18 +8077,111 @@ }, "time": "2022-03-02T22:36:06+00:00" }, + { + "name": "friendsofphp/php-cs-fixer", + "version": "v3.35.1", + "source": { + "type": "git", + "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", + "reference": "ec1ccc264994b6764882669973ca435cf05bab08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/ec1ccc264994b6764882669973ca435cf05bab08", + "reference": "ec1ccc264994b6764882669973ca435cf05bab08", + "shasum": "" + }, + "require": { + "composer/semver": "^3.3", + "composer/xdebug-handler": "^3.0.3", + "ext-json": "*", + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0", + "sebastian/diff": "^4.0 || ^5.0", + "symfony/console": "^5.4 || ^6.0", + "symfony/event-dispatcher": "^5.4 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0", + "symfony/finder": "^5.4 || ^6.0", + "symfony/options-resolver": "^5.4 || ^6.0", + "symfony/polyfill-mbstring": "^1.27", + "symfony/polyfill-php80": "^1.27", + "symfony/polyfill-php81": "^1.27", + "symfony/process": "^5.4 || ^6.0", + "symfony/stopwatch": "^5.4 || ^6.0" + }, + "require-dev": { + "facile-it/paraunit": "^1.3 || ^2.0", + "justinrainbow/json-schema": "^5.2", + "keradus/cli-executor": "^2.0", + "mikey179/vfsstream": "^1.6.11", + "php-coveralls/php-coveralls": "^2.5.3", + "php-cs-fixer/accessible-object": "^1.1", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", + "phpspec/prophecy": "^1.16", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "symfony/phpunit-bridge": "^6.2.3", + "symfony/yaml": "^5.4 || ^6.0" + }, + "suggest": { + "ext-dom": "For handling output formats in XML", + "ext-mbstring": "For handling non-UTF8 characters." + }, + "bin": [ + "php-cs-fixer" + ], + "type": "application", + "autoload": { + "psr-4": { + "PhpCsFixer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Dariusz Rumiński", + "email": "dariusz.ruminski@gmail.com" + } + ], + "description": "A tool to automatically fix PHP code style", + "keywords": [ + "Static code analysis", + "fixer", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.35.1" + }, + "funding": [ + { + "url": "https://github.com/keradus", + "type": "github" + } + ], + "time": "2023-10-12T13:47:26+00:00" + }, { "name": "justinrainbow/json-schema", - "version": "5.2.12", + "version": "v5.2.13", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" + "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793", + "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793", "shasum": "" }, "require": { @@ -7943,40 +8236,49 @@ ], "support": { "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" + "source": "https://github.com/justinrainbow/json-schema/tree/v5.2.13" }, - "time": "2022-04-13T08:02:27+00:00" + "time": "2023-09-26T02:20:38+00:00" }, { - "name": "masterminds/html5", - "version": "2.8.1", + "name": "league/html-to-markdown", + "version": "5.1.1", "source": { "type": "git", - "url": "https://github.com/Masterminds/html5-php.git", - "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" + "url": "https://github.com/thephpleague/html-to-markdown.git", + "reference": "0b4066eede55c48f38bcee4fb8f0aa85654390fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", - "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", + "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/0b4066eede55c48f38bcee4fb8f0aa85654390fd", + "reference": "0b4066eede55c48f38bcee4fb8f0aa85654390fd", "shasum": "" }, "require": { "ext-dom": "*", - "php": ">=5.3.0" + "ext-xml": "*", + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" + "mikehaertl/php-shellcommand": "^1.1.0", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^8.5 || ^9.2", + "scrutinizer/ocular": "^1.6", + "unleashedtech/php-coding-standard": "^2.7 || ^3.0", + "vimeo/psalm": "^4.22 || ^5.0" }, + "bin": [ + "bin/html-to-markdown" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev" + "dev-master": "5.2-dev" } }, "autoload": { "psr-4": { - "Masterminds\\": "src" + "League\\HTMLToMarkdown\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -7985,39 +8287,119 @@ ], "authors": [ { - "name": "Matt Butcher", - "email": "technosophos@gmail.com" - }, - { - "name": "Matt Farina", - "email": "matt@mattfarina.com" + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" }, { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" + "name": "Nick Cernis", + "email": "nick@cern.is", + "homepage": "http://modernnerd.net", + "role": "Original Author" } ], - "description": "An HTML5 parser and serializer.", - "homepage": "http://masterminds.github.io/html5-php", + "description": "An HTML-to-markdown conversion helper for PHP", + "homepage": "https://github.com/thephpleague/html-to-markdown", "keywords": [ - "HTML5", - "dom", "html", - "parser", - "querypath", - "serializer", - "xml" + "markdown" ], "support": { - "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + "issues": "https://github.com/thephpleague/html-to-markdown/issues", + "source": "https://github.com/thephpleague/html-to-markdown/tree/5.1.1" }, - "time": "2023-05-10T11:58:31+00:00" + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/html-to-markdown", + "type": "tidelift" + } + ], + "time": "2023-07-12T21:21:09+00:00" }, { - "name": "netresearch/jsonmapper", - "version": "v4.2.0", - "source": { + "name": "masterminds/html5", + "version": "2.8.1", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + }, + "time": "2023-05-10T11:58:31+00:00" + }, + { + "name": "netresearch/jsonmapper", + "version": "v4.2.0", + "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" @@ -8065,6 +8447,161 @@ }, "time": "2023-04-09T17:37:40+00:00" }, + { + "name": "nette/php-generator", + "version": "v4.1.1", + "source": { + "type": "git", + "url": "https://github.com/nette/php-generator.git", + "reference": "d915b7fa643cd0cf6ffe306c25ac5c3db24914a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/php-generator/zipball/d915b7fa643cd0cf6ffe306c25ac5c3db24914a4", + "reference": "d915b7fa643cd0cf6ffe306c25ac5c3db24914a4", + "shasum": "" + }, + "require": { + "nette/utils": "^3.2.9 || ^4.0", + "php": "8.0 - 8.3" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.4", + "nikic/php-parser": "^4.15", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.8" + }, + "suggest": { + "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.3 features.", + "homepage": "https://nette.org", + "keywords": [ + "code", + "nette", + "php", + "scaffolding" + ], + "support": { + "issues": "https://github.com/nette/php-generator/issues", + "source": "https://github.com/nette/php-generator/tree/v4.1.1" + }, + "time": "2023-10-17T08:36:10+00:00" + }, + { + "name": "nette/utils", + "version": "v4.0.2", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "cead6637226456b35e1175cc53797dd585d85545" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/cead6637226456b35e1175cc53797dd585d85545", + "reference": "cead6637226456b35e1175cc53797dd585d85545", + "shasum": "" + }, + "require": { + "php": ">=8.0 <8.4" + }, + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.5", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v4.0.2" + }, + "time": "2023-09-19T11:58:07+00:00" + }, { "name": "nikic/php-parser", "version": "v4.17.1", @@ -8342,6 +8879,59 @@ }, "time": "2023-08-12T11:01:26+00:00" }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, { "name": "sebastian/diff", "version": "4.0.5", @@ -8408,6 +8998,185 @@ ], "time": "2023-05-07T05:35:17+00:00" }, + { + "name": "sweetrdf/easyrdf", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/sweetrdf/easyrdf.git", + "reference": "92554d04aaec5635cbd82caf428434f824298a1b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sweetrdf/easyrdf/zipball/92554d04aaec5635cbd82caf428434f824298a1b", + "reference": "92554d04aaec5635cbd82caf428434f824298a1b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "ext-pcre": "*", + "ext-xmlreader": "*", + "lib-libxml": "*", + "php": "^8.0", + "sweetrdf/rdf-helpers": "^1.0" + }, + "replace": { + "easyrdf/easyrdf": "1.1.*" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.0", + "laminas/laminas-http": "^2", + "ml/json-ld": "^1.0", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5.0|^10.0.0", + "semsol/arc2": "^3", + "zendframework/zend-http": "^2" + }, + "type": "library", + "autoload": { + "psr-4": { + "EasyRdf\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nicholas Humfrey", + "email": "njh@aelius.com", + "homepage": "http://www.aelius.com/njh/", + "role": "Developer" + }, + { + "name": "Alexey Zakhlestin", + "email": "indeyets@gmail.com", + "homepage": "http://indeyets.ru/", + "role": "Developer" + }, + { + "name": "Konrad Abicht", + "email": "hi@inspirito.de", + "homepage": "http://inspirito.de/", + "role": "Maintainer, Developer" + } + ], + "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", + "keywords": [ + "Linked Data", + "RDF", + "Semantic Web", + "Turtle", + "rdfa", + "sparql" + ], + "support": { + "issues": "https://github.com/sweetrdf/easyrdf/issues", + "source": "https://github.com/sweetrdf/easyrdf/tree/1.11.0" + }, + "time": "2023-09-14T07:31:36+00:00" + }, + { + "name": "sweetrdf/rdf-helpers", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/sweetrdf/rdfHelpers.git", + "reference": "29db501d91ffe0056b8c3db1fe42d7cd13f9193f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sweetrdf/rdfHelpers/zipball/29db501d91ffe0056b8c3db1fe42d7cd13f9193f", + "reference": "29db501d91ffe0056b8c3db1fe42d7cd13f9193f", + "shasum": "" + }, + "require": { + "php": ">=8.0", + "sweetrdf/rdf-interface": "^1 | ^2.0.0-RC3", + "zozlak/rdf-constants": "^1.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "phpunit/php-code-coverage": "^9.2", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "rdfHelpers\\": "src/rdfHelpers" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mateusz Żółtak", + "email": "zozlak@zozlak.org", + "role": "Developer" + } + ], + "description": "Set of low level helpers for implementing rdfInterface", + "homepage": "https://github.com/sweetrdf/rdfHelpers", + "support": { + "issues": "https://github.com/sweetrdf/rdfHelpers/issues", + "source": "https://github.com/sweetrdf/rdfHelpers/tree/1.2.0" + }, + "time": "2023-08-31T12:13:56+00:00" + }, + { + "name": "sweetrdf/rdf-interface", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sweetrdf/rdfInterface.git", + "reference": "b0c930b7bd7a80e63f77510d0dcb261aead4f0a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sweetrdf/rdfInterface/zipball/b0c930b7bd7a80e63f77510d0dcb261aead4f0a3", + "reference": "b0c930b7bd7a80e63f77510d0dcb261aead4f0a3", + "shasum": "" + }, + "require": { + "php": ">=8.0", + "psr/http-message": "^1.0 || ^2.0", + "zozlak/rdf-constants": "*" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "rdfInterface\\": "src/rdfInterface" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mateusz Żółtak", + "email": "zozlak@zozlak.org", + "role": "Developer" + } + ], + "description": "A common RDF interface for PHP RDF libraries.", + "homepage": "https://github.com/sweetrdf/rdfInterface", + "support": { + "issues": "https://github.com/sweetrdf/rdfInterface/issues", + "source": "https://github.com/sweetrdf/rdfInterface/tree/1.0.1" + }, + "time": "2023-07-21T08:26:06+00:00" + }, { "name": "symfony/browser-kit", "version": "v6.3.2", @@ -8774,18 +9543,85 @@ ], "time": "2023-09-18T18:17:31+00:00" }, + { + "name": "symfony/options-resolver", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a10f19f5198d589d5c33333cffe98dc9820332dd", + "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "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/v6.3.0" + }, + "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": "2023-05-12T14:21:09+00:00" + }, { "name": "symfony/phpunit-bridge", - "version": "v6.3.2", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "e020e1efbd1b42cb670fcd7d19a25abbddba035d" + "reference": "c6f1df6a76c2c12bd14a0a5bf7c556dd935efe1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/e020e1efbd1b42cb670fcd7d19a25abbddba035d", - "reference": "e020e1efbd1b42cb670fcd7d19a25abbddba035d", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c6f1df6a76c2c12bd14a0a5bf7c556dd935efe1d", + "reference": "c6f1df6a76c2c12bd14a0a5bf7c556dd935efe1d", "shasum": "" }, "require": { @@ -8837,7 +9673,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.2" + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.6" }, "funding": [ { @@ -8853,7 +9689,7 @@ "type": "tidelift" } ], - "time": "2023-07-12T16:00:22+00:00" + "time": "2023-10-12T15:02:41+00:00" }, { "name": "symfony/process", @@ -8918,16 +9754,16 @@ }, { "name": "symfony/web-profiler-bundle", - "version": "v6.3.2", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "6101b5ab7857c373d237e121f9060c68b32e1373" + "reference": "249cb2486597d3ab810d8bcc8e4db5ad0fc3e3bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/6101b5ab7857c373d237e121f9060c68b32e1373", - "reference": "6101b5ab7857c373d237e121f9060c68b32e1373", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/249cb2486597d3ab810d8bcc8e4db5ad0fc3e3bd", + "reference": "249cb2486597d3ab810d8bcc8e4db5ad0fc3e3bd", "shasum": "" }, "require": { @@ -8979,7 +9815,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.3.2" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.3.6" }, "funding": [ { @@ -8995,7 +9831,7 @@ "type": "tidelift" } ], - "time": "2023-07-19T20:17:28+00:00" + "time": "2023-10-11T18:18:20+00:00" }, { "name": "vimeo/psalm", @@ -9331,16 +10167,16 @@ }, { "name": "zenstruck/foundry", - "version": "v1.35.0", + "version": "v1.36.0", "source": { "type": "git", "url": "https://github.com/zenstruck/foundry.git", - "reference": "4cb1fed923e8bf0ee6e977be74d3676d431291f9" + "reference": "1aefc394059a315ef8567de9745efd5ba6aacfd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zenstruck/foundry/zipball/4cb1fed923e8bf0ee6e977be74d3676d431291f9", - "reference": "4cb1fed923e8bf0ee6e977be74d3676d431291f9", + "url": "https://api.github.com/repos/zenstruck/foundry/zipball/1aefc394059a315ef8567de9745efd5ba6aacfd0", + "reference": "1aefc394059a315ef8567de9745efd5ba6aacfd0", "shasum": "" }, "require": { @@ -9348,8 +10184,8 @@ "fakerphp/faker": "^1.10", "php": ">=8.0", "symfony/deprecation-contracts": "^2.2|^3.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/string": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/string": "^5.4|^6.0|^7.0", "zenstruck/assert": "^1.0", "zenstruck/callback": "^1.1" }, @@ -9365,9 +10201,9 @@ "doctrine/mongodb-odm-bundle": "^4.4.0", "doctrine/orm": "^2.9", "matthiasnoback/symfony-dependency-injection-test": "^4.1", - "symfony/framework-bundle": "^5.4|^6.0", + "symfony/framework-bundle": "^5.4|^6.0|^7.0", "symfony/maker-bundle": "^1.49", - "symfony/phpunit-bridge": "^5.4|^6.0", + "symfony/phpunit-bridge": "^5.4|^6.0|^7.0", "symfony/translation-contracts": "^2.5|^3.0" }, "type": "library", @@ -9400,6 +10236,7 @@ "homepage": "https://github.com/zenstruck/foundry", "keywords": [ "Fixture", + "dev", "doctrine", "factory", "faker", @@ -9408,7 +10245,7 @@ ], "support": { "issues": "https://github.com/zenstruck/foundry/issues", - "source": "https://github.com/zenstruck/foundry/tree/v1.35.0" + "source": "https://github.com/zenstruck/foundry/tree/v1.36.0" }, "funding": [ { @@ -9416,22 +10253,57 @@ "type": "github" } ], - "time": "2023-08-10T14:39:33+00:00" + "time": "2023-10-13T18:44:57+00:00" + }, + { + "name": "zozlak/rdf-constants", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/zozlak/RdfConstants.git", + "reference": "a8de0b50d23b213a68784ec2cec22b4ad838012b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zozlak/RdfConstants/zipball/a8de0b50d23b213a68784ec2cec22b4ad838012b", + "reference": "a8de0b50d23b213a68784ec2cec22b4ad838012b", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "zozlak\\": "src/zozlak" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mateusz Żółtak", + "email": "zozlak@zozlak.org" + } + ], + "description": "A set of commonly used RDF and XSD constants", + "homepage": "https://github.com/zozlak/RdfConstants", + "support": { + "issues": "https://github.com/zozlak/RdfConstants/issues", + "source": "https://github.com/zozlak/RdfConstants/tree/1.2.1" + }, + "time": "2022-08-05T12:50:50+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "api-platform/core": 10 - }, - "prefer-stable": true, + "stability-flags": [], + "prefer-stable": false, "prefer-lowest": false, "platform": { "php": ">=8.2", "ext-ctype": "*", - "ext-iconv": "*", - "ext-xml": "*" + "ext-iconv": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/api/config/packages/doctrine.yaml b/api/config/packages/doctrine.yaml index ec0f77eee..559641f79 100644 --- a/api/config/packages/doctrine.yaml +++ b/api/config/packages/doctrine.yaml @@ -16,6 +16,7 @@ doctrine: auto_mapping: true mappings: App: + type: attribute is_bundle: false dir: '%kernel.project_dir%/src/Entity' prefix: 'App\Entity' diff --git a/api/config/packages/validator.yaml b/api/config/packages/validator.yaml index 5eb5dc92f..276c8da03 100644 --- a/api/config/packages/validator.yaml +++ b/api/config/packages/validator.yaml @@ -6,3 +6,8 @@ framework: # For instance, basic validation constraints will be inferred from Doctrine's metadata. auto_mapping: # App\Entity\: [] + +when@test: + framework: + validation: + not_compromised_password: false diff --git a/api/docker/caddy/Caddyfile b/api/docker/caddy/Caddyfile deleted file mode 100644 index 995d82518..000000000 --- a/api/docker/caddy/Caddyfile +++ /dev/null @@ -1,55 +0,0 @@ -{ - {$CADDY_GLOBAL_OPTIONS} -} - -{$SERVER_NAME} - -log - -# Matches requests for OIDC routes -@oidc expression path('/oidc/*') - -# Matches requests for HTML documents, for static files and for Next.js files, -# except for known API paths and paths with extensions handled by API Platform -@pwa expression `( - header({'Accept': '*text/html*'}) - && !path( - '/docs*', '/graphql*', '/bundles*', '/contexts*', '/_profiler*', '/_wdt*', - '*.json*', '*.html', '*.csv', '*.yml', '*.yaml', '*.xml' - ) - ) - || path('/favicon.ico', '/manifest.json', '/robots.txt', '/_next*', '/__nextjs*', '/sitemap*', '/api/auth/*')` - -route { - root * /srv/app/public - mercure { - # Transport to use (default to Bolt) - transport_url {$MERCURE_TRANSPORT_URL:bolt:///data/mercure.db} - # Publisher JWT key - publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG} - # Subscriber JWT key - subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG} - # Allow anonymous subscribers (double-check that it's what you want) - anonymous - # Enable the subscription API (double-check that it's what you want) - subscriptions - # Extra directives - {$MERCURE_EXTRA_DIRECTIVES} - } - vulcain - - # Add links to the API docs and to the Mercure Hub if not set explicitly (e.g. the PWA) - header ?Link `; rel="http://www.w3.org/ns/hydra/core#apiDocumentation", ; rel="mercure"` - # Disable Topics tracking if not enabled explicitly: https://github.com/jkarlin/topics - header ?Permissions-Policy "browsing-topics=()" - - reverse_proxy @oidc http://{$OIDC_UPSTREAM} - - # Comment the following line if you don't want Next.js to catch requests for HTML documents. - # In this case, they will be handled by the PHP app. - reverse_proxy @pwa http://{$PWA_UPSTREAM} - - php_fastcgi unix//var/run/php/php-fpm.sock - encode zstd gzip - file_server -} diff --git a/api/docker/php/conf.d/app.prod.ini b/api/docker/php/conf.d/app.prod.ini deleted file mode 100644 index 993d481ea..000000000 --- a/api/docker/php/conf.d/app.prod.ini +++ /dev/null @@ -1,2 +0,0 @@ -opcache.preload_user = www-data -opcache.preload = /srv/app/config/preload.php diff --git a/api/docker/php/docker-healthcheck.sh b/api/docker/php/docker-healthcheck.sh deleted file mode 100644 index f322de5b4..000000000 --- a/api/docker/php/docker-healthcheck.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -set -e - -if env -i REQUEST_METHOD=GET SCRIPT_NAME=/ping SCRIPT_FILENAME=/ping cgi-fcgi -bind -connect /var/run/php/php-fpm.sock; then - exit 0 -fi - -exit 1 diff --git a/api/docker/php/php-fpm.d/zz-docker.conf b/api/docker/php/php-fpm.d/zz-docker.conf deleted file mode 100644 index c01769e24..000000000 --- a/api/docker/php/php-fpm.d/zz-docker.conf +++ /dev/null @@ -1,9 +0,0 @@ -[global] -daemonize = no -process_control_timeout = 20 - -[www] -listen = /var/run/php/php-fpm.sock -listen.mode = 0666 -ping.path = /ping -access.suppress_path[] = /ping diff --git a/api/frankenphp/Caddyfile b/api/frankenphp/Caddyfile new file mode 100644 index 000000000..888606bbf --- /dev/null +++ b/api/frankenphp/Caddyfile @@ -0,0 +1,77 @@ +{ + {$CADDY_GLOBAL_OPTIONS} + + frankenphp { + {$FRANKENPHP_CONFIG} + } + + # https://caddyserver.com/docs/caddyfile/directives#sorting-algorithm + order mercure after encode + order vulcain after reverse_proxy + order php_server before file_server +} + +{$CADDY_EXTRA_CONFIG} + +{$SERVER_NAME:localhost} { + log { + # Redact the authorization query parameter that can be set by Mercure + format filter { + wrap console + fields { + uri query { + replace authorization REDACTED + } + } + } + } + + root * /app/public + encode zstd gzip + + mercure { + # Transport to use (default to Bolt) + transport_url {$MERCURE_TRANSPORT_URL:bolt:///data/mercure.db} + # Publisher JWT key + publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG} + # Subscriber JWT key + subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG} + # Allow anonymous subscribers (double-check that it's what you want) + anonymous + # Enable the subscription API (double-check that it's what you want) + subscriptions + # Extra directives + {$MERCURE_EXTRA_DIRECTIVES} + } + + vulcain + + # Add links to the API docs and to the Mercure Hub if not set explicitly (e.g. the PWA) + header ?Link `; rel="http://www.w3.org/ns/hydra/core#apiDocumentation", ; rel="mercure"` + # Disable Topics tracking if not enabled explicitly: https://github.com/jkarlin/topics + header ?Permissions-Policy "browsing-topics=()" + + # Matches requests for OIDC routes + @oidc expression path('/oidc/*') + + # Comment the following line if you don't want to manage Keycloak locally + # In this case, you'll need an external OIDC server + reverse_proxy @oidc http://{$OIDC_UPSTREAM} + + # Matches requests for HTML documents, for static files and for Next.js files, + # except for known API paths and paths with extensions handled by API Platform + @pwa expression `( + header({'Accept': '*text/html*'}) + && !path( + '/docs*', '/graphql*', '/bundles*', '/contexts*', '/_profiler*', '/_wdt*', + '*.json*', '*.html', '*.csv', '*.yml', '*.yaml', '*.xml' + ) + ) + || path('/favicon.ico', '/manifest.json', '/robots.txt', '/_next*', '/sitemap*', '/api/auth/*')` + + # Comment the following line if you don't want Next.js to catch requests for HTML documents. + # In this case, they will be handled by the PHP app. + reverse_proxy @pwa http://{$PWA_UPSTREAM} + + php_server +} diff --git a/api/docker/php/conf.d/app.dev.ini b/api/frankenphp/conf.d/app.dev.ini similarity index 87% rename from api/docker/php/conf.d/app.dev.ini rename to api/frankenphp/conf.d/app.dev.ini index c1b638142..52bcb297d 100644 --- a/api/docker/php/conf.d/app.dev.ini +++ b/api/frankenphp/conf.d/app.dev.ini @@ -2,4 +2,4 @@ ; See https://github.com/docker/for-linux/issues/264 ; The `client_host` below may optionally be replaced with `discover_client_host=yes` ; Add `start_with_request=yes` to start debug session on each request -xdebug.client_host = 'host.docker.internal' +xdebug.client_host = xdebug://gateway diff --git a/api/docker/php/conf.d/app.ini b/api/frankenphp/conf.d/app.ini similarity index 93% rename from api/docker/php/conf.d/app.ini rename to api/frankenphp/conf.d/app.ini index 79a17dd81..501fa84f8 100644 --- a/api/docker/php/conf.d/app.ini +++ b/api/frankenphp/conf.d/app.ini @@ -1,3 +1,4 @@ +variables_order = EGPCS expose_php = 0 date.timezone = UTC apc.enable_cli = 1 diff --git a/api/frankenphp/conf.d/app.prod.ini b/api/frankenphp/conf.d/app.prod.ini new file mode 100644 index 000000000..3bcaa71e4 --- /dev/null +++ b/api/frankenphp/conf.d/app.prod.ini @@ -0,0 +1,2 @@ +opcache.preload_user = root +opcache.preload = /app/config/preload.php diff --git a/api/docker/php/docker-entrypoint.sh b/api/frankenphp/docker-entrypoint.sh similarity index 82% rename from api/docker/php/docker-entrypoint.sh rename to api/frankenphp/docker-entrypoint.sh index 4ece74a93..3d4dfd9d9 100755 --- a/api/docker/php/docker-entrypoint.sh +++ b/api/frankenphp/docker-entrypoint.sh @@ -1,20 +1,12 @@ #!/bin/sh set -e -# first arg is `-f` or `--some-option` -if [ "${1#-}" != "$1" ]; then - set -- php-fpm "$@" -fi - -if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then - setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX var - setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX var - - if [ "$APP_ENV" != 'prod' ]; then +if [ "$1" = 'frankenphp' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then + if [ ! -d 'vendor/' ]; then composer install --prefer-dist --no-progress --no-interaction fi - if grep -q DATABASE_URL= .env; then + if grep -q ^DATABASE_URL= .env; then echo "Waiting for database to be ready..." ATTEMPTS_LEFT_TO_REACH_DATABASE=60 until [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ] || DATABASE_ERROR=$(php bin/console dbal:run-sql -q "SELECT 1" 2>&1); do @@ -40,6 +32,9 @@ if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then php bin/console doctrine:migrations:migrate --no-interaction fi fi + + setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX var + setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX var fi exec docker-php-entrypoint "$@" diff --git a/api/frankenphp/worker.Caddyfile b/api/frankenphp/worker.Caddyfile new file mode 100644 index 000000000..d384ae4cd --- /dev/null +++ b/api/frankenphp/worker.Caddyfile @@ -0,0 +1,4 @@ +worker { + file ./public/index.php + env APP_RUNTIME Runtime\FrankenPhpSymfony\Runtime +} diff --git a/api/phpunit.xml.dist b/api/phpunit.xml.dist index e8b2cf514..4ffb82777 100644 --- a/api/phpunit.xml.dist +++ b/api/phpunit.xml.dist @@ -2,7 +2,7 @@ - - tests - tests/Api/ReviewsTest.php @@ -39,6 +36,5 @@ - diff --git a/api/src/Kernel.php b/api/src/Kernel.php index ad0fb4800..779cd1f2b 100644 --- a/api/src/Kernel.php +++ b/api/src/Kernel.php @@ -1,7 +1,5 @@