Skip to content

Commit df4804a

Browse files
Bump Symfony 8 to PHP >= 8.4
1 parent 80580f1 commit df4804a

File tree

189 files changed

+1028
-1254
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

189 files changed

+1028
-1254
lines changed

.github/build-packages.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
$mergeBase = trim(shell_exec(sprintf('git merge-base "%s" HEAD', array_shift($dirs))));
1616
$version = array_shift($dirs);
1717

18+
if ('8.0' === $version) {
19+
$version = '7.4'; // to be removed once deps allow ^8.0
20+
}
21+
1822
$packages = [];
1923
$flags = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
2024
$preferredInstall = json_decode(file_get_contents(__DIR__.'/composer-config.json'), true)['config']['preferred-install'];

.github/workflows/integration-tests.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323

2424
strategy:
2525
matrix:
26-
php: ['8.2']
26+
php: ['8.4']
2727
fail-fast: false
2828

2929
services:
@@ -228,6 +228,7 @@ jobs:
228228
COMPOSER_HOME="$(composer config home)"
229229
([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
230230
export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
231+
export COMPOSER_ROOT_VERSION=7.4.x-dev # to be removed once deps allow ^8.0
231232
echo COMPOSER_ROOT_VERSION=$COMPOSER_ROOT_VERSION >> $GITHUB_ENV
232233
233234
echo "::group::composer update"
@@ -269,7 +270,7 @@ jobs:
269270
PGBOUNCER_HOST: localhost:6432
270271

271272
#- name: Run HTTP push tests
272-
# if: matrix.php == '8.2'
273+
# if: matrix.php == '8.4'
273274
# run: |
274275
# [ -d .phpunit ] && mv .phpunit .phpunit.bak
275276
# wget -q https://github.com/symfony/binary-utils/releases/download/v0.1/vulcain_0.1.3_Linux_x86_64.tar.gz -O - | tar xz && mv vulcain /usr/local/bin

.github/workflows/intl-data-tests.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,14 @@ jobs:
6363
coverage: "none"
6464
extensions: "zip,intl-${{env.SYMFONY_ICU_VERSION}}"
6565
ini-values: "memory_limit=-1"
66-
php-version: "8.2"
66+
php-version: "8.4"
6767

6868
- name: Install dependencies
6969
run: |
7070
COMPOSER_HOME="$(composer config home)"
7171
([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
7272
export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
73+
export COMPOSER_ROOT_VERSION=7.4.x-dev # to be removed once deps allow ^8.0
7374
echo COMPOSER_ROOT_VERSION=$COMPOSER_ROOT_VERSION >> $GITHUB_ENV
7475
7576
echo "::group::composer update"

.github/workflows/phpunit-bridge.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
uses: shivammathur/setup-php@v2
3333
with:
3434
coverage: "none"
35-
php-version: "7.2"
35+
php-version: "8.1"
3636

3737
- name: Lint
3838
run: find ./src/Symfony/Bridge/PhpUnit -name '*.php' | grep -v -e /Tests/ -e /Attribute/ -e /Extension/ -e /Metadata/ -e ForV7 -e ForV8 -e ForV9 -e ConstraintLogicTrait -e SymfonyExtension | parallel -j 4 php -l {}

.github/workflows/psalm.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
runs-on: ubuntu-24.04
2121

2222
env:
23-
php-version: '8.2'
23+
php-version: '8.4'
2424
steps:
2525
- name: Setup PHP
2626
uses: shivammathur/setup-php@v2
@@ -42,6 +42,7 @@ jobs:
4242
COMPOSER_HOME="$(composer config home)"
4343
([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
4444
export COMPOSER_ROOT_VERSION=$(grep ' VERSION = ' src/Symfony/Component/HttpKernel/Kernel.php | grep -P -o '[0-9]+\.[0-9]+').x-dev
45+
export COMPOSER_ROOT_VERSION=7.4.x-dev # to be removed once deps allow ^8.0
4546
composer remove --dev --no-update --no-interaction symfony/phpunit-bridge
4647
composer require --no-progress --ansi --no-plugins psalm/phar:@stable phpunit/phpunit:^9.6 php-http/discovery psr/event-dispatcher mongodb/mongodb jetbrains/phpstorm-stubs
4748

.github/workflows/unit-tests.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,10 @@ jobs:
2626
strategy:
2727
matrix:
2828
include:
29-
- php: '8.2'
30-
- php: '8.2'
29+
- php: '8.4'
3130
mode: high-deps
32-
- php: '8.2'
31+
- php: '8.4'
3332
mode: low-deps
34-
- php: '8.3'
3533
- php: '8.4'
3634
# brotli and zstd extensions are optional, when not present the commands will be used instead,
3735
# we must test both scenarios
@@ -142,6 +140,7 @@ jobs:
142140
143141
echo SYMFONY_VERSION=$SYMFONY_VERSION >> $GITHUB_ENV
144142
echo COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev >> $GITHUB_ENV
143+
echo COMPOSER_ROOT_VERSION=7.4.x-dev >> $GITHUB_ENV # to be removed once all deps allow ^8.0
145144
echo SYMFONY_REQUIRE=">=$([ '${{ matrix.mode }}' = low-deps ] && echo 6.4 || echo $SYMFONY_VERSION)" >> $GITHUB_ENV
146145
[[ "${{ matrix.mode }}" = *-deps ]] && mv composer.json.phpunit composer.json || true
147146
@@ -156,19 +155,19 @@ jobs:
156155
echo "::endgroup::"
157156
158157
- name: Patch return types
159-
if: "matrix.php == '8.2' && ! matrix.mode"
158+
if: "matrix.php == '8.4' && ! matrix.mode"
160159
run: |
161160
patch -sp1 < .github/expected-missing-return-types.diff
162161
git add .
163162
composer install -q --optimize-autoloader || composer install --optimize-autoloader
164-
SYMFONY_PATCH_TYPE_DECLARATIONS='force=2&php=8.2' php .github/patch-types.php
163+
SYMFONY_PATCH_TYPE_DECLARATIONS='force=2&php=8.4' php .github/patch-types.php
165164
git checkout src/Symfony/Contracts/Service/ResetInterface.php
166-
SYMFONY_PATCH_TYPE_DECLARATIONS='force=2&php=8.2' php .github/patch-types.php # ensure the script is idempotent
165+
SYMFONY_PATCH_TYPE_DECLARATIONS='force=2&php=8.4' php .github/patch-types.php # ensure the script is idempotent
167166
git checkout src/Symfony/Contracts/Service/ResetInterface.php
168167
git diff --exit-code
169168
170169
- name: Check return types
171-
if: "matrix.php == '8.2' && ! matrix.mode"
170+
if: "matrix.php == '8.4' && ! matrix.mode"
172171
run: |
173172
php .github/patch-types.php lint
174173
@@ -220,6 +219,7 @@ jobs:
220219
SYMFONY_VERSION=$(echo $SYMFONY_VERSION | awk '{print $1 - 1}')
221220
echo -e "\\n\\e[33;1mChecking out Symfony $SYMFONY_VERSION and running tests with patched components as deps\\e[0m"
222221
export COMPOSER_ROOT_VERSION=$SYMFONY_VERSION.x-dev
222+
export COMPOSER_ROOT_VERSION=7.4.x-dev # to be removed once deps allow ^8.0
223223
export SYMFONY_REQUIRE=">=$SYMFONY_VERSION"
224224
git fetch --depth=2 origin $SYMFONY_VERSION
225225
git checkout -m FETCH_HEAD
@@ -240,12 +240,12 @@ jobs:
240240
script -e -c './phpunit --group tty' /dev/null
241241
242242
- name: Run tests with SIGCHLD enabled PHP
243-
if: "matrix.php == '8.2' && ! matrix.mode"
243+
if: "matrix.php == '8.4' && ! matrix.mode"
244244
run: |
245245
mkdir build
246246
cd build
247-
wget -q https://github.com/symfony/binary-utils/releases/download/v0.1/php-8.2.0-pcntl-sigchild.tar.bz2
248-
tar -xjf php-8.2.0-pcntl-sigchild.tar.bz2
247+
wget -q https://github.com/symfony/binary-utils/releases/download/v0.1/php-8.4.0-pcntl-sigchild.tar.bz2
248+
tar -xjf php-8.4.0-pcntl-sigchild.tar.bz2
249249
cd ..
250250
251251
mkdir -p /opt/php/lib

.github/workflows/windows.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ jobs:
4343
run: |
4444
$env:Path = 'c:\php;' + $env:Path
4545
mkdir c:\php && cd c:\php
46-
iwr -outf php-8.2.0-Win32-vs16-x86.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php-8.2.0-Win32-vs16-x86.zip
47-
7z x php-8.2.0-Win32-vs16-x86.zip -y >nul
46+
iwr -outf php.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php-8.4.0-Win32-vs17-x86.zip
47+
7z x php.zip -y >nul
4848
cd ext
49-
iwr -outf php_apcu-5.1.22-8.2-ts-vs16-x86.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php_apcu-5.1.22-8.2-ts-vs16-x86.zip
50-
7z x php_apcu-5.1.22-8.2-ts-vs16-x86.zip -y >nul
51-
iwr -outf php_redis-6.0.0-dev-8.2-ts-vs16-x86.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php_redis-6.0.0-dev-8.2-ts-vs16-x86.zip
52-
7z x php_redis-6.0.0-dev-8.2-ts-vs16-x86.zip -y >nul
49+
iwr -outf php_apcu.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php_apcu-5.1.24-8.4-ts-vs17-x86.zip
50+
7z x php_apcu.zip -y >nul
51+
iwr -outf php_redis.zip https://github.com/symfony/binary-utils/releases/download/v0.1/php_redis-6.2.0-8.4-ts-vs17-x86.zip
52+
7z x php_redis.zip -y >nul
5353
cd ..
5454
Copy php.ini-development php.ini-min
5555
"memory_limit=-1" >> php.ini-min
@@ -66,7 +66,7 @@ jobs:
6666
"opcache.enable_cli=1" >> php.ini-max
6767
"extension=php_openssl.dll" >> php.ini-max
6868
"extension=php_apcu.dll" >> php.ini-max
69-
"extension=php_igbinary.dll" >> php.ini-max
69+
#"extension=php_igbinary.dll" >> php.ini-max
7070
"extension=php_redis.dll" >> php.ini-max
7171
"apc.enable_cli=1" >> php.ini-max
7272
"extension=php_intl.dll" >> php.ini-max
@@ -86,6 +86,7 @@ jobs:
8686
8787
$env:SYMFONY_VERSION=(Select-String -CaseSensitive -Pattern " VERSION =" -SimpleMatch -Path src/Symfony/Component/HttpKernel/Kernel.php | Select Line | Select-String -Pattern "([0-9][0-9]*\.[0-9])").Matches.Value
8888
$env:COMPOSER_ROOT_VERSION=$env:SYMFONY_VERSION + ".x-dev"
89+
$env:COMPOSER_ROOT_VERSION="7.4.x-dev" # to be removed once all deps allow ^8.0
8990
9091
php .github/build-packages.php HEAD^ $env:SYMFONY_VERSION src\Symfony\Bridge\PhpUnit
9192
php composer.phar update --no-progress --ansi

composer.json

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"symfony/translation-implementation": "2.3|3.0"
3434
},
3535
"require": {
36-
"php": ">=8.2",
36+
"php": ">=8.4",
3737
"composer-runtime-api": ">=2.1",
3838
"composer/semver": "^3.0",
3939
"ext-xml": "*",
@@ -48,13 +48,12 @@
4848
"psr/link": "^1.1|^2.0",
4949
"psr/log": "^1|^2|^3",
5050
"symfony/contracts": "^3.6",
51-
"symfony/polyfill-ctype": "~1.8",
52-
"symfony/polyfill-intl-grapheme": "~1.0",
53-
"symfony/polyfill-intl-icu": "~1.0",
51+
"symfony/polyfill-ctype": "^1.8",
52+
"symfony/polyfill-intl-grapheme": "^1.0",
53+
"symfony/polyfill-intl-icu": "^1.0",
5454
"symfony/polyfill-intl-idn": "^1.10",
55-
"symfony/polyfill-intl-normalizer": "~1.0",
56-
"symfony/polyfill-mbstring": "~1.0",
57-
"symfony/polyfill-php83": "^1.28",
55+
"symfony/polyfill-intl-normalizer": "^1.0",
56+
"symfony/polyfill-mbstring": "^1.0",
5857
"symfony/polyfill-uuid": "^1.15"
5958
},
6059
"replace": {
@@ -156,9 +155,9 @@
156155
"seld/jsonlint": "^1.10",
157156
"symfony/amphp-http-client-meta": "^1.0|^2.0",
158157
"symfony/mercure-bundle": "^0.3",
159-
"symfony/phpunit-bridge": "^6.4|^7.0|^8.0",
158+
"symfony/phpunit-bridge": "^7.4|^8.0",
160159
"symfony/runtime": "self.version",
161-
"symfony/security-acl": "~2.8|~3.0",
160+
"symfony/security-acl": "^2.8|^3.0",
162161
"symfony/webpack-encore-bundle": "^1.0|^2.0",
163162
"twig/cssinliner-extra": "^3",
164163
"twig/inky-extra": "^3",

src/Symfony/Bridge/Doctrine/composer.json

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -16,55 +16,44 @@
1616
}
1717
],
1818
"require": {
19-
"php": ">=8.2",
19+
"php": ">=8.4",
2020
"doctrine/event-manager": "^2",
2121
"doctrine/persistence": "^3.1|^4",
2222
"symfony/deprecation-contracts": "^2.5|^3",
23-
"symfony/polyfill-ctype": "~1.8",
24-
"symfony/polyfill-mbstring": "~1.0",
23+
"symfony/polyfill-ctype": "^1.8",
24+
"symfony/polyfill-mbstring": "^1.0",
2525
"symfony/service-contracts": "^2.5|^3"
2626
},
2727
"require-dev": {
28-
"symfony/cache": "^6.4|^7.0|^8.0",
29-
"symfony/config": "^6.4|^7.0|^8.0",
30-
"symfony/dependency-injection": "^6.4|^7.0|^8.0",
31-
"symfony/doctrine-messenger": "^6.4|^7.0|^8.0",
32-
"symfony/expression-language": "^6.4|^7.0|^8.0",
33-
"symfony/form": "^6.4.6|^7.0.6|^8.0",
34-
"symfony/http-kernel": "^6.4|^7.0|^8.0",
35-
"symfony/lock": "^6.4|^7.0|^8.0",
36-
"symfony/messenger": "^6.4|^7.0|^8.0",
37-
"symfony/property-access": "^6.4|^7.0|^8.0",
38-
"symfony/property-info": "^6.4|^7.0|^8.0",
39-
"symfony/security-core": "^6.4|^7.0|^8.0",
40-
"symfony/stopwatch": "^6.4|^7.0|^8.0",
41-
"symfony/translation": "^6.4|^7.0|^8.0",
42-
"symfony/type-info": "^7.1|^8.0",
43-
"symfony/uid": "^6.4|^7.0|^8.0",
44-
"symfony/validator": "^6.4|^7.0|^8.0",
45-
"symfony/var-dumper": "^6.4|^7.0|^8.0",
4628
"doctrine/collections": "^1.8|^2.0",
4729
"doctrine/data-fixtures": "^1.1|^2",
4830
"doctrine/dbal": "^3.6|^4",
4931
"doctrine/orm": "^2.15|^3",
50-
"psr/log": "^1|^2|^3"
32+
"psr/log": "^1|^2|^3",
33+
"symfony/cache": "^7.4|^8.0",
34+
"symfony/config": "^7.4|^8.0",
35+
"symfony/dependency-injection": "^7.4|^8.0",
36+
"symfony/doctrine-messenger": "^7.4|^8.0",
37+
"symfony/expression-language": "^7.4|^8.0",
38+
"symfony/form": "^7.4|^8.0",
39+
"symfony/http-kernel": "^7.4|^8.0",
40+
"symfony/lock": "^7.4|^8.0",
41+
"symfony/messenger": "^7.4|^8.0",
42+
"symfony/property-access": "^7.4|^8.0",
43+
"symfony/property-info": "^7.4|^8.0",
44+
"symfony/security-core": "^7.4|^8.0",
45+
"symfony/stopwatch": "^7.4|^8.0",
46+
"symfony/translation": "^7.4|^8.0",
47+
"symfony/type-info": "^7.4|^8.0",
48+
"symfony/uid": "^7.4|^8.0",
49+
"symfony/validator": "^7.4|^8.0",
50+
"symfony/var-dumper": "^7.4|^8.0"
5151
},
5252
"conflict": {
5353
"doctrine/collections": "<1.8",
5454
"doctrine/dbal": "<3.6",
5555
"doctrine/lexer": "<1.1",
56-
"doctrine/orm": "<2.15",
57-
"symfony/cache": "<6.4",
58-
"symfony/dependency-injection": "<6.4",
59-
"symfony/form": "<6.4.6|>=7,<7.0.6",
60-
"symfony/http-foundation": "<6.4",
61-
"symfony/http-kernel": "<6.4",
62-
"symfony/lock": "<6.4",
63-
"symfony/messenger": "<6.4",
64-
"symfony/property-info": "<6.4",
65-
"symfony/security-bundle": "<6.4",
66-
"symfony/security-core": "<6.4",
67-
"symfony/validator": "<6.4"
56+
"doctrine/orm": "<2.15"
6857
},
6958
"autoload": {
7059
"psr-4": { "Symfony\\Bridge\\Doctrine\\": "" },

src/Symfony/Bridge/Monolog/composer.json

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,19 @@
1616
}
1717
],
1818
"require": {
19-
"php": ">=8.2",
19+
"php": ">=8.4",
2020
"monolog/monolog": "^3",
2121
"symfony/service-contracts": "^2.5|^3",
22-
"symfony/http-kernel": "^6.4|^7.0|^8.0"
22+
"symfony/http-kernel": "^7.4|^8.0"
2323
},
2424
"require-dev": {
25-
"symfony/console": "^6.4|^7.0|^8.0",
26-
"symfony/http-client": "^6.4|^7.0|^8.0",
27-
"symfony/security-core": "^6.4|^7.0|^8.0",
28-
"symfony/var-dumper": "^6.4|^7.0|^8.0",
29-
"symfony/mailer": "^6.4|^7.0|^8.0",
30-
"symfony/mime": "^6.4|^7.0|^8.0",
31-
"symfony/messenger": "^6.4|^7.0|^8.0"
32-
},
33-
"conflict": {
34-
"symfony/console": "<6.4",
35-
"symfony/http-foundation": "<6.4",
36-
"symfony/security-core": "<6.4"
25+
"symfony/console": "^7.4|^8.0",
26+
"symfony/http-client": "^7.4|^8.0",
27+
"symfony/security-core": "^7.4|^8.0",
28+
"symfony/mailer": "^7.4|^8.0",
29+
"symfony/messenger": "^7.4|^8.0",
30+
"symfony/mime": "^7.4|^8.0",
31+
"symfony/var-dumper": "^7.4|^8.0"
3732
},
3833
"autoload": {
3934
"psr-4": { "Symfony\\Bridge\\Monolog\\": "" },

0 commit comments

Comments
 (0)