From 746ca35b6959639b302e8c6ab4cd1cc6ce61134e Mon Sep 17 00:00:00 2001 From: Gauthier DUPONT Date: Tue, 8 Jul 2025 11:33:13 +0200 Subject: [PATCH] chore(php) #57 : bump PHP version to 8.4 --- .gitignore | 4 + composer.json | 3 +- composer.lock | 254 ++++++++++++++------ misc/compose/hydra-sql/000-default.conf | 2 +- misc/compose/hydra-sql/Dockerfile | 12 +- misc/compose/hydra-sql/supervisor.ini | 2 +- misc/compose/hydra-sql/www.conf | 2 +- misc/images/hydra-sql-base/Dockerfile | 23 +- misc/images/hydra-sql-standalone/Dockerfile | 23 +- phpstan.dist.neon | 8 + rector.php | 15 ++ src/Hydra/Client.php | 6 +- symfony.lock | 21 ++ 13 files changed, 271 insertions(+), 104 deletions(-) create mode 100644 phpstan.dist.neon create mode 100644 rector.php diff --git a/.gitignore b/.gitignore index a8c92ec..2ff7818 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,7 @@ composer.phar npm-debug.log yarn-error.log ###< symfony/webpack-encore-bundle ### + +###> phpstan/phpstan ### +phpstan.neon +###< phpstan/phpstan ### diff --git a/composer.json b/composer.json index 107e546..259031e 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "minimum-stability": "stable", "prefer-stable": true, "require": { - "php": ">=7.2.5", + "php": "^8.4", "ext-ctype": "*", "ext-iconv": "*", "doctrine/annotations": "^1.13", @@ -80,6 +80,7 @@ } }, "require-dev": { + "rector/rector": "^2.1", "symfony/debug-bundle": "5.4.*" } } diff --git a/composer.lock b/composer.lock index ba4271c..6fd64e6 100644 --- a/composer.lock +++ b/composer.lock @@ -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": "203398b3a4f3ff689ff3341c02460f23", + "content-hash": "647d67f62039f006d5d0115d9874991e", "packages": [ { "name": "clue/stream-filter", @@ -974,16 +974,16 @@ }, { "name": "predis/predis", - "version": "v2.3.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "bac46bfdb78cd6e9c7926c697012aae740cb9ec9" + "reference": "f49e13ee3a2a825631562aa0223ac922ec5d058b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/bac46bfdb78cd6e9c7926c697012aae740cb9ec9", - "reference": "bac46bfdb78cd6e9c7926c697012aae740cb9ec9", + "url": "https://api.github.com/repos/predis/predis/zipball/f49e13ee3a2a825631562aa0223ac922ec5d058b", + "reference": "f49e13ee3a2a825631562aa0223ac922ec5d058b", "shasum": "" }, "require": { @@ -992,6 +992,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3.3", "phpstan/phpstan": "^1.9", + "phpunit/phpcov": "^6.0 || ^8.0", "phpunit/phpunit": "^8.0 || ^9.4" }, "suggest": { @@ -1014,7 +1015,7 @@ "role": "Maintainer" } ], - "description": "A flexible and feature-complete Redis client for PHP.", + "description": "A flexible and feature-complete Redis/Valkey client for PHP.", "homepage": "http://github.com/predis/predis", "keywords": [ "nosql", @@ -1023,7 +1024,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v2.3.0" + "source": "https://github.com/predis/predis/tree/v2.4.0" }, "funding": [ { @@ -1031,7 +1032,7 @@ "type": "github" } ], - "time": "2024-11-21T20:00:02+00:00" + "time": "2025-04-30T15:16:02+00:00" }, { "name": "psr/cache", @@ -2250,16 +2251,16 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { @@ -2272,7 +2273,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -2297,7 +2298,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" }, "funding": [ { @@ -2313,7 +2314,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/dotenv", @@ -2544,16 +2545,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" + "reference": "59eb412e93815df44f05f342958efa9f46b1e586" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", - "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586", "shasum": "" }, "require": { @@ -2567,7 +2568,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -2600,7 +2601,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" }, "funding": [ { @@ -2616,7 +2617,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/expression-language", @@ -2813,16 +2814,16 @@ }, { "name": "symfony/flex", - "version": "v2.5.0", + "version": "v2.8.1", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "8ce1acd9842abe0e9b4c4a0bd3f259859516c018" + "reference": "423c36e369361003dc31ef11c5f15fb589e52c01" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/8ce1acd9842abe0e9b4c4a0bd3f259859516c018", - "reference": "8ce1acd9842abe0e9b4c4a0bd3f259859516c018", + "url": "https://api.github.com/repos/symfony/flex/zipball/423c36e369361003dc31ef11c5f15fb589e52c01", + "reference": "423c36e369361003dc31ef11c5f15fb589e52c01", "shasum": "" }, "require": { @@ -2861,7 +2862,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.5.0" + "source": "https://github.com/symfony/flex/tree/v2.8.1" }, "funding": [ { @@ -2877,7 +2878,7 @@ "type": "tidelift" } ], - "time": "2025-03-03T07:50:46+00:00" + "time": "2025-07-05T07:45:19+00:00" }, { "name": "symfony/form", @@ -3714,7 +3715,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -3772,7 +3773,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" }, "funding": [ { @@ -3792,16 +3793,16 @@ }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78" + "reference": "763d2a91fea5681509ca01acbc1c5e450d127811" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78", - "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/763d2a91fea5681509ca01acbc1c5e450d127811", + "reference": "763d2a91fea5681509ca01acbc1c5e450d127811", "shasum": "" }, "require": { @@ -3856,7 +3857,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.32.0" }, "funding": [ { @@ -3872,11 +3873,11 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-21T18:38:29+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -3937,7 +3938,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" }, "funding": [ { @@ -3957,19 +3958,20 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { + "ext-iconv": "*", "php": ">=7.2" }, "provide": { @@ -4017,7 +4019,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" }, "funding": [ { @@ -4033,11 +4035,11 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -4093,7 +4095,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.32.0" }, "funding": [ { @@ -4113,16 +4115,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "shasum": "" }, "require": { @@ -4173,7 +4175,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0" }, "funding": [ { @@ -4189,11 +4191,11 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-01-02T08:10:11+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -4249,7 +4251,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.32.0" }, "funding": [ { @@ -5951,16 +5953,16 @@ }, { "name": "symfony/var-exporter", - "version": "v6.4.20", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2" + "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/998df255e9e6a15a36ae35e9c6cd818c17cf92a2", - "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f28cf841f5654955c9f88ceaf4b9dc29571988a9", + "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9", "shasum": "" }, "require": { @@ -6008,7 +6010,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.20" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.22" }, "funding": [ { @@ -6024,7 +6026,7 @@ "type": "tidelift" } ], - "time": "2025-03-13T09:55:08+00:00" + "time": "2025-05-14T13:00:13+00:00" }, { "name": "symfony/web-profiler-bundle", @@ -6256,16 +6258,16 @@ }, { "name": "twig/twig", - "version": "v3.20.0", + "version": "v3.21.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "3468920399451a384bef53cf7996965f7cd40183" + "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/3468920399451a384bef53cf7996965f7cd40183", - "reference": "3468920399451a384bef53cf7996965f7cd40183", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/285123877d4dd97dd7c11842ac5fb7e86e60d81d", + "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d", "shasum": "" }, "require": { @@ -6319,7 +6321,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.20.0" + "source": "https://github.com/twigphp/Twig/tree/v3.21.1" }, "funding": [ { @@ -6331,10 +6333,128 @@ "type": "tidelift" } ], - "time": "2025-02-13T08:34:43+00:00" + "time": "2025-05-03T07:21:55+00:00" } ], "packages-dev": [ + { + "name": "phpstan/phpstan", + "version": "2.1.17", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "89b5ef665716fa2a52ecd2633f21007a6a349053" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/89b5ef665716fa2a52ecd2633f21007a6a349053", + "reference": "89b5ef665716fa2a52ecd2633f21007a6a349053", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + } + ], + "time": "2025-05-21T20:55:28+00:00" + }, + { + "name": "rector/rector", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/rectorphp/rector.git", + "reference": "d513dea45a94394b660e15c155d1fa27826f8e30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/d513dea45a94394b660e15c155d1fa27826f8e30", + "reference": "d513dea45a94394b660e15c155d1fa27826f8e30", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "phpstan/phpstan": "^2.1.17" + }, + "conflict": { + "rector/rector-doctrine": "*", + "rector/rector-downgrade-php": "*", + "rector/rector-phpunit": "*", + "rector/rector-symfony": "*" + }, + "suggest": { + "ext-dom": "To manipulate phpunit.xml via the custom-rule command" + }, + "bin": [ + "bin/rector" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Instant Upgrade and Automated Refactoring of any PHP code", + "homepage": "https://getrector.com/", + "keywords": [ + "automation", + "dev", + "migration", + "refactoring" + ], + "support": { + "issues": "https://github.com/rectorphp/rector/issues", + "source": "https://github.com/rectorphp/rector/tree/2.1.0" + }, + "funding": [ + { + "url": "https://github.com/tomasvotruba", + "type": "github" + } + ], + "time": "2025-06-24T20:26:57+00:00" + }, { "name": "symfony/debug-bundle", "version": "v5.4.45", @@ -6421,7 +6541,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=7.2.5", + "php": "^8.4", "ext-ctype": "*", "ext-iconv": "*" }, diff --git a/misc/compose/hydra-sql/000-default.conf b/misc/compose/hydra-sql/000-default.conf index fab6d95..caa6850 100644 --- a/misc/compose/hydra-sql/000-default.conf +++ b/misc/compose/hydra-sql/000-default.conf @@ -8,7 +8,7 @@ # Using SetHandler avoids issues with using ProxyPassMatch in combination # with mod_rewrite or mod_autoindex - SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://127.0.0.1:9000" + SetHandler "proxy:unix:/run/php/php8.4-fpm.sock|fcgi://127.0.0.1:9000" # for Unix sockets, Apache 2.4.10 or higher # SetHandler proxy:unix:/path/to/fpm.sock|fcgi://dummy diff --git a/misc/compose/hydra-sql/Dockerfile b/misc/compose/hydra-sql/Dockerfile index b427365..5e33116 100644 --- a/misc/compose/hydra-sql/Dockerfile +++ b/misc/compose/hydra-sql/Dockerfile @@ -7,7 +7,7 @@ ARG https_proxy= ENV WAITFORIT_VERSION="v2.4.1" -ARG PHP_VERSION="8.1" +ARG PHP_VERSION="8.4" ENV PHP_VERSION $PHP_VERSION RUN export DEBIAN_FRONTEND=noninteractive && \ @@ -68,14 +68,14 @@ RUN chmod +x /var/www/install-composer.sh &&\ # On active les mods d'apache nécessaires RUN a2enmod rewrite RUN a2enmod proxy_fcgi setenvif -RUN a2enconf php8.1-fpm +RUN a2enconf php8.4-fpm RUN a2enmod proxy RUN a2enmod expires RUN a2enmod headers # On injecte les bonnes configs apache et php-fpm COPY 000-default.conf /etc/apache2/sites-available/000-default.conf -COPY www.conf /etc/php/8.1/fpm/pool.d/www.conf +COPY www.conf /etc/php/8.4/fpm/pool.d/www.conf EXPOSE 5000 EXPOSE 80 @@ -83,8 +83,8 @@ EXPOSE 80 WORKDIR /var/www # On démarre php-fpm une fois pour créer les sockets -RUN service php8.1-fpm start -RUN service php8.1-fpm stop +RUN service php8.4-fpm start +RUN service php8.4-fpm stop COPY docker-entrypoint.sh /docker-entrypoint.sh @@ -99,7 +99,7 @@ RUN sed -i '/imklog/s/^/#/' /etc/rsyslog.conf COPY rsyslog.conf /etc/rsyslog.d/var/www.conf COPY supervisor.ini /etc/supervisor/supervisor.ini -COPY php.ini /etc/php/8.1/fpm/php.ini +COPY php.ini /etc/php/8.4/fpm/php.ini VOLUME /container-lifecycle diff --git a/misc/compose/hydra-sql/supervisor.ini b/misc/compose/hydra-sql/supervisor.ini index 0da959b..1049524 100644 --- a/misc/compose/hydra-sql/supervisor.ini +++ b/misc/compose/hydra-sql/supervisor.ini @@ -26,7 +26,7 @@ stderr_logfile_maxbytes=0 [program:php-fpm] environment=HOSTNAME="%(ENV_HOSTNAME)s" -command = /usr/sbin/php-fpm8.1 -F +command = /usr/sbin/php-fpm8.4 -F autostart = true autorestart = true directory = /var/www diff --git a/misc/compose/hydra-sql/www.conf b/misc/compose/hydra-sql/www.conf index c496690..6f70a60 100644 --- a/misc/compose/hydra-sql/www.conf +++ b/misc/compose/hydra-sql/www.conf @@ -6,7 +6,7 @@ error_log=/dev/stderr user = www-data group = www-data -listen = /run/php/php8.1-fpm.sock +listen = /run/php/php8.4-fpm.sock listen.owner = www-data listen.group = www-data diff --git a/misc/images/hydra-sql-base/Dockerfile b/misc/images/hydra-sql-base/Dockerfile index 3ef446a..dabca02 100644 --- a/misc/images/hydra-sql-base/Dockerfile +++ b/misc/images/hydra-sql-base/Dockerfile @@ -1,24 +1,23 @@ ARG NODE_OPTIONS="--openssl-legacy-provider" \ - PHP_PKG_VERSION="8.1.22-r0" \ + PHP_PKG_VERSION="8.4.5-r0" \ ENCORE_MODE="production" \ APP_ENV="prod" \ BASE_PATH="" \ APP_LOCALES="fr,en" \ ADDITIONAL_PACKAGES=" \ - php81-gd=${PHP_PKG_VERSION} \ - php81-xsl=${PHP_PKG_VERSION} \ - php81-pdo=${PHP_PKG_VERSION} \ - php81-pgsql=${PHP_PKG_VERSION} \ - php81-pdo_pgsql=${PHP_PKG_VERSION} \ - php81-soap=${PHP_PKG_VERSION} \ - php81-ldap=${PHP_PKG_VERSION} \ - php81-pdo_mysql=${PHP_PKG_VERSION} \ - php81-bcmath=${PHP_PKG_VERSION} \ - php81-pecl-xdebug" \ + php84-gd=${PHP_PKG_VERSION} \ + php84-xsl=${PHP_PKG_VERSION} \ + php84-pgsql=${PHP_PKG_VERSION} \ + php84-pdo_pgsql=${PHP_PKG_VERSION} \ + php84-soap=${PHP_PKG_VERSION} \ + php84-ldap=${PHP_PKG_VERSION} \ + php84-pdo_mysql=${PHP_PKG_VERSION} \ + php84-bcmath=${PHP_PKG_VERSION} \ + php84-xdebug" \ ADDITIONAL_ENV=" \ ENCORE_MODE=${ENCORE_MODE} \ APP_ENV=${APP_ENV} \ BASE_PATH=${BASE_PATH} \ APP_LOCALES=${APP_LOCALES}" -FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.1-base-2025.6.12-stable.1038.48ea3b9 +FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.4-base-2025.6.12-stable.1038.48ea3b9 diff --git a/misc/images/hydra-sql-standalone/Dockerfile b/misc/images/hydra-sql-standalone/Dockerfile index 97a0ad8..9170363 100644 --- a/misc/images/hydra-sql-standalone/Dockerfile +++ b/misc/images/hydra-sql-standalone/Dockerfile @@ -1,25 +1,24 @@ ARG NODE_OPTIONS="--openssl-legacy-provider" \ - PHP_PKG_VERSION="8.1.22-r0" \ + PHP_PKG_VERSION="8.4.5-r0" \ ENCORE_MODE="production" \ APP_ENV="prod" \ BASE_PATH="" \ APP_LOCALES="fr,en" \ ADDITIONAL_PACKAGES=" \ - php81-gd=${PHP_PKG_VERSION} \ - php81-xsl=${PHP_PKG_VERSION} \ - php81-pdo=${PHP_PKG_VERSION} \ - php81-pgsql=${PHP_PKG_VERSION} \ - php81-pdo_pgsql=${PHP_PKG_VERSION} \ - php81-soap=${PHP_PKG_VERSION} \ - php81-ldap=${PHP_PKG_VERSION} \ - php81-pdo_mysql=${PHP_PKG_VERSION} \ - php81-bcmath=${PHP_PKG_VERSION} \ - php81-pecl-xdebug" \ + php84-gd=${PHP_PKG_VERSION} \ + php84-xsl=${PHP_PKG_VERSION} \ + php84-pgsql=${PHP_PKG_VERSION} \ + php84-pdo_pgsql=${PHP_PKG_VERSION} \ + php84-soap=${PHP_PKG_VERSION} \ + php84-ldap=${PHP_PKG_VERSION} \ + php84-pdo_mysql=${PHP_PKG_VERSION} \ + php84-bcmath=${PHP_PKG_VERSION} \ + php84-xdebug" \ ADDITIONAL_ENV=" \ ENCORE_MODE=${ENCORE_MODE} \ APP_ENV=${APP_ENV} \ BASE_PATH=${BASE_PATH} \ APP_LOCALES=${APP_LOCALES}" -FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.1-standalone-2025.6.12-stable.1038.48ea3b9 +FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.4-standalone-2025.6.12-stable.1038.48ea3b9 USER www-data diff --git a/phpstan.dist.neon b/phpstan.dist.neon new file mode 100644 index 0000000..e0de575 --- /dev/null +++ b/phpstan.dist.neon @@ -0,0 +1,8 @@ +parameters: + level: 6 + paths: + - bin/ + - config/ + - public/ + - src/ + - tests/ diff --git a/rector.php b/rector.php new file mode 100644 index 0000000..5a92992 --- /dev/null +++ b/rector.php @@ -0,0 +1,15 @@ +paths([__DIR__ . '/src']); + + // Upgrade to PHP 8.4 syntax + $rectorConfig->sets([ + LevelSetList::UP_TO_PHP_84, + ]); +}; \ No newline at end of file diff --git a/src/Hydra/Client.php b/src/Hydra/Client.php index 6da2e3c..8e00029 100644 --- a/src/Hydra/Client.php +++ b/src/Hydra/Client.php @@ -8,8 +8,8 @@ use Symfony\Contracts\HttpClient\ResponseInterface; class Client { - private const MAX_RETRY = 3; - private const SLEEP_TIME = [ + private const int MAX_RETRY = 3; + private const array SLEEP_TIME = [ 5, 500, 5000, @@ -78,7 +78,7 @@ class Client $status = $response->getStatusCode(); if (503 === $status) { ++$attempt; - usleep(1000 * self::SLEEP_TIME[$attempt] + rand(1, 5) * 1000); + usleep(1000 * self::SLEEP_TIME[$attempt] + random_int(1, 5) * 1000); continue; } switch ($status) { diff --git a/symfony.lock b/symfony.lock index 7447713..1d7e019 100644 --- a/symfony.lock +++ b/symfony.lock @@ -11,6 +11,15 @@ "config/routes/annotations.yaml" ] }, + "doctrine/deprecations": { + "version": "1.1", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "1.0", + "ref": "87424683adc81d7dc305eefec1fced883084aab9" + } + }, "php-http/discovery": { "version": "1.19", "recipe": { @@ -23,6 +32,18 @@ "config/packages/http_discovery.yaml" ] }, + "phpstan/phpstan": { + "version": "2.1", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "main", + "version": "1.0", + "ref": "5e490cc197fb6bb1ae22e5abbc531ddc633b6767" + }, + "files": [ + "phpstan.dist.neon" + ] + }, "sentry/sentry-symfony": { "version": "4.14", "recipe": {