diff --git a/.github/setup-database.sh b/.github/setup-database.sh
index d34c7898b7..49af1a70e9 100755
--- a/.github/setup-database.sh
+++ b/.github/setup-database.sh
@@ -22,5 +22,5 @@ fi
if [ "$MYISAM" == '1' ]
then
- mysql -h 127.0.0.1 -u root -e 'SET GLOBAL storage_engine=MyISAM;'
+ mysql -h 127.0.0.1 -u root -e 'SET GLOBAL default_storage_engine=MyISAM;'
fi
diff --git a/.github/setup-ldap.sh b/.github/setup-ldap.sh
index d554654e87..226c625ee1 100755
--- a/.github/setup-ldap.sh
+++ b/.github/setup-ldap.sh
@@ -16,4 +16,4 @@ mkdir /var/tmp/slapd
cp .github/ldap/slapd.conf /var/tmp/slapd/slapd.conf
slapd -d 256 -d 128 -f /var/tmp/slapd/slapd.conf -h ldap://localhost:3389 &
sleep 3
-ldapadd -h localhost:3389 -D "cn=admin,dc=example,dc=com" -w adminadmin -f .github/ldap/base.ldif
+ldapadd -H ldap://localhost:3389 -D "cn=admin,dc=example,dc=com" -w adminadmin -f .github/ldap/base.ldif
diff --git a/.github/setup-phpbb.sh b/.github/setup-phpbb.sh
index 2fc1634978..cfec319f2e 100755
--- a/.github/setup-phpbb.sh
+++ b/.github/setup-phpbb.sh
@@ -28,9 +28,4 @@ fi
cd phpBB
php ../composer.phar install --dev --no-interaction
-if [[ "$PHP_VERSION" =~ ^nightly$ || "$PHP_VERSION" =~ ^8 ]]
-then
- php ../composer.phar remove phpunit/dbunit --dev --update-with-dependencies \
- && php ../composer.phar require symfony/yaml:~4.4 misantron/dbunit:~5.0 phpunit/phpunit:^9.3 doctrine/instantiator:^1.4 --dev --update-with-all-dependencies --ignore-platform-reqs
-fi
cd ..
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 9567f5abe4..1ae1303623 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -17,12 +17,12 @@ on:
jobs:
# Basic checks, e.g. parse errors, commit messages, etc.
basic-checks:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-latest
strategy:
matrix:
include:
- db: 'none'
- php: '7.3'
+ php: '8.1'
NOTESTS: 1
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
@@ -42,19 +42,16 @@ jobs:
- name: Get Composer Cache Directory
id: composer-cache
- env:
- PHP_VERSION: ${{ matrix.php }}
run: |
cd phpBB
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
cd ..
- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
- key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
+ key: composer-${{ matrix.php }}-${{ hashFiles('phpBB/composer.lock') }}
- name: Setup environment for phpBB
env:
@@ -100,44 +97,43 @@ jobs:
# Tests for MySQL and MariaDB
mysql-tests:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-latest
strategy:
matrix:
+ type: ['unit', 'functional']
+ php: ['8.1', '8.2', '8.3']
+ db: [
+ 'mariadb:10.2',
+ 'mariadb:10.3',
+ 'mariadb:10.4',
+ 'mariadb:10.6',
+ 'mariadb:10.9',
+ 'mariadb:10.10',
+ 'mariadb:10.11',
+ # 'mariadb:11.0' # currently disabled
+ 'mysql:5.7',
+ 'mysql:8.0',
+ 'mysql:8.1'
+ ]
include:
- - php: '7.3'
- db: "mariadb:10.1"
- - php: '7.3'
- db: "mariadb:10.2"
- - php: '7.3'
- db: "mariadb:10.3"
- - php: '7.3'
- db: "mariadb:10.4"
- - php: '7.3'
- db: "mariadb:10.5"
- - php: '7.3'
- db: "mysql:5.6"
- db_alias: "MySQL Slow Tests"
- SLOWTESTS: 1
- - php: '7.3'
- db: "mysql:5.6"
- db_alias: "MyISAM Tests"
- MYISAM: 1
- - php: '7.3'
- db: "mysql:5.6"
- - php: '7.3'
- db: "mysql:5.7"
- - php: '7.4'
- db: "mysql:5.7"
- - php: '7.4'
- db: "mysql:8.0"
- - php: '8.0'
- db: "mysql:5.7"
+ - php: '8.1'
+ db: 'mysql:5.7'
+ type: 'unit'
+ - php: '8.1'
+ db: 'mysql:5.7'
+ type: 'functional'
- php: '8.1'
db: "mysql:5.7"
- - php: '8.2'
+ db_alias: "MySQL Slow Tests"
+ type: 'slow'
+ SLOWTESTS: 1
+ - php: '8.1'
db: "mysql:5.7"
+ db_alias: "MyISAM Tests"
+ type: 'MyISAM'
+ MYISAM: 1
- name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
+ name: ${{ matrix.type }} - PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
services:
mysql:
@@ -188,14 +184,13 @@ jobs:
run: |
cd phpBB
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
cd ..
- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
- key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
+ key: composer-${{ matrix.php }}-${{ hashFiles('phpBB/composer.lock') }}
- name: Setup environment for phpBB
env:
@@ -228,9 +223,16 @@ jobs:
- name: Run unit tests
env:
DB: ${{steps.database-type.outputs.db}}
- if: ${{ matrix.SLOWTESTS != 1 && matrix.NOTESTS != 1 }}
+ if: ${{ matrix.SLOWTESTS != 1 && matrix.NOTESTS != 1 && matrix.type == 'unit' }}
run: |
- phpBB/vendor/bin/phpunit --configuration .github/phpunit-$DB-github.xml --verbose --stop-on-error
+ phpBB/vendor/bin/phpunit --configuration .github/phpunit-$DB-github.xml --verbose --stop-on-error --exclude-group functional,slow
+
+ - name: Run functional tests
+ env:
+ DB: ${{steps.database-type.outputs.db}}
+ if: ${{ matrix.SLOWTESTS != 1 && matrix.NOTESTS != 1 && matrix.type == 'functional' }}
+ run: |
+ phpBB/vendor/bin/phpunit --configuration .github/phpunit-$DB-github.xml --verbose --stop-on-error --group functional
- name: Slow tests
env:
@@ -241,38 +243,42 @@ jobs:
# Tests for PostgreSQL
postgres-tests:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-latest
strategy:
matrix:
include:
- - php: '7.3'
+ - php: '8.1'
db: "postgres:9.5"
- - php: '7.3'
+ - php: '8.1'
db: "postgres:9.6"
- - php: '7.3'
+ - php: '8.1'
db: "postgres:10"
- - php: '7.3'
+ - php: '8.1'
db: "postgres:11"
- - php: '7.3'
+ - php: '8.1'
db: "postgres:12"
- - php: '7.3'
- db: "postgres:13"
- - php: '7.4'
- db: "postgres:13"
- - php: '8.0'
- db: "postgres:12"
- - php: '8.0'
+ - php: '8.1'
db: "postgres:13"
- php: '8.1'
db: "postgres:14"
+ - php: '8.1'
+ db: "postgres:15"
+ - php: '8.2'
+ db: "postgres:12"
+ - php: '8.2'
+ db: "postgres:13"
- php: '8.2'
db: "postgres:14"
+ - php: '8.2'
+ db: "postgres:15"
+ #- php: '8.3'
+ # db: "postgres:15"
name: PHP ${{ matrix.php }} - ${{ matrix.db }}
services:
postgres:
- image: ${{ matrix.db != 'postgres:9.5' && matrix.db != 'postgres:9.6' && matrix.db != 'postgres:10' && matrix.db != 'postgres:11' && matrix.db != 'postgres:12' && matrix.db != 'postgres:13' && 'postgres:10' || matrix.db }}
+ image: ${{ matrix.db != 'postgres:9.5' && matrix.db != 'postgres:9.6' && matrix.db != 'postgres:10' && matrix.db != 'postgres:11' && matrix.db != 'postgres:12' && matrix.db != 'postgres:13' && matrix.db != 'postgres:14' && matrix.db != 'postgres:15' && 'postgres:10' || matrix.db }}
env:
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
@@ -321,14 +327,13 @@ jobs:
run: |
cd phpBB
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
cd ..
- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
- key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
+ key: composer-${{ matrix.php }}-${{ hashFiles('phpBB/composer.lock') }}
- name: Setup environment for phpBB
env:
@@ -353,24 +358,27 @@ jobs:
# Other database types, namely sqlite3 and mssql
other-tests:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-latest
strategy:
matrix:
include:
- - php: '7.3'
+ - php: '8.1'
db: "sqlite3"
- - php: '7.3'
+ - php: '8.1'
db: "mcr.microsoft.com/mssql/server:2017-latest"
db_alias: 'MSSQL 2017'
- - php: '7.3'
+ - php: '8.1'
db: "mcr.microsoft.com/mssql/server:2019-latest"
db_alias: 'MSSQL 2019'
+ - php: '8.1'
+ db: "mcr.microsoft.com/mssql/server:2022-latest"
+ db_alias: 'MSSQL 2022'
name: PHP ${{ matrix.php }} - ${{ matrix.db_alias != '' && matrix.db_alias || matrix.db }}
services:
mssql:
- image: ${{ matrix.db != 'mcr.microsoft.com/mssql/server:2017-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2019-latest' && 'mcr.microsoft.com/mssql/server:2017-latest' || matrix.db }}
+ image: ${{ matrix.db != 'mcr.microsoft.com/mssql/server:2017-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2019-latest' && matrix.db != 'mcr.microsoft.com/mssql/server:2022-latest' && 'mcr.microsoft.com/mssql/server:2017-latest' || matrix.db }}
env:
SA_PASSWORD: "Pssw0rd_12"
ACCEPT_EULA: "y"
@@ -402,7 +410,7 @@ jobs:
env:
MATRIX_DB: ${{ matrix.db }}
run: |
- if [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2017-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2019-latest' ]
+ if [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2017-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2019-latest' ] || [ $MATRIX_DB == 'mcr.microsoft.com/mssql/server:2022-latest' ]
then
db='mssql'
else
@@ -424,14 +432,13 @@ jobs:
run: |
cd phpBB
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- echo "version=${PHP_VERSION%.*}" >> $GITHUB_OUTPUT
cd ..
- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
- key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
+ key: composer-${{ matrix.php }}-${{ hashFiles('phpBB/composer.lock') }}
- name: Setup environment for phpBB
env:
@@ -459,33 +466,11 @@ jobs:
runs-on: windows-latest
strategy:
matrix:
- include:
- - php: '7.4'
- db: "postgres"
- type: 'unit'
- - php: '8.0'
- db: "postgres"
- type: 'unit'
- - php: '8.1'
- db: "postgres"
- type: 'unit'
- - php: '8.2'
- db: "postgres"
- type: 'unit'
- - php: '7.4'
- db: "postgres"
- type: 'functional'
- - php: '8.0'
- db: "postgres"
- type: 'functional'
- - php: '8.1'
- db: "postgres"
- type: 'functional'
- - php: '8.2'
- db: "postgres"
- type: 'functional'
+ type: ['unit', 'functional']
+ php: ['8.1', '8.2']
+ db: ['postgres']
- name: Windows - PHP ${{ matrix.php }} - ${{ matrix.db }} - ${{ matrix.type }}
+ name: Windows - ${{ matrix.type }} - PHP ${{ matrix.php }} - ${{ matrix.db }}
steps:
- name: Prepare git for Windows
@@ -508,15 +493,13 @@ jobs:
run: |
cd phpBB
echo "dir=$(composer config cache-files-dir)" >> $env:GITHUB_OUTPUT
- $major_version="${{ matrix.php }}".substring(0,1)
- echo "version=$major_version" >> $env:GITHUB_OUTPUT
cd ..
- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
- key: composer-${{ steps.composer-cache.outputs.version }}-${{ hashFiles('phpBB/composer.lock') }}
+ key: composer-${{ matrix.php }}-${{ hashFiles('phpBB/composer.lock') }}
- name: Setup environment for phpBB
env:
@@ -559,8 +542,6 @@ jobs:
Set-ACL -Path "${env:TEMP_DIR}" -ACLObject $acl
cd ${env:GITHUB_WORKSPACE}\phpBB
php ..\composer.phar install
- php ..\composer.phar remove phpunit/dbunit --dev --update-with-dependencies
- php ..\composer.phar require symfony/yaml:~4.4 misantron/dbunit:~5.0 phpunit/phpunit:^9.3 doctrine/instantiator:^1.4 --dev --update-with-all-dependencies --ignore-platform-reqs
cd ..
- name: Setup database
run: |
@@ -585,8 +566,8 @@ jobs:
- name: Run unit tests
if: ${{ matrix.type == 'unit' }}
run: |
- phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error --exclude-group functional
- - name: Run unit tests
+ phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error --exclude-group functional,slow
+ - name: Run functional tests
if: ${{ matrix.type == 'functional' }}
run: |
phpBB/vendor/bin/phpunit --configuration .github/phpunit-psql-windows-github.xml --verbose --stop-on-error --group functional
diff --git a/build/psalm/stubs/apcu/apcu.php b/build/psalm/stubs/apcu.php
similarity index 100%
rename from build/psalm/stubs/apcu/apcu.php
rename to build/psalm/stubs/apcu.php
diff --git a/build/psalm/stubs/gd.php b/build/psalm/stubs/gd.php
new file mode 100644
index 0000000000..2b5b5a2bf7
--- /dev/null
+++ b/build/psalm/stubs/gd.php
@@ -0,0 +1,15 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+/** @link https://www.php.net/manual/en/image.constants.php */
+define('IMG_COLOR_STYLED', -2);
diff --git a/build/psalm/stubs/ldap.php b/build/psalm/stubs/ldap.php
new file mode 100644
index 0000000000..44ed90fdb9
--- /dev/null
+++ b/build/psalm/stubs/ldap.php
@@ -0,0 +1,16 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+/** @link https://www.php.net/manual/en/ldap.constants.php */
+define('LDAP_OPT_PROTOCOL_VERSION', 17);
+define('LDAP_OPT_REFERRALS', 8);
diff --git a/build/psalm/stubs/memcached/memcached.php b/build/psalm/stubs/memcached.php
similarity index 100%
rename from build/psalm/stubs/memcached/memcached.php
rename to build/psalm/stubs/memcached.php
diff --git a/build/psalm/stubs/oci8/oci8.php b/build/psalm/stubs/oci8.php
similarity index 100%
rename from build/psalm/stubs/oci8/oci8.php
rename to build/psalm/stubs/oci8.php
diff --git a/build/psalm/stubs/pgsql/pgsql.php b/build/psalm/stubs/pgsql.php
similarity index 100%
rename from build/psalm/stubs/pgsql/pgsql.php
rename to build/psalm/stubs/pgsql.php
diff --git a/build/psalm/stubs/redis/redis.php b/build/psalm/stubs/redis.php
similarity index 100%
rename from build/psalm/stubs/redis/redis.php
rename to build/psalm/stubs/redis.php
diff --git a/build/psalm/stubs/sqlite3/sqlite3.php b/build/psalm/stubs/sqlite3.php
similarity index 100%
rename from build/psalm/stubs/sqlite3/sqlite3.php
rename to build/psalm/stubs/sqlite3.php
diff --git a/build/psalm/stubs/sqlsrv.php b/build/psalm/stubs/sqlsrv.php
new file mode 100644
index 0000000000..8e2aaf7426
--- /dev/null
+++ b/build/psalm/stubs/sqlsrv.php
@@ -0,0 +1,17 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+/** @link https://www.php.net/manual/en/sqlsrv.constants.php */
+define('SQLSRV_ERR_ERRORS', 0);
+define('SQLSRV_FETCH_ASSOC', 2);
+define('SQLSRV_CURSOR_STATIC', 'static');
diff --git a/doctum.phar b/doctum.phar
index 1b5df7e34e..89a64f0266 100755
Binary files a/doctum.phar and b/doctum.phar differ
diff --git a/phpBB/bin/phpbbcli.php b/phpBB/bin/phpbbcli.php
index 177ecaacbf..c44890b69d 100755
--- a/phpBB/bin/phpbbcli.php
+++ b/phpBB/bin/phpbbcli.php
@@ -90,6 +90,6 @@ $user->data['user_id'] = ANONYMOUS;
$user->ip = '127.0.0.1';
$application = new \phpbb\console\application('phpBB Console', PHPBB_VERSION, $language, $config);
-$application->setDispatcher($phpbb_container->get('dispatcher'));
+$application->setDispatcher($phpbb_container->get('event_dispatcher'));
$application->register_container_commands($phpbb_container->get('console.command_collection'));
$application->run($input);
diff --git a/phpBB/common.php b/phpBB/common.php
index ec6ff6805e..beca175e93 100644
--- a/phpBB/common.php
+++ b/phpBB/common.php
@@ -97,14 +97,7 @@ require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
// Registered before building the container so the development environment stay capable of intercepting
// the container builder exceptions.
-if (PHPBB_ENVIRONMENT === 'development')
-{
- \phpbb\debug\debug::enable();
-}
-else
-{
- set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
-}
+\phpbb\debug\debug::enable(null, PHPBB_ENVIRONMENT === 'development');
$phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/", $phpEx);
$phpbb_class_loader_ext->register();
diff --git a/phpBB/composer.json b/phpBB/composer.json
index 6711278f57..64657daab5 100644
--- a/phpBB/composer.json
+++ b/phpBB/composer.json
@@ -26,7 +26,7 @@
"phpbb/phpbb-core": "self.version"
},
"require": {
- "php": "^7.3 || ^8.0",
+ "php": "^8.1",
"ext-json": "*",
"ext-mbstring": "*",
"ext-pdo": "*",
@@ -35,53 +35,50 @@
"composer/composer": "^2.0",
"composer/installers": "^1.9",
"composer/package-versions-deprecated": "^1.11",
- "doctrine/dbal": "^3.0",
+ "doctrine/dbal": "~3.3.6",
"google/recaptcha": "~1.1",
"guzzlehttp/guzzle": "~6.3",
"lusitanian/oauth": "^0.8.1",
"marc1706/fast-image-size": "^1.1",
"s9e/text-formatter": "^2.0",
- "symfony/config": "^5.4",
- "symfony/console": "^5.4",
- "symfony/debug": "~4.4",
- "symfony/dependency-injection": "^5.4",
- "symfony/event-dispatcher": "^5.4",
- "symfony/filesystem": "^5.4",
- "symfony/finder": "^5.4",
- "symfony/http-foundation": "^5.4",
- "symfony/http-kernel": "^5.4",
- "symfony/polyfill-intl-normalizer": "^1.23",
- "symfony/polyfill-mbstring": "^1.23",
- "symfony/polyfill-php72": "^1.23",
- "symfony/mime": "^5.4",
- "symfony/process": "^5.4",
- "symfony/proxy-manager-bridge": "^5.4",
- "symfony/routing": "^5.4",
- "symfony/twig-bridge": "^5.4",
- "symfony/yaml": "^5.4",
+ "symfony/config": "^6.3",
+ "symfony/console": "^6.3",
+ "symfony/dependency-injection": "^6.3",
+ "symfony/error-handler": "^6.3",
+ "symfony/event-dispatcher": "^6.3",
+ "symfony/filesystem": "^6.3",
+ "symfony/finder": "^6.3",
+ "symfony/http-foundation": "^6.3",
+ "symfony/http-kernel": "^6.3",
+ "symfony/mime": "^6.3",
+ "symfony/process": "^6.3",
+ "symfony/proxy-manager-bridge": "^6.3",
+ "symfony/routing": "^6.3",
+ "symfony/twig-bridge": "^6.3",
+ "symfony/yaml": "^6.3",
"twig/twig": "^3.0"
},
"require-dev": {
- "fabpot/goutte": "~3.2",
- "laravel/homestead": "~10.17",
+ "laravel/homestead": "~14.4",
"misantron/dbunit": "~5.0",
"phing/phing": "~2.4",
"phpunit/phpunit": "^9.0",
"squizlabs/php_codesniffer": "~3.4",
- "symfony/browser-kit": "^5.4",
- "symfony/css-selector": "^5.4",
- "symfony/dom-crawler": "^5.4",
+ "symfony/browser-kit": "^6.3",
+ "symfony/css-selector": "^6.3",
+ "symfony/dom-crawler": "^6.3",
+ "symfony/http-client": "^6.3",
"vimeo/psalm": "^4.14",
"psalm/plugin-symfony": "^3.1"
},
"extra": {
"branch-alias": {
- "dev-master": "3.3.x-dev"
+ "dev-master": "4.0.x-dev"
}
},
"config": {
"platform": {
- "php": "7.3.0"
+ "php": "8.1.0"
},
"allow-plugins": {
"composer/installers": true
diff --git a/phpBB/composer.lock b/phpBB/composer.lock
index 9d857df2b0..73b27c5c52 100644
--- a/phpBB/composer.lock
+++ b/phpBB/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": "cd137a35c67bd3b23640ec974ccf4aa8",
+ "content-hash": "0c305d521f2db3eec61dcef5b8359047",
"packages": [
{
"name": "bantu/ini-get-wrapper",
@@ -85,16 +85,16 @@
},
{
"name": "composer/ca-bundle",
- "version": "1.3.6",
+ "version": "1.3.7",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
- "reference": "90d087e988ff194065333d16bc5cf649872d9cdb"
+ "reference": "76e46335014860eec1aa5a724799a00a2e47cc85"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/90d087e988ff194065333d16bc5cf649872d9cdb",
- "reference": "90d087e988ff194065333d16bc5cf649872d9cdb",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/76e46335014860eec1aa5a724799a00a2e47cc85",
+ "reference": "76e46335014860eec1aa5a724799a00a2e47cc85",
"shasum": ""
},
"require": {
@@ -141,7 +141,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/ca-bundle/issues",
- "source": "https://github.com/composer/ca-bundle/tree/1.3.6"
+ "source": "https://github.com/composer/ca-bundle/tree/1.3.7"
},
"funding": [
{
@@ -157,7 +157,7 @@
"type": "tidelift"
}
],
- "time": "2023-06-06T12:02:59+00:00"
+ "time": "2023-08-30T09:31:38+00:00"
},
{
"name": "composer/class-map-generator",
@@ -234,16 +234,16 @@
},
{
"name": "composer/composer",
- "version": "2.5.8",
+ "version": "2.6.3",
"source": {
"type": "git",
"url": "https://github.com/composer/composer.git",
- "reference": "4c516146167d1392c8b9b269bb7c24115d262164"
+ "reference": "ff477832e6d838a736556d4a39a3b80f4412abfd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/composer/zipball/4c516146167d1392c8b9b269bb7c24115d262164",
- "reference": "4c516146167d1392c8b9b269bb7c24115d262164",
+ "url": "https://api.github.com/repos/composer/composer/zipball/ff477832e6d838a736556d4a39a3b80f4412abfd",
+ "reference": "ff477832e6d838a736556d4a39a3b80f4412abfd",
"shasum": ""
},
"require": {
@@ -251,23 +251,23 @@
"composer/class-map-generator": "^1.0",
"composer/metadata-minifier": "^1.0",
"composer/pcre": "^2.1 || ^3.1",
- "composer/semver": "^3.0",
+ "composer/semver": "^3.2.5",
"composer/spdx-licenses": "^1.5.7",
"composer/xdebug-handler": "^2.0.2 || ^3.0.3",
"justinrainbow/json-schema": "^5.2.11",
"php": "^7.2.5 || ^8.0",
"psr/log": "^1.0 || ^2.0 || ^3.0",
- "react/promise": "^2.8",
+ "react/promise": "^2.8 || ^3",
"seld/jsonlint": "^1.4",
"seld/phar-utils": "^1.2",
"seld/signal-handler": "^2.0",
- "symfony/console": "^5.4.11 || ^6.0.11",
- "symfony/filesystem": "^5.4 || ^6.0",
- "symfony/finder": "^5.4 || ^6.0",
+ "symfony/console": "^5.4.11 || ^6.0.11 || ^7",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7",
+ "symfony/finder": "^5.4 || ^6.0 || ^7",
"symfony/polyfill-php73": "^1.24",
"symfony/polyfill-php80": "^1.24",
"symfony/polyfill-php81": "^1.24",
- "symfony/process": "^5.4 || ^6.0"
+ "symfony/process": "^5.4 || ^6.0 || ^7"
},
"require-dev": {
"phpstan/phpstan": "^1.9.3",
@@ -275,7 +275,7 @@
"phpstan/phpstan-phpunit": "^1.0",
"phpstan/phpstan-strict-rules": "^1",
"phpstan/phpstan-symfony": "^1.2.10",
- "symfony/phpunit-bridge": "^6.0"
+ "symfony/phpunit-bridge": "^6.0 || ^7"
},
"suggest": {
"ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages",
@@ -288,7 +288,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "2.6-dev"
},
"phpstan": {
"includes": [
@@ -298,7 +298,7 @@
},
"autoload": {
"psr-4": {
- "Composer\\": "src/Composer"
+ "Composer\\": "src/Composer/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -327,7 +327,8 @@
"support": {
"irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/composer/issues",
- "source": "https://github.com/composer/composer/tree/2.5.8"
+ "security": "https://github.com/composer/composer/security/policy",
+ "source": "https://github.com/composer/composer/tree/2.6.3"
},
"funding": [
{
@@ -343,7 +344,7 @@
"type": "tidelift"
}
],
- "time": "2023-06-09T15:13:21+00:00"
+ "time": "2023-09-15T07:38:22+00:00"
},
{
"name": "composer/installers",
@@ -640,20 +641,20 @@
},
{
"name": "composer/pcre",
- "version": "2.1.0",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
- "reference": "3fdb2807b31a78a40ad89570e30ec77466c98717"
+ "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/3fdb2807b31a78a40ad89570e30ec77466c98717",
- "reference": "3fdb2807b31a78a40ad89570e30ec77466c98717",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
+ "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0"
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^1.3",
@@ -663,7 +664,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.x-dev"
+ "dev-main": "3.x-dev"
}
},
"autoload": {
@@ -691,7 +692,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/2.1.0"
+ "source": "https://github.com/composer/pcre/tree/3.1.0"
},
"funding": [
{
@@ -707,20 +708,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-16T18:32:04+00:00"
+ "time": "2022-11-17T09:50:14+00:00"
},
{
"name": "composer/semver",
- "version": "3.3.2",
+ "version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
"shasum": ""
},
"require": {
@@ -770,9 +771,9 @@
"versioning"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.3.2"
+ "source": "https://github.com/composer/semver/tree/3.4.0"
},
"funding": [
{
@@ -788,7 +789,7 @@
"type": "tidelift"
}
],
- "time": "2022-04-01T19:23:25+00:00"
+ "time": "2023-08-31T09:50:34+00:00"
},
{
"name": "composer/spdx-licenses",
@@ -1363,30 +1364,30 @@
},
{
"name": "google/recaptcha",
- "version": "1.2.4",
+ "version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/google/recaptcha.git",
- "reference": "614f25a9038be4f3f2da7cbfd778dc5b357d2419"
+ "reference": "d59a801e98a4e9174814a6d71bbc268dff1202df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/google/recaptcha/zipball/614f25a9038be4f3f2da7cbfd778dc5b357d2419",
- "reference": "614f25a9038be4f3f2da7cbfd778dc5b357d2419",
+ "url": "https://api.github.com/repos/google/recaptcha/zipball/d59a801e98a4e9174814a6d71bbc268dff1202df",
+ "reference": "d59a801e98a4e9174814a6d71bbc268dff1202df",
"shasum": ""
},
"require": {
- "php": ">=5.5"
+ "php": ">=8"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^2.2.20|^2.15",
- "php-coveralls/php-coveralls": "^2.1",
- "phpunit/phpunit": "^4.8.36|^5.7.27|^6.59|^7.5.11"
+ "friendsofphp/php-cs-fixer": "^3.14",
+ "php-coveralls/php-coveralls": "^2.5",
+ "phpunit/phpunit": "^10"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.2.x-dev"
+ "dev-master": "1.3.x-dev"
}
},
"autoload": {
@@ -1411,7 +1412,7 @@
"issues": "https://github.com/google/recaptcha/issues",
"source": "https://github.com/google/recaptcha"
},
- "time": "2020-03-31T17:50:54+00:00"
+ "time": "2023-02-18T17:41:46+00:00"
},
{
"name": "guzzlehttp/guzzle",
@@ -1784,48 +1785,35 @@
},
{
"name": "laminas/laminas-code",
- "version": "3.4.1",
+ "version": "4.12.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-code.git",
- "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766"
+ "reference": "36cbee228b427446419dd51944bdfb6bb8ddbcd0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-code/zipball/1cb8f203389ab1482bf89c0e70a04849bacd7766",
- "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766",
+ "url": "https://api.github.com/repos/laminas/laminas-code/zipball/36cbee228b427446419dd51944bdfb6bb8ddbcd0",
+ "reference": "36cbee228b427446419dd51944bdfb6bb8ddbcd0",
"shasum": ""
},
"require": {
- "laminas/laminas-eventmanager": "^2.6 || ^3.0",
- "laminas/laminas-zendframework-bridge": "^1.0",
- "php": "^7.1"
- },
- "conflict": {
- "phpspec/prophecy": "<1.9.0"
- },
- "replace": {
- "zendframework/zend-code": "self.version"
+ "php": "~8.1.0 || ~8.2.0"
},
"require-dev": {
- "doctrine/annotations": "^1.7",
+ "doctrine/annotations": "^2.0.0",
"ext-phar": "*",
- "laminas/laminas-coding-standard": "^1.0",
- "laminas/laminas-stdlib": "^2.7 || ^3.0",
- "phpunit/phpunit": "^7.5.16 || ^8.4"
+ "laminas/laminas-coding-standard": "^2.3.0",
+ "laminas/laminas-stdlib": "^3.6.1",
+ "phpunit/phpunit": "^10.0.9",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "vimeo/psalm": "^5.7.1"
},
"suggest": {
"doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
"laminas/laminas-stdlib": "Laminas\\Stdlib component"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4.x-dev",
- "dev-develop": "3.5.x-dev",
- "dev-dev-4.0": "4.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Laminas\\Code\\": "src/"
@@ -1839,7 +1827,8 @@
"homepage": "https://laminas.dev",
"keywords": [
"code",
- "laminas"
+ "laminas",
+ "laminasframework"
],
"support": {
"chat": "https://laminas.dev/chat",
@@ -1849,135 +1838,13 @@
"rss": "https://github.com/laminas/laminas-code/releases.atom",
"source": "https://github.com/laminas/laminas-code"
},
- "time": "2019-12-31T16:28:24+00:00"
- },
- {
- "name": "laminas/laminas-eventmanager",
- "version": "3.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/laminas/laminas-eventmanager.git",
- "reference": "a93fd278c97b2d41ebbce5ba048a24e3e6f580ba"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/a93fd278c97b2d41ebbce5ba048a24e3e6f580ba",
- "reference": "a93fd278c97b2d41ebbce5ba048a24e3e6f580ba",
- "shasum": ""
- },
- "require": {
- "php": "^7.3 || ~8.0.0 || ~8.1.0"
- },
- "conflict": {
- "zendframework/zend-eventmanager": "*"
- },
- "require-dev": {
- "container-interop/container-interop": "^1.1",
- "laminas/laminas-coding-standard": "~2.2.1",
- "laminas/laminas-stdlib": "^3.6",
- "phpbench/phpbench": "^1.1",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpunit/phpunit": "^9.5.5"
- },
- "suggest": {
- "container-interop/container-interop": "^1.1, to use the lazy listeners feature",
- "laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Laminas\\EventManager\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Trigger and listen to events within a PHP application",
- "homepage": "https://laminas.dev",
- "keywords": [
- "event",
- "eventmanager",
- "events",
- "laminas"
- ],
- "support": {
- "chat": "https://laminas.dev/chat",
- "docs": "https://docs.laminas.dev/laminas-eventmanager/",
- "forum": "https://discourse.laminas.dev",
- "issues": "https://github.com/laminas/laminas-eventmanager/issues",
- "rss": "https://github.com/laminas/laminas-eventmanager/releases.atom",
- "source": "https://github.com/laminas/laminas-eventmanager"
- },
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
- "time": "2021-09-07T22:35:32+00:00"
- },
- {
- "name": "laminas/laminas-zendframework-bridge",
- "version": "1.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/laminas/laminas-zendframework-bridge.git",
- "reference": "88bf037259869891afce6504cacc4f8a07b24d0f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/88bf037259869891afce6504cacc4f8a07b24d0f",
- "reference": "88bf037259869891afce6504cacc4f8a07b24d0f",
- "shasum": ""
- },
- "require": {
- "php": "^7.3 || ~8.0.0 || ~8.1.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.3",
- "psalm/plugin-phpunit": "^0.15.1",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.6"
- },
- "type": "library",
- "extra": {
- "laminas": {
- "module": "Laminas\\ZendFrameworkBridge"
- }
- },
- "autoload": {
- "files": [
- "src/autoload.php"
- ],
- "psr-4": {
- "Laminas\\ZendFrameworkBridge\\": "src//"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Alias legacy ZF class names to Laminas Project equivalents.",
- "keywords": [
- "ZendFramework",
- "autoloading",
- "laminas",
- "zf"
- ],
- "support": {
- "forum": "https://discourse.laminas.dev/",
- "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues",
- "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom",
- "source": "https://github.com/laminas/laminas-zendframework-bridge"
- },
- "funding": [
- {
- "url": "https://funding.communitybridge.org/projects/laminas-project",
- "type": "community_bridge"
- }
- ],
- "time": "2021-12-21T14:34:37+00:00"
+ "time": "2023-09-06T14:56:25+00:00"
},
{
"name": "lusitanian/oauth",
@@ -2112,20 +1979,20 @@
},
{
"name": "psr/cache",
- "version": "1.0.1",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
@@ -2145,7 +2012,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
@@ -2155,28 +2022,33 @@
"psr-6"
],
"support": {
- "source": "https://github.com/php-fig/cache/tree/master"
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
},
- "time": "2016-08-06T20:24:11+00:00"
+ "time": "2021-02-03T23:26:27+00:00"
},
{
"name": "psr/container",
- "version": "1.1.1",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
"shasum": ""
},
"require": {
- "php": ">=7.2.0"
+ "php": ">=7.4.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
@@ -2203,9 +2075,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.1"
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
},
- "time": "2021-03-05T17:36:06+00:00"
+ "time": "2021-11-05T16:47:00+00:00"
},
{
"name": "psr/event-dispatcher",
@@ -2312,30 +2184,30 @@
},
{
"name": "psr/log",
- "version": "1.1.4",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "3.x-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\Log\\": "Psr/Log/"
+ "Psr\\Log\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2356,9 +2228,9 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/1.1.4"
+ "source": "https://github.com/php-fig/log/tree/3.0.0"
},
- "time": "2021-05-03T11:20:27+00:00"
+ "time": "2021-07-14T16:46:02+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -2406,23 +2278,24 @@
},
{
"name": "react/promise",
- "version": "v2.10.0",
+ "version": "v3.0.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/promise.git",
- "reference": "f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38"
+ "reference": "c86753c76fd3be465d93b308f18d189f01a22be4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/promise/zipball/f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38",
- "reference": "f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/c86753c76fd3be465d93b308f18d189f01a22be4",
+ "reference": "c86753c76fd3be465d93b308f18d189f01a22be4",
"shasum": ""
},
"require": {
- "php": ">=5.4.0"
+ "php": ">=7.1.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.36"
+ "phpstan/phpstan": "1.10.20 || 1.4.10",
+ "phpunit/phpunit": "^9.5 || ^7.5"
},
"type": "library",
"autoload": {
@@ -2466,7 +2339,7 @@
],
"support": {
"issues": "https://github.com/reactphp/promise/issues",
- "source": "https://github.com/reactphp/promise/tree/v2.10.0"
+ "source": "https://github.com/reactphp/promise/tree/v3.0.0"
},
"funding": [
{
@@ -2474,7 +2347,7 @@
"type": "open_collective"
}
],
- "time": "2023-05-02T15:15:43+00:00"
+ "time": "2023-07-11T16:12:49+00:00"
},
{
"name": "s9e/regexp-builder",
@@ -2520,24 +2393,24 @@
},
{
"name": "s9e/sweetdom",
- "version": "2.1.0",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/s9e/SweetDOM.git",
- "reference": "9e34ff8f353234daed102274012c840bda56aff2"
+ "reference": "dd5d814f93621b1489bfbac8e0331122b928a18a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/s9e/SweetDOM/zipball/9e34ff8f353234daed102274012c840bda56aff2",
- "reference": "9e34ff8f353234daed102274012c840bda56aff2",
+ "url": "https://api.github.com/repos/s9e/SweetDOM/zipball/dd5d814f93621b1489bfbac8e0331122b928a18a",
+ "reference": "dd5d814f93621b1489bfbac8e0331122b928a18a",
"shasum": ""
},
"require": {
"ext-dom": "*",
- "php": ">=7.1"
+ "php": ">=8.0"
},
"require-dev": {
- "phpunit/phpunit": "*"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"autoload": {
@@ -2558,36 +2431,36 @@
],
"support": {
"issues": "https://github.com/s9e/SweetDOM/issues",
- "source": "https://github.com/s9e/SweetDOM/tree/2.1.0"
+ "source": "https://github.com/s9e/SweetDOM/tree/2.1.1"
},
- "time": "2021-05-24T21:06:33+00:00"
+ "time": "2023-06-05T19:10:26+00:00"
},
{
"name": "s9e/text-formatter",
- "version": "2.11.5",
+ "version": "2.14.1",
"source": {
"type": "git",
"url": "https://github.com/s9e/TextFormatter.git",
- "reference": "186b633ee825a93e0060368bfdf8bd46311e3163"
+ "reference": "19c0005a4c6513f73ed8d780959bcc5453b4fa37"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/s9e/TextFormatter/zipball/186b633ee825a93e0060368bfdf8bd46311e3163",
- "reference": "186b633ee825a93e0060368bfdf8bd46311e3163",
+ "url": "https://api.github.com/repos/s9e/TextFormatter/zipball/19c0005a4c6513f73ed8d780959bcc5453b4fa37",
+ "reference": "19c0005a4c6513f73ed8d780959bcc5453b4fa37",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-filter": "*",
"lib-pcre": ">=8.13",
- "php": ">=7.1",
+ "php": "^8.0",
"s9e/regexp-builder": "^1.4",
"s9e/sweetdom": "^2.0"
},
"require-dev": {
"code-lts/doctum": "*",
"matthiasmullie/minify": "*",
- "phpunit/phpunit": "*"
+ "phpunit/phpunit": "^9.5"
},
"suggest": {
"ext-curl": "Improves the performance of the MediaEmbed plugin and some JavaScript minifiers",
@@ -2600,7 +2473,7 @@
},
"type": "library",
"extra": {
- "version": "2.11.5"
+ "version": "2.14.1"
},
"autoload": {
"psr-4": {
@@ -2632,9 +2505,9 @@
],
"support": {
"issues": "https://github.com/s9e/TextFormatter/issues",
- "source": "https://github.com/s9e/TextFormatter/tree/2.11.5"
+ "source": "https://github.com/s9e/TextFormatter/tree/2.14.1"
},
- "time": "2022-09-19T00:20:37+00:00"
+ "time": "2023-09-14T09:16:53+00:00"
},
{
"name": "seld/jsonlint",
@@ -2750,16 +2623,16 @@
},
{
"name": "seld/signal-handler",
- "version": "2.0.1",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/signal-handler.git",
- "reference": "f69d119511dc0360440cdbdaa71829c149b7be75"
+ "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/f69d119511dc0360440cdbdaa71829c149b7be75",
- "reference": "f69d119511dc0360440cdbdaa71829c149b7be75",
+ "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
+ "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
"shasum": ""
},
"require": {
@@ -2805,44 +2678,40 @@
],
"support": {
"issues": "https://github.com/Seldaek/signal-handler/issues",
- "source": "https://github.com/Seldaek/signal-handler/tree/2.0.1"
+ "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2"
},
- "time": "2022-07-20T18:31:45+00:00"
+ "time": "2023-09-03T09:24:00+00:00"
},
{
"name": "symfony/config",
- "version": "v5.4.21",
+ "version": "v6.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "2a6b1111d038adfa15d52c0871e540f3b352d1e4"
+ "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/2a6b1111d038adfa15d52c0871e540f3b352d1e4",
- "reference": "2a6b1111d038adfa15d52c0871e540f3b352d1e4",
+ "url": "https://api.github.com/repos/symfony/config/zipball/b47ca238b03e7b0d7880ffd1cf06e8d637ca1467",
+ "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-php80": "^1.16",
- "symfony/polyfill-php81": "^1.22"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/polyfill-ctype": "~1.8"
},
"conflict": {
- "symfony/finder": "<4.4"
+ "symfony/finder": "<5.4",
+ "symfony/service-contracts": "<2.5"
},
"require-dev": {
- "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/messenger": "^4.4|^5.0|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/yaml": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/yaml": "To use the yaml reference dumper"
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/messenger": "^5.4|^6.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -2870,7 +2739,7 @@
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/config/tree/v5.4.21"
+ "source": "https://github.com/symfony/config/tree/v6.3.2"
},
"funding": [
{
@@ -2886,56 +2755,47 @@
"type": "tidelift"
}
],
- "time": "2023-02-14T08:03:56+00:00"
+ "time": "2023-07-19T20:22:16+00:00"
},
{
"name": "symfony/console",
- "version": "v5.4.24",
+ "version": "v6.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8"
+ "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8",
- "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8",
+ "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6",
+ "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/string": "^5.1|^6.0"
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^5.4|^6.0"
},
"conflict": {
- "psr/log": ">=3",
- "symfony/dependency-injection": "<4.4",
- "symfony/dotenv": "<5.1",
- "symfony/event-dispatcher": "<4.4",
- "symfony/lock": "<4.4",
- "symfony/process": "<4.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
},
"provide": {
- "psr/log-implementation": "1.0|2.0"
+ "psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
- "psr/log": "^1|^2",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
- "symfony/lock": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/lock": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -2969,7 +2829,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.24"
+ "source": "https://github.com/symfony/console/tree/v6.3.4"
},
"funding": [
{
@@ -2985,121 +2845,44 @@
"type": "tidelift"
}
],
- "time": "2023-05-26T05:13:16+00:00"
- },
- {
- "name": "symfony/debug",
- "version": "v4.4.44",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/debug.git",
- "reference": "1a692492190773c5310bc7877cb590c04c2f05be"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be",
- "reference": "1a692492190773c5310bc7877cb590c04c2f05be",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1.3",
- "psr/log": "^1|^2|^3"
- },
- "conflict": {
- "symfony/http-kernel": "<3.4"
- },
- "require-dev": {
- "symfony/http-kernel": "^3.4|^4.0|^5.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Debug\\": ""
- },
- "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 tools to ease debugging PHP code",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/debug/tree/v4.4.44"
- },
- "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"
- }
- ],
- "abandoned": "symfony/error-handler",
- "time": "2022-07-28T16:29:46+00:00"
+ "time": "2023-08-16T10:10:12+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v5.4.25",
+ "version": "v6.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "f0410c30a6c86bbce6c719c2b5cfc343362b982e"
+ "reference": "68a5a9570806a087982f383f6109c5e925892a49"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f0410c30a6c86bbce6c719c2b5cfc343362b982e",
- "reference": "f0410c30a6c86bbce6c719c2b5cfc343362b982e",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/68a5a9570806a087982f383f6109c5e925892a49",
+ "reference": "68a5a9570806a087982f383f6109c5e925892a49",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1.1",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16",
- "symfony/polyfill-php81": "^1.22",
- "symfony/service-contracts": "^1.1.6|^2"
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/service-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.2.10"
},
"conflict": {
"ext-psr": "<1.1|>=2",
- "symfony/config": "<5.3",
- "symfony/finder": "<4.4",
- "symfony/proxy-manager-bridge": "<4.4",
- "symfony/yaml": "<4.4.26"
+ "symfony/config": "<6.1",
+ "symfony/finder": "<5.4",
+ "symfony/proxy-manager-bridge": "<6.3",
+ "symfony/yaml": "<5.4"
},
"provide": {
- "psr/container-implementation": "1.0",
- "symfony/service-implementation": "1.0|2.0"
+ "psr/container-implementation": "1.1|2.0",
+ "symfony/service-implementation": "1.1|2.0|3.0"
},
"require-dev": {
- "symfony/config": "^5.3|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/yaml": "^4.4.26|^5.0|^6.0"
- },
- "suggest": {
- "symfony/config": "",
- "symfony/expression-language": "For using expressions in service container configuration",
- "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
- "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
- "symfony/yaml": ""
+ "symfony/config": "^6.1",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -3127,7 +2910,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/v5.4.25"
+ "source": "https://github.com/symfony/dependency-injection/tree/v6.3.4"
},
"funding": [
{
@@ -3143,29 +2926,29 @@
"type": "tidelift"
}
],
- "time": "2023-06-24T09:45:28+00:00"
+ "time": "2023-08-16T17:55:17+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v2.5.2",
+ "version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3194,7 +2977,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0"
},
"funding": [
{
@@ -3210,31 +2993,34 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:53:40+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v5.4.24",
+ "version": "v6.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "c1b9be3b8a6f60f720bec28c4ffb6fb5b00a8946"
+ "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/c1b9be3b8a6f60f720bec28c4ffb6fb5b00a8946",
- "reference": "c1b9be3b8a6f60f720bec28c4ffb6fb5b00a8946",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/85fd65ed295c4078367c784e8a5a6cee30348b7a",
+ "reference": "85fd65ed295c4078367c784e8a5a6cee30348b7a",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ "symfony/var-dumper": "^5.4|^6.0"
+ },
+ "conflict": {
+ "symfony/deprecation-contracts": "<2.5"
},
"require-dev": {
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/http-kernel": "^4.4|^5.0|^6.0",
- "symfony/serializer": "^4.4|^5.0|^6.0"
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/serializer": "^5.4|^6.0"
},
"bin": [
"Resources/bin/patch-type-declarations"
@@ -3265,7 +3051,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/v5.4.24"
+ "source": "https://github.com/symfony/error-handler/tree/v6.3.2"
},
"funding": [
{
@@ -3281,48 +3067,43 @@
"type": "tidelift"
}
],
- "time": "2023-05-02T16:13:31+00:00"
+ "time": "2023-07-16T17:05:46+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v5.4.22",
+ "version": "v6.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f"
+ "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1df20e45d56da29a4b1d8259dd6e950acbf1b13f",
- "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
+ "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/event-dispatcher-contracts": "^2|^3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<4.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/service-contracts": "<2.5"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0"
+ "symfony/event-dispatcher-implementation": "2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^4.4|^5.0|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/error-handler": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -3350,7 +3131,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.22"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.2"
},
"funding": [
{
@@ -3366,33 +3147,30 @@
"type": "tidelift"
}
],
- "time": "2023-03-17T11:31:58+00:00"
+ "time": "2023-07-06T06:56:43+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v2.5.2",
+ "version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1"
+ "reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1",
- "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
+ "reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"psr/event-dispatcher": "^1"
},
- "suggest": {
- "symfony/event-dispatcher-implementation": ""
- },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3429,7 +3207,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0"
},
"funding": [
{
@@ -3445,27 +3223,26 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:53:40+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v5.4.25",
+ "version": "v6.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364"
+ "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/0ce3a62c9579a53358d3a7eb6b3dfb79789a6364",
- "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae",
+ "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.8",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-mbstring": "~1.8"
},
"type": "library",
"autoload": {
@@ -3493,7 +3270,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v5.4.25"
+ "source": "https://github.com/symfony/filesystem/tree/v6.3.1"
},
"funding": [
{
@@ -3509,26 +3286,27 @@
"type": "tidelift"
}
],
- "time": "2023-05-31T13:04:02+00:00"
+ "time": "2023-06-01T08:30:39+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.4.21",
+ "version": "v6.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19"
+ "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/078e9a5e1871fcfe6a5ce421b539344c21afef19",
- "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/9915db259f67d21eefee768c1abcf1cc61b1fc9e",
+ "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.0"
},
"type": "library",
"autoload": {
@@ -3556,7 +3334,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.4.21"
+ "source": "https://github.com/symfony/finder/tree/v6.3.3"
},
"funding": [
{
@@ -3572,40 +3350,41 @@
"type": "tidelift"
}
],
- "time": "2023-02-16T09:33:00+00:00"
+ "time": "2023-07-31T08:31:44+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v5.4.25",
+ "version": "v6.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "f66be2706075c5f6325d2fe2b743a57fb5d23f6b"
+ "reference": "cac1556fdfdf6719668181974104e6fcfa60e844"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f66be2706075c5f6325d2fe2b743a57fb5d23f6b",
- "reference": "f66be2706075c5f6325d2fe2b743a57fb5d23f6b",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cac1556fdfdf6719668181974104e6fcfa60e844",
+ "reference": "cac1556fdfdf6719668181974104e6fcfa60e844",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-php83": "^1.27"
+ },
+ "conflict": {
+ "symfony/cache": "<6.2"
},
"require-dev": {
- "predis/predis": "~1.0",
- "symfony/cache": "^4.4|^5.0|^6.0",
+ "doctrine/dbal": "^2.13.1|^3.0",
+ "predis/predis": "^1.1|^2.0",
+ "symfony/cache": "^5.4|^6.0",
"symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
"symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
- "symfony/mime": "^4.4|^5.0|^6.0",
+ "symfony/mime": "^5.4|^6.0",
"symfony/rate-limiter": "^5.2|^6.0"
},
- "suggest": {
- "symfony/mime": "To use the file extension guesser"
- },
"type": "library",
"autoload": {
"psr-4": {
@@ -3632,7 +3411,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v5.4.25"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.3.4"
},
"funding": [
{
@@ -3648,76 +3427,77 @@
"type": "tidelift"
}
],
- "time": "2023-06-22T08:06:06+00:00"
+ "time": "2023-08-22T08:20:46+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v5.4.25",
+ "version": "v6.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "f6c92fe64bbdad7616cb90663c24f6350f3ca464"
+ "reference": "36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f6c92fe64bbdad7616cb90663c24f6350f3ca464",
- "reference": "f6c92fe64bbdad7616cb90663c24f6350f3ca464",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb",
+ "reference": "36abb425b4af863ae1fe54d8a8b8b4c76a2bccdb",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/log": "^1|^2",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^5.0|^6.0",
- "symfony/http-foundation": "^5.4.21|^6.2.7",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/error-handler": "^6.3",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/http-foundation": "^6.3.4",
+ "symfony/polyfill-ctype": "^1.8"
},
"conflict": {
"symfony/browser-kit": "<5.4",
- "symfony/cache": "<5.0",
- "symfony/config": "<5.0",
- "symfony/console": "<4.4",
- "symfony/dependency-injection": "<5.3",
- "symfony/doctrine-bridge": "<5.0",
- "symfony/form": "<5.0",
- "symfony/http-client": "<5.0",
- "symfony/mailer": "<5.0",
- "symfony/messenger": "<5.0",
- "symfony/translation": "<5.0",
- "symfony/twig-bridge": "<5.0",
- "symfony/validator": "<5.0",
+ "symfony/cache": "<5.4",
+ "symfony/config": "<6.1",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<6.3.4",
+ "symfony/doctrine-bridge": "<5.4",
+ "symfony/form": "<5.4",
+ "symfony/http-client": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<5.4",
+ "symfony/translation": "<5.4",
+ "symfony/translation-contracts": "<2.5",
+ "symfony/twig-bridge": "<5.4",
+ "symfony/validator": "<5.4",
+ "symfony/var-dumper": "<6.3",
"twig/twig": "<2.13"
},
"provide": {
- "psr/log-implementation": "1.0|2.0"
+ "psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
"symfony/browser-kit": "^5.4|^6.0",
- "symfony/config": "^5.0|^6.0",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/css-selector": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^5.3|^6.0",
- "symfony/dom-crawler": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/http-client-contracts": "^1.1|^2|^3",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/routing": "^4.4|^5.0|^6.0",
- "symfony/stopwatch": "^4.4|^5.0|^6.0",
- "symfony/translation": "^4.4|^5.0|^6.0",
- "symfony/translation-contracts": "^1.1|^2|^3",
+ "symfony/clock": "^6.2",
+ "symfony/config": "^6.1",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/dependency-injection": "^6.3.4",
+ "symfony/dom-crawler": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/http-client-contracts": "^2.5|^3",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/property-access": "^5.4.5|^6.0.5",
+ "symfony/routing": "^5.4|^6.0",
+ "symfony/serializer": "^6.3",
+ "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/translation": "^5.4|^6.0",
+ "symfony/translation-contracts": "^2.5|^3",
+ "symfony/uid": "^5.4|^6.0",
+ "symfony/validator": "^6.3",
+ "symfony/var-exporter": "^6.2",
"twig/twig": "^2.13|^3.0.4"
},
- "suggest": {
- "symfony/browser-kit": "",
- "symfony/config": "",
- "symfony/console": "",
- "symfony/dependency-injection": ""
- },
"type": "library",
"autoload": {
"psr-4": {
@@ -3744,7 +3524,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/v5.4.25"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.3.4"
},
"funding": [
{
@@ -3760,43 +3540,43 @@
"type": "tidelift"
}
],
- "time": "2023-06-26T05:58:08+00:00"
+ "time": "2023-08-26T13:54:49+00:00"
},
{
"name": "symfony/mime",
- "version": "v5.4.23",
+ "version": "v6.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "ae0a1032a450a3abf305ee44fc55ed423fbf16e3"
+ "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/ae0a1032a450a3abf305ee44fc55ed423fbf16e3",
- "reference": "ae0a1032a450a3abf305ee44fc55ed423fbf16e3",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/9a0cbd52baa5ba5a5b1f0cacc59466f194730f98",
+ "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
"egulias/email-validator": "~3.0.0",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/mailer": "<4.4",
- "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6"
+ "symfony/mailer": "<5.4",
+ "symfony/serializer": "<6.2.13|>=6.3,<6.3.2"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
+ "league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/property-access": "^4.4|^5.1|^6.0",
- "symfony/property-info": "^4.4|^5.1|^6.0",
- "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6"
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/property-access": "^5.4|^6.0",
+ "symfony/property-info": "^5.4|^6.0",
+ "symfony/serializer": "~6.2.13|^6.3.2"
},
"type": "library",
"autoload": {
@@ -3828,7 +3608,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v5.4.23"
+ "source": "https://github.com/symfony/mime/tree/v6.3.3"
},
"funding": [
{
@@ -3844,20 +3624,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-19T09:49:13+00:00"
+ "time": "2023-07-31T07:08:24+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.27.0",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
+ "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+ "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
"shasum": ""
},
"require": {
@@ -3872,7 +3652,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.27-dev"
+ "dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3910,7 +3690,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
},
"funding": [
{
@@ -3926,20 +3706,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.27.0",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
+ "reference": "875e90aeea2777b6f135677f618529449334a612"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612",
+ "reference": "875e90aeea2777b6f135677f618529449334a612",
"shasum": ""
},
"require": {
@@ -3951,7 +3731,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.27-dev"
+ "dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3991,7 +3771,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
},
"funding": [
{
@@ -4007,20 +3787,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.27.0",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
+ "reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
+ "reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
"shasum": ""
},
"require": {
@@ -4034,7 +3814,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.27-dev"
+ "dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4078,7 +3858,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0"
},
"funding": [
{
@@ -4094,20 +3874,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2023-01-26T09:30:37+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.27.0",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
+ "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
+ "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
"shasum": ""
},
"require": {
@@ -4119,7 +3899,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.27-dev"
+ "dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4162,7 +3942,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
},
"funding": [
{
@@ -4178,20 +3958,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.27.0",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
+ "reference": "42292d99c55abe617799667f454222c54c60e229"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
+ "reference": "42292d99c55abe617799667f454222c54c60e229",
"shasum": ""
},
"require": {
@@ -4206,7 +3986,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.27-dev"
+ "dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4245,7 +4025,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
},
"funding": [
{
@@ -4261,20 +4041,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2023-07-28T09:04:16+00:00"
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.27.0",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
+ "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179",
+ "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179",
"shasum": ""
},
"require": {
@@ -4283,7 +4063,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.27-dev"
+ "dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4321,7 +4101,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0"
},
"funding": [
{
@@ -4337,20 +4117,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-php73",
- "version": "v1.27.0",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9"
+ "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
- "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5",
+ "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5",
"shasum": ""
},
"require": {
@@ -4359,7 +4139,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.27-dev"
+ "dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4400,7 +4180,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0"
},
"funding": [
{
@@ -4416,20 +4196,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.27.0",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
+ "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
"shasum": ""
},
"require": {
@@ -4438,7 +4218,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.27-dev"
+ "dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4483,7 +4263,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
},
"funding": [
{
@@ -4499,20 +4279,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-php81",
- "version": "v1.27.0",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
+ "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b",
+ "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b",
"shasum": ""
},
"require": {
@@ -4521,7 +4301,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.27-dev"
+ "dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4562,7 +4342,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0"
},
"funding": [
{
@@ -4578,25 +4358,104 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2023-01-26T09:26:14+00:00"
},
{
- "name": "symfony/process",
- "version": "v5.4.24",
+ "name": "symfony/polyfill-php83",
+ "version": "v1.28.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "e3c46cc5689c8782944274bb30702106ecbe3b64"
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/e3c46cc5689c8782944274bb30702106ecbe3b64",
- "reference": "e3c46cc5689c8782944274bb30702106ecbe3b64",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11",
+ "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=7.1",
+ "symfony/polyfill-php80": "^1.14"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php83\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.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-08-16T06:22:46+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v6.3.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/0b5c29118f2e980d455d2e34a5659f4579847c54",
+ "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
},
"type": "library",
"autoload": {
@@ -4624,7 +4483,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.24"
+ "source": "https://github.com/symfony/process/tree/v6.3.4"
},
"funding": [
{
@@ -4640,30 +4499,30 @@
"type": "tidelift"
}
],
- "time": "2023-05-17T11:26:05+00:00"
+ "time": "2023-08-07T10:39:22+00:00"
},
{
"name": "symfony/proxy-manager-bridge",
- "version": "v5.4.21",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/proxy-manager-bridge.git",
- "reference": "a4cf96f3acfa252503a216bea877478f9621c7c0"
+ "reference": "7ba2ac62c88d7c3460d41f04ceba5fc3b9071a39"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/a4cf96f3acfa252503a216bea877478f9621c7c0",
- "reference": "a4cf96f3acfa252503a216bea877478f9621c7c0",
+ "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/7ba2ac62c88d7c3460d41f04ceba5fc3b9071a39",
+ "reference": "7ba2ac62c88d7c3460d41f04ceba5fc3b9071a39",
"shasum": ""
},
"require": {
"friendsofphp/proxy-manager-lts": "^1.0.2",
- "php": ">=7.2.5",
- "symfony/dependency-injection": "^5.0|^6.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/dependency-injection": "^6.3",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"require-dev": {
- "symfony/config": "^4.4|^5.0|^6.0"
+ "symfony/config": "^6.1"
},
"type": "symfony-bridge",
"autoload": {
@@ -4691,7 +4550,7 @@
"description": "Provides integration for ProxyManager with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/proxy-manager-bridge/tree/v5.4.21"
+ "source": "https://github.com/symfony/proxy-manager-bridge/tree/v6.3.0"
},
"funding": [
{
@@ -4707,47 +4566,40 @@
"type": "tidelift"
}
],
- "time": "2023-02-16T09:33:00+00:00"
+ "time": "2023-05-26T07:49:33+00:00"
},
{
"name": "symfony/routing",
- "version": "v5.4.25",
+ "version": "v6.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "56bfc1394f7011303eb2e22724f9b422d3f14649"
+ "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/56bfc1394f7011303eb2e22724f9b422d3f14649",
- "reference": "56bfc1394f7011303eb2e22724f9b422d3f14649",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/e7243039ab663822ff134fbc46099b5fdfa16f6a",
+ "reference": "e7243039ab663822ff134fbc46099b5fdfa16f6a",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"doctrine/annotations": "<1.12",
- "symfony/config": "<5.3",
- "symfony/dependency-injection": "<4.4",
- "symfony/yaml": "<4.4"
+ "symfony/config": "<6.2",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/yaml": "<5.4"
},
"require-dev": {
"doctrine/annotations": "^1.12|^2",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.3|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^4.4|^5.0|^6.0",
- "symfony/yaml": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/config": "For using the all-in-one router or any loader",
- "symfony/expression-language": "For using expression matching",
- "symfony/http-foundation": "For using a Symfony Request object",
- "symfony/yaml": "For using the YAML loader"
+ "symfony/config": "^6.2",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -4781,7 +4633,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v5.4.25"
+ "source": "https://github.com/symfony/routing/tree/v6.3.3"
},
"funding": [
{
@@ -4797,37 +4649,33 @@
"type": "tidelift"
}
],
- "time": "2023-06-05T14:18:47+00:00"
+ "time": "2023-07-31T07:08:24+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v2.5.2",
+ "version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+ "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4",
+ "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=8.1",
+ "psr/container": "^2.0"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
- "suggest": {
- "symfony/service-implementation": ""
- },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4837,7 +4685,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -4864,7 +4715,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.3.0"
},
"funding": [
{
@@ -4880,38 +4731,38 @@
"type": "tidelift"
}
],
- "time": "2022-05-30T19:17:29+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/string",
- "version": "v5.4.22",
+ "version": "v6.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62"
+ "reference": "53d1a83225002635bca3482fcbf963001313fb68"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",
- "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",
+ "url": "https://api.github.com/repos/symfony/string/zipball/53d1a83225002635bca3482fcbf963001313fb68",
+ "reference": "53d1a83225002635bca3482fcbf963001313fb68",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "~1.15"
+ "symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/translation-contracts": ">=3.0"
+ "symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/http-client": "^4.4|^5.0|^6.0",
- "symfony/translation-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.4|^5.0|^6.0"
+ "symfony/error-handler": "^5.4|^6.0",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/intl": "^6.2",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -4950,7 +4801,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v5.4.22"
+ "source": "https://github.com/symfony/string/tree/v6.3.2"
},
"funding": [
{
@@ -4966,32 +4817,29 @@
"type": "tidelift"
}
],
- "time": "2023-03-14T06:11:53+00:00"
+ "time": "2023-07-05T08:41:27+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v2.5.2",
+ "version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe"
+ "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
- "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86",
+ "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86",
"shasum": ""
},
"require": {
- "php": ">=7.2.5"
- },
- "suggest": {
- "symfony/translation-implementation": ""
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -5001,7 +4849,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Translation\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -5028,7 +4879,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0"
},
"funding": [
{
@@ -5044,85 +4895,72 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T16:58:25+00:00"
+ "time": "2023-05-30T17:17:10+00:00"
},
{
"name": "symfony/twig-bridge",
- "version": "v5.4.22",
+ "version": "v6.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bridge.git",
- "reference": "e5b174464f68be6876046db3ad6e217d9a7dbbac"
+ "reference": "6f8435db76a2d79917489a19a82679276c1b4e32"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/e5b174464f68be6876046db3ad6e217d9a7dbbac",
- "reference": "e5b174464f68be6876046db3ad6e217d9a7dbbac",
+ "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/6f8435db76a2d79917489a19a82679276c1b4e32",
+ "reference": "6f8435db76a2d79917489a19a82679276c1b4e32",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation-contracts": "^1.1|^2|^3",
+ "php": ">=8.1",
+ "symfony/translation-contracts": "^2.5|^3",
"twig/twig": "^2.13|^3.0.4"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/console": "<5.3",
- "symfony/form": "<5.4.21|>=6,<6.2.7",
- "symfony/http-foundation": "<5.3",
- "symfony/http-kernel": "<4.4",
- "symfony/translation": "<5.2",
- "symfony/workflow": "<5.2"
+ "symfony/console": "<5.4",
+ "symfony/form": "<6.3",
+ "symfony/http-foundation": "<5.4",
+ "symfony/http-kernel": "<6.2",
+ "symfony/mime": "<6.2",
+ "symfony/translation": "<5.4",
+ "symfony/workflow": "<5.4"
},
"require-dev": {
"doctrine/annotations": "^1.12|^2",
"egulias/email-validator": "^2.1.10|^3|^4",
+ "league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/asset": "^4.4|^5.0|^6.0",
- "symfony/console": "^5.3|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/form": "^5.4.21|^6.2.7",
- "symfony/http-foundation": "^5.3|^6.0",
- "symfony/http-kernel": "^4.4|^5.0|^6.0",
- "symfony/intl": "^4.4|^5.0|^6.0",
- "symfony/mime": "^5.2|^6.0",
+ "symfony/asset": "^5.4|^6.0",
+ "symfony/asset-mapper": "^6.3",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/form": "^6.3",
+ "symfony/html-sanitizer": "^6.1",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/http-kernel": "^6.2",
+ "symfony/intl": "^5.4|^6.0",
+ "symfony/mime": "^6.2",
"symfony/polyfill-intl-icu": "~1.0",
- "symfony/property-info": "^4.4|^5.1|^6.0",
- "symfony/routing": "^4.4|^5.0|^6.0",
+ "symfony/property-info": "^5.4|^6.0",
+ "symfony/routing": "^5.4|^6.0",
"symfony/security-acl": "^2.8|^3.0",
- "symfony/security-core": "^4.4|^5.0|^6.0",
- "symfony/security-csrf": "^4.4|^5.0|^6.0",
- "symfony/security-http": "^4.4|^5.0|^6.0",
- "symfony/serializer": "^5.2|^6.0",
- "symfony/stopwatch": "^4.4|^5.0|^6.0",
- "symfony/translation": "^5.2|^6.0",
- "symfony/web-link": "^4.4|^5.0|^6.0",
- "symfony/workflow": "^5.2|^6.0",
- "symfony/yaml": "^4.4|^5.0|^6.0",
+ "symfony/security-core": "^5.4|^6.0",
+ "symfony/security-csrf": "^5.4|^6.0",
+ "symfony/security-http": "^5.4|^6.0",
+ "symfony/serializer": "^6.2",
+ "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/translation": "^6.1",
+ "symfony/web-link": "^5.4|^6.0",
+ "symfony/workflow": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0",
"twig/cssinliner-extra": "^2.12|^3",
"twig/inky-extra": "^2.12|^3",
"twig/markdown-extra": "^2.12|^3"
},
- "suggest": {
- "symfony/asset": "For using the AssetExtension",
- "symfony/expression-language": "For using the ExpressionExtension",
- "symfony/finder": "",
- "symfony/form": "For using the FormExtension",
- "symfony/http-kernel": "For using the HttpKernelExtension",
- "symfony/routing": "For using the RoutingExtension",
- "symfony/security-core": "For using the SecurityExtension",
- "symfony/security-csrf": "For using the CsrfExtension",
- "symfony/security-http": "For using the LogoutUrlExtension",
- "symfony/stopwatch": "For using the StopwatchExtension",
- "symfony/translation": "For using the TranslationExtension",
- "symfony/var-dumper": "For using the DumpExtension",
- "symfony/web-link": "For using the WebLinkExtension",
- "symfony/yaml": "For using the YamlExtension"
- },
"type": "symfony-bridge",
"autoload": {
"psr-4": {
@@ -5149,7 +4987,7 @@
"description": "Provides integration for Twig with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bridge/tree/v5.4.22"
+ "source": "https://github.com/symfony/twig-bridge/tree/v6.3.2"
},
"funding": [
{
@@ -5165,42 +5003,38 @@
"type": "tidelift"
}
],
- "time": "2023-03-31T08:28:44+00:00"
+ "time": "2023-07-20T16:42:33+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v5.4.25",
+ "version": "v6.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "82269f73c0f0f9859ab9b6900eebacbe54954ede"
+ "reference": "2027be14f8ae8eae999ceadebcda5b4909b81d45"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/82269f73c0f0f9859ab9b6900eebacbe54954ede",
- "reference": "82269f73c0f0f9859ab9b6900eebacbe54954ede",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2027be14f8ae8eae999ceadebcda5b4909b81d45",
+ "reference": "2027be14f8ae8eae999ceadebcda5b4909b81d45",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/console": "<4.4"
+ "symfony/console": "<5.4"
},
"require-dev": {
"ext-iconv": "*",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/uid": "^5.1|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/uid": "^5.4|^6.0",
"twig/twig": "^2.13|^3.0.4"
},
- "suggest": {
- "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
- "ext-intl": "To show region name in time zone dump",
- "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
- },
"bin": [
"Resources/bin/var-dump-server"
],
@@ -5237,7 +5071,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.4.25"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.3.4"
},
"funding": [
{
@@ -5253,35 +5087,106 @@
"type": "tidelift"
}
],
- "time": "2023-06-20T20:56:26+00:00"
+ "time": "2023-08-24T14:51:05+00:00"
},
{
- "name": "symfony/yaml",
- "version": "v5.4.23",
+ "name": "symfony/var-exporter",
+ "version": "v6.3.4",
"source": {
"type": "git",
- "url": "https://github.com/symfony/yaml.git",
- "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b"
+ "url": "https://github.com/symfony/var-exporter.git",
+ "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/4cd2e3ea301aadd76a4172756296fe552fb45b0b",
- "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df1f8aac5751871b83d30bf3e2c355770f8f0691",
+ "reference": "df1f8aac5751871b83d30bf3e2c355770f8f0691",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/var-dumper": "^5.4|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\VarExporter\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "clone",
+ "construct",
+ "export",
+ "hydrate",
+ "instantiate",
+ "lazy-loading",
+ "proxy",
+ "serialize"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-exporter/tree/v6.3.4"
+ },
+ "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-08-16T18:14:47+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v6.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/e23292e8c07c85b971b44c1c4b87af52133e2add",
+ "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/console": "<5.3"
+ "symfony/console": "<5.4"
},
"require-dev": {
- "symfony/console": "^5.3|^6.0"
- },
- "suggest": {
- "symfony/console": "For validating YAML files using the lint command"
+ "symfony/console": "^5.4|^6.0"
},
"bin": [
"Resources/bin/yaml-lint"
@@ -5312,7 +5217,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v5.4.23"
+ "source": "https://github.com/symfony/yaml/tree/v6.3.3"
},
"funding": [
{
@@ -5328,20 +5233,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-23T19:33:36+00:00"
+ "time": "2023-07-31T07:08:24+00:00"
},
{
"name": "twig/twig",
- "version": "v3.6.1",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd"
+ "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd",
- "reference": "7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/a0ce373a0ca3bf6c64b9e3e2124aca502ba39554",
+ "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554",
"shasum": ""
},
"require": {
@@ -5351,7 +5256,7 @@
},
"require-dev": {
"psr/container": "^1.0|^2.0",
- "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
+ "symfony/phpunit-bridge": "^5.4.9|^6.3"
},
"type": "library",
"autoload": {
@@ -5387,7 +5292,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.6.1"
+ "source": "https://github.com/twigphp/Twig/tree/v3.7.1"
},
"funding": [
{
@@ -5399,7 +5304,7 @@
"type": "tidelift"
}
],
- "time": "2023-06-08T12:52:13+00:00"
+ "time": "2023-08-28T11:09:02+00:00"
}
],
"packages-dev": [
@@ -5608,30 +5513,30 @@
},
{
"name": "doctrine/instantiator",
- "version": "1.5.0",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^9 || ^11",
+ "doctrine/coding-standard": "^11",
"ext-pdo": "*",
"ext-phar": "*",
- "phpbench/phpbench": "^0.16 || ^1",
- "phpstan/phpstan": "^1.4",
- "phpstan/phpstan-phpunit": "^1",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.30 || ^5.4"
+ "phpbench/phpbench": "^1.2",
+ "phpstan/phpstan": "^1.9.4",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5.27",
+ "vimeo/psalm": "^5.4"
},
"type": "library",
"autoload": {
@@ -5658,7 +5563,7 @@
],
"support": {
"issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
+ "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
},
"funding": [
{
@@ -5674,67 +5579,7 @@
"type": "tidelift"
}
],
- "time": "2022-12-30T00:15:36+00:00"
- },
- {
- "name": "fabpot/goutte",
- "version": "v3.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/FriendsOfPHP/Goutte.git",
- "reference": "80a23b64f44d54dd571d114c473d9d7e9ed84ca5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/80a23b64f44d54dd571d114c473d9d7e9ed84ca5",
- "reference": "80a23b64f44d54dd571d114c473d9d7e9ed84ca5",
- "shasum": ""
- },
- "require": {
- "guzzlehttp/guzzle": "^6.0",
- "php": ">=7.1.3",
- "symfony/browser-kit": "^4.4|^5.0",
- "symfony/css-selector": "^4.4|^5.0",
- "symfony/dom-crawler": "^4.4|^5.0"
- },
- "require-dev": {
- "symfony/phpunit-bridge": "^5.0"
- },
- "type": "application",
- "extra": {
- "branch-alias": {
- "dev-master": "3.3-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Goutte\\": "Goutte"
- },
- "exclude-from-classmap": [
- "Goutte/Tests"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- }
- ],
- "description": "A simple PHP Web Scraper",
- "homepage": "https://github.com/FriendsOfPHP/Goutte",
- "keywords": [
- "scraper"
- ],
- "support": {
- "issues": "https://github.com/FriendsOfPHP/Goutte/issues",
- "source": "https://github.com/FriendsOfPHP/Goutte/tree/v3.3.1"
- },
- "abandoned": "symfony/browser-kit",
- "time": "2020-11-01T09:30:18+00:00"
+ "time": "2022-12-30T00:23:10+00:00"
},
{
"name": "felixfbecker/advanced-json-rpc",
@@ -5839,26 +5684,27 @@
},
{
"name": "laravel/homestead",
- "version": "v10.17.0",
+ "version": "v14.4.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/homestead.git",
- "reference": "a56135e7ff057ad46a005b67ff98a8316403def0"
+ "reference": "63065d73e93310464a1d5026f588f21a02892c2a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/homestead/zipball/a56135e7ff057ad46a005b67ff98a8316403def0",
- "reference": "a56135e7ff057ad46a005b67ff98a8316403def0",
+ "url": "https://api.github.com/repos/laravel/homestead/zipball/63065d73e93310464a1d5026f588f21a02892c2a",
+ "reference": "63065d73e93310464a1d5026f588f21a02892c2a",
"shasum": ""
},
"require": {
- "php": "^7.1",
- "symfony/console": "~3.0||~4.0||~5.0",
- "symfony/process": "~3.0||~4.0||~5.0",
- "symfony/yaml": "~3.0||~4.0||~5.0"
+ "php": "^8.0 || <8.3",
+ "symfony/console": "^5.0 || ^6.0",
+ "symfony/process": "^5.0 || ^6.0",
+ "symfony/yaml": "^5.0 || ^6.0"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "dms/phpunit-arraysubset-asserts": "^0.2.1",
+ "phpunit/phpunit": "^9.5"
},
"bin": [
"bin/homestead"
@@ -5877,40 +5723,111 @@
{
"name": "Taylor Otwell",
"email": "taylor@laravel.com"
+ },
+ {
+ "name": "Joe Ferguson",
+ "email": "joe@joeferguson.me"
}
],
"description": "A virtual machine for web artisans.",
"support": {
"issues": "https://github.com/laravel/homestead/issues",
- "source": "https://github.com/laravel/homestead/tree/v10.17.0"
+ "source": "https://github.com/laravel/homestead/tree/v14.4.2"
},
- "time": "2020-12-01T00:47:27+00:00"
+ "time": "2023-08-22T18:07:00+00:00"
},
{
- "name": "misantron/dbunit",
- "version": "5.2.1",
+ "name": "masterminds/html5",
+ "version": "2.8.1",
"source": {
"type": "git",
- "url": "https://github.com/misantron/dbunit.git",
- "reference": "2b68c5d1de61b8748cbcef610b939f02a7b9f453"
+ "url": "https://github.com/Masterminds/html5-php.git",
+ "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/misantron/dbunit/zipball/2b68c5d1de61b8748cbcef610b939f02a7b9f453",
- "reference": "2b68c5d1de61b8748cbcef610b939f02a7b9f453",
+ "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": "misantron/dbunit",
+ "version": "5.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/misantron/dbunit.git",
+ "reference": "e2154eefcd82f02ad364c724b074f749065147b1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/misantron/dbunit/zipball/e2154eefcd82f02ad364c724b074f749065147b1",
+ "reference": "e2154eefcd82f02ad364c724b074f749065147b1",
"shasum": ""
},
"require": {
"ext-pdo": "*",
- "php": "^7.2 || ^8.0",
- "phpunit/phpunit": "^8.5 || ^9.2",
- "symfony/yaml": "^4.4 || ^5.0 || ^6.0"
+ "php": "^7.4 || ^8.0",
+ "phpunit/phpunit": "^9.5 || ^10.2",
+ "symfony/polyfill-php80": "^1.27",
+ "symfony/yaml": "^5.4 || ^6.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^2.18 || ^3.3",
- "php-coveralls/php-coveralls": "^2.5",
- "phpstan/phpstan": "^1.2",
- "squizlabs/php_codesniffer": "^3.6"
+ "phpstan/extension-installer": "^1.3",
+ "phpstan/phpstan": "^1.10",
+ "symplify/easy-coding-standard": "^12.0"
},
"type": "library",
"autoload": {
@@ -5929,7 +5846,7 @@
"role": "Developer"
}
],
- "description": "DbUnit fork supporting PHPUnit 8/9",
+ "description": "DbUnit fork supporting PHPUnit 9/10",
"keywords": [
"database",
"dbUnit",
@@ -5937,9 +5854,9 @@
],
"support": {
"issues": "https://github.com/misantron/dbunit/issues",
- "source": "https://github.com/misantron/dbunit/tree/5.2.1"
+ "source": "https://github.com/misantron/dbunit/tree/5.3.0"
},
- "time": "2021-12-04T11:15:07+00:00"
+ "time": "2023-08-17T17:40:54+00:00"
},
{
"name": "myclabs/deep-copy",
@@ -6053,16 +5970,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.16.0",
+ "version": "v4.17.1",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "19526a33fb561ef417e822e85f08a00db4059c17"
+ "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17",
- "reference": "19526a33fb561ef417e822e85f08a00db4059c17",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
+ "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
"shasum": ""
},
"require": {
@@ -6103,9 +6020,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1"
},
- "time": "2023-06-25T14:52:30+00:00"
+ "time": "2023-08-13T19:53:39+00:00"
},
{
"name": "openlss/lib-array2xml",
@@ -6495,25 +6412,33 @@
},
{
"name": "phpdocumentor/type-resolver",
- "version": "1.6.1",
+ "version": "1.7.3",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "77a32518733312af16a44300404e945338981de3"
+ "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
- "reference": "77a32518733312af16a44300404e945338981de3",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419",
+ "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0"
+ "doctrine/deprecations": "^1.0",
+ "php": "^7.4 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0",
+ "phpstan/phpdoc-parser": "^1.13"
},
"require-dev": {
"ext-tokenizer": "*",
- "psalm/phar": "^4.8"
+ "phpbench/phpbench": "^1.2",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.13.9",
+ "vimeo/psalm": "^4.25"
},
"type": "library",
"extra": {
@@ -6539,22 +6464,69 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3"
},
- "time": "2022-03-15T21:29:03+00:00"
+ "time": "2023-08-12T11:01:26+00:00"
},
{
- "name": "phpunit/php-code-coverage",
- "version": "9.2.26",
+ "name": "phpstan/phpdoc-parser",
+ "version": "1.24.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1"
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1",
- "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01",
+ "reference": "9f854d275c2dbf84915a5c0ec9a2d17d2cd86b01",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^2.0",
+ "nikic/php-parser": "^4.15",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.5",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "symfony/process": "^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\PhpDocParser\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPDoc parser with support for nullable, intersection and generic types",
+ "support": {
+ "issues": "https://github.com/phpstan/phpdoc-parser/issues",
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.1"
+ },
+ "time": "2023-09-18T12:18:02+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.29",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76",
+ "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76",
"shasum": ""
},
"require": {
@@ -6610,7 +6582,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26"
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29"
},
"funding": [
{
@@ -6618,7 +6591,7 @@
"type": "github"
}
],
- "time": "2023-03-06T12:58:08+00:00"
+ "time": "2023-09-19T04:57:46+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -6863,16 +6836,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.6.9",
+ "version": "9.6.13",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "a9aceaf20a682aeacf28d582654a1670d8826778"
+ "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a9aceaf20a682aeacf28d582654a1670d8826778",
- "reference": "a9aceaf20a682aeacf28d582654a1670d8826778",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be",
+ "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be",
"shasum": ""
},
"require": {
@@ -6887,7 +6860,7 @@
"phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
"php": ">=7.3",
- "phpunit/php-code-coverage": "^9.2.13",
+ "phpunit/php-code-coverage": "^9.2.28",
"phpunit/php-file-iterator": "^3.0.5",
"phpunit/php-invoker": "^3.1.1",
"phpunit/php-text-template": "^2.0.3",
@@ -6946,7 +6919,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.9"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13"
},
"funding": [
{
@@ -6962,7 +6935,7 @@
"type": "tidelift"
}
],
- "time": "2023-06-11T06:13:56+00:00"
+ "time": "2023-09-19T05:39:22+00:00"
},
{
"name": "psalm/plugin-symfony",
@@ -7535,16 +7508,16 @@
},
{
"name": "sebastian/global-state",
- "version": "5.0.5",
+ "version": "5.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
+ "reference": "bde739e7565280bda77be70044ac1047bc007e34"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
+ "reference": "bde739e7565280bda77be70044ac1047bc007e34",
"shasum": ""
},
"require": {
@@ -7587,7 +7560,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6"
},
"funding": [
{
@@ -7595,7 +7568,7 @@
"type": "github"
}
],
- "time": "2022-02-14T08:28:10+00:00"
+ "time": "2023-08-02T09:26:13+00:00"
},
{
"name": "sebastian/lines-of-code",
@@ -8052,31 +8025,27 @@
},
{
"name": "symfony/browser-kit",
- "version": "v5.4.21",
+ "version": "v6.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "a866ca7e396f15d7efb6d74a8a7d364d4e05b704"
+ "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/a866ca7e396f15d7efb6d74a8a7d364d4e05b704",
- "reference": "a866ca7e396f15d7efb6d74a8a7d364d4e05b704",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/ca4a988488f61ac18f8f845445eabdd36f89aa8d",
+ "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/dom-crawler": "^4.4|^5.0|^6.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/dom-crawler": "^5.4|^6.0"
},
"require-dev": {
- "symfony/css-selector": "^4.4|^5.0|^6.0",
- "symfony/http-client": "^4.4|^5.0|^6.0",
- "symfony/mime": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/process": ""
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/mime": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -8104,7 +8073,7 @@
"description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/browser-kit/tree/v5.4.21"
+ "source": "https://github.com/symfony/browser-kit/tree/v6.3.2"
},
"funding": [
{
@@ -8120,62 +8089,61 @@
"type": "tidelift"
}
],
- "time": "2023-02-14T08:03:56+00:00"
+ "time": "2023-07-06T06:56:43+00:00"
},
{
"name": "symfony/cache",
- "version": "v5.4.25",
+ "version": "v6.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
- "reference": "e2013521c0f07473ae69a01fce0af78fc3ec0f23"
+ "reference": "e60d00b4f633efa4c1ef54e77c12762d9073e7b3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/e2013521c0f07473ae69a01fce0af78fc3ec0f23",
- "reference": "e2013521c0f07473ae69a01fce0af78fc3ec0f23",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/e60d00b4f633efa4c1ef54e77c12762d9073e7b3",
+ "reference": "e60d00b4f633efa4c1ef54e77c12762d9073e7b3",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/cache": "^1.0|^2.0",
+ "php": ">=8.1",
+ "psr/cache": "^2.0|^3.0",
"psr/log": "^1.1|^2|^3",
- "symfony/cache-contracts": "^1.1.7|^2",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/var-exporter": "^4.4|^5.0|^6.0"
+ "symfony/cache-contracts": "^2.5|^3",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/var-exporter": "^6.2.10"
},
"conflict": {
"doctrine/dbal": "<2.13.1",
- "symfony/dependency-injection": "<4.4",
- "symfony/http-kernel": "<4.4",
- "symfony/var-dumper": "<4.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-kernel": "<5.4",
+ "symfony/var-dumper": "<5.4"
},
"provide": {
- "psr/cache-implementation": "1.0|2.0",
- "psr/simple-cache-implementation": "1.0|2.0",
- "symfony/cache-implementation": "1.0|2.0"
+ "psr/cache-implementation": "2.0|3.0",
+ "psr/simple-cache-implementation": "1.0|2.0|3.0",
+ "symfony/cache-implementation": "1.1|2.0|3.0"
},
"require-dev": {
"cache/integration-tests": "dev-master",
- "doctrine/cache": "^1.6|^2.0",
"doctrine/dbal": "^2.13.1|^3.0",
- "predis/predis": "^1.1",
- "psr/simple-cache": "^1.0|^2.0",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/http-kernel": "^4.4|^5.0|^6.0",
- "symfony/messenger": "^4.4|^5.0|^6.0",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ "predis/predis": "^1.1|^2.0",
+ "psr/simple-cache": "^1.0|^2.0|^3.0",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/messenger": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Cache\\": ""
},
+ "classmap": [
+ "Traits/ValueWrapper.php"
+ ],
"exclude-from-classmap": [
"/Tests/"
]
@@ -8201,7 +8169,7 @@
"psr6"
],
"support": {
- "source": "https://github.com/symfony/cache/tree/v5.4.25"
+ "source": "https://github.com/symfony/cache/tree/v6.3.4"
},
"funding": [
{
@@ -8217,33 +8185,30 @@
"type": "tidelift"
}
],
- "time": "2023-06-22T08:06:06+00:00"
+ "time": "2023-08-05T09:10:27+00:00"
},
{
"name": "symfony/cache-contracts",
- "version": "v2.5.2",
+ "version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache-contracts.git",
- "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc"
+ "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
- "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ad945640ccc0ae6e208bcea7d7de4b39b569896b",
+ "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/cache": "^1.0|^2.0|^3.0"
- },
- "suggest": {
- "symfony/cache-implementation": ""
+ "php": ">=8.1",
+ "psr/cache": "^3.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -8280,7 +8245,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/cache-contracts/tree/v3.3.0"
},
"funding": [
{
@@ -8296,25 +8261,24 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:53:40+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v5.4.21",
+ "version": "v6.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "95f3c7468db1da8cc360b24fa2a26e7cefcb355d"
+ "reference": "883d961421ab1709877c10ac99451632a3d6fa57"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/95f3c7468db1da8cc360b24fa2a26e7cefcb355d",
- "reference": "95f3c7468db1da8cc360b24fa2a26e7cefcb355d",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/883d961421ab1709877c10ac99451632a3d6fa57",
+ "reference": "883d961421ab1709877c10ac99451632a3d6fa57",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"type": "library",
"autoload": {
@@ -8346,7 +8310,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v5.4.21"
+ "source": "https://github.com/symfony/css-selector/tree/v6.3.2"
},
"funding": [
{
@@ -8362,38 +8326,30 @@
"type": "tidelift"
}
],
- "time": "2023-02-14T08:03:56+00:00"
+ "time": "2023-07-12T16:00:22+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v5.4.25",
+ "version": "v6.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "d2aefa5a7acc5511422792931d14d1be96fe9fea"
+ "reference": "3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/d2aefa5a7acc5511422792931d14d1be96fe9fea",
- "reference": "d2aefa5a7acc5511422792931d14d1be96fe9fea",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1",
+ "reference": "3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "masterminds/html5": "^2.6",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "masterminds/html5": "<2.6"
+ "symfony/polyfill-mbstring": "~1.0"
},
"require-dev": {
- "masterminds/html5": "^2.6",
- "symfony/css-selector": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/css-selector": ""
+ "symfony/css-selector": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -8421,7 +8377,7 @@
"description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v5.4.25"
+ "source": "https://github.com/symfony/dom-crawler/tree/v6.3.4"
},
"funding": [
{
@@ -8437,114 +8393,108 @@
"type": "tidelift"
}
],
- "time": "2023-06-05T08:05:41+00:00"
+ "time": "2023-08-01T07:43:40+00:00"
},
{
"name": "symfony/framework-bundle",
- "version": "v5.4.25",
+ "version": "v6.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
- "reference": "c9d65bdab4a26e110ec4c87b3aa5de108c0f860d"
+ "reference": "f822f54ff05cd88878910b4559f66c12176d952c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/c9d65bdab4a26e110ec4c87b3aa5de108c0f860d",
- "reference": "c9d65bdab4a26e110ec4c87b3aa5de108c0f860d",
+ "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/f822f54ff05cd88878910b4559f66c12176d952c",
+ "reference": "f822f54ff05cd88878910b4559f66c12176d952c",
"shasum": ""
},
"require": {
+ "composer-runtime-api": ">=2.1",
"ext-xml": "*",
- "php": ">=7.2.5",
- "symfony/cache": "^5.2|^6.0",
- "symfony/config": "^5.3|^6.0",
- "symfony/dependency-injection": "^5.4.5|^6.0.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/error-handler": "^4.4.1|^5.0.1|^6.0",
- "symfony/event-dispatcher": "^5.1|^6.0",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^5.4.24|^6.2.11",
- "symfony/http-kernel": "^5.4|^6.0",
+ "php": ">=8.1",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/config": "^6.1",
+ "symfony/dependency-injection": "^6.3.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/error-handler": "^6.1",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/http-foundation": "^6.3",
+ "symfony/http-kernel": "^6.3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/polyfill-php81": "^1.22",
- "symfony/routing": "^5.3|^6.0"
+ "symfony/routing": "^5.4|^6.0"
},
"conflict": {
"doctrine/annotations": "<1.13.1",
- "doctrine/cache": "<1.11",
"doctrine/persistence": "<1.3",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/asset": "<5.3",
- "symfony/console": "<5.2.5",
- "symfony/dom-crawler": "<4.4",
- "symfony/dotenv": "<5.1",
- "symfony/form": "<5.2",
- "symfony/http-client": "<4.4",
- "symfony/lock": "<4.4",
- "symfony/mailer": "<5.2",
- "symfony/messenger": "<5.4",
- "symfony/mime": "<4.4",
- "symfony/property-access": "<5.3",
- "symfony/property-info": "<4.4",
- "symfony/security-csrf": "<5.3",
- "symfony/serializer": "<5.2",
- "symfony/service-contracts": ">=3.0",
- "symfony/stopwatch": "<4.4",
- "symfony/translation": "<5.3",
- "symfony/twig-bridge": "<4.4",
- "symfony/twig-bundle": "<4.4",
- "symfony/validator": "<5.3.11",
- "symfony/web-profiler-bundle": "<4.4",
- "symfony/workflow": "<5.2"
+ "symfony/asset": "<5.4",
+ "symfony/clock": "<6.3",
+ "symfony/console": "<5.4",
+ "symfony/dom-crawler": "<6.3",
+ "symfony/dotenv": "<5.4",
+ "symfony/form": "<5.4",
+ "symfony/http-client": "<6.3",
+ "symfony/lock": "<5.4",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<6.3",
+ "symfony/mime": "<6.2",
+ "symfony/property-access": "<5.4",
+ "symfony/property-info": "<5.4",
+ "symfony/security-core": "<5.4",
+ "symfony/security-csrf": "<5.4",
+ "symfony/serializer": "<6.3",
+ "symfony/stopwatch": "<5.4",
+ "symfony/translation": "<6.2.8",
+ "symfony/twig-bridge": "<5.4",
+ "symfony/twig-bundle": "<5.4",
+ "symfony/validator": "<6.3",
+ "symfony/web-profiler-bundle": "<5.4",
+ "symfony/workflow": "<5.4"
},
"require-dev": {
"doctrine/annotations": "^1.13.1|^2",
- "doctrine/cache": "^1.11|^2.0",
"doctrine/persistence": "^1.3|^2|^3",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/asset": "^5.3|^6.0",
+ "symfony/asset": "^5.4|^6.0",
+ "symfony/asset-mapper": "^6.3",
"symfony/browser-kit": "^5.4|^6.0",
+ "symfony/clock": "^6.2",
"symfony/console": "^5.4.9|^6.0.9",
- "symfony/css-selector": "^4.4|^5.0|^6.0",
- "symfony/dom-crawler": "^4.4.30|^5.3.7|^6.0",
- "symfony/dotenv": "^5.1|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/form": "^5.2|^6.0",
- "symfony/http-client": "^4.4|^5.0|^6.0",
- "symfony/lock": "^4.4|^5.0|^6.0",
- "symfony/mailer": "^5.2|^6.0",
- "symfony/messenger": "^5.4|^6.0",
- "symfony/mime": "^4.4|^5.0|^6.0",
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/dom-crawler": "^6.3",
+ "symfony/dotenv": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/form": "^5.4|^6.0",
+ "symfony/html-sanitizer": "^6.1",
+ "symfony/http-client": "^6.3",
+ "symfony/lock": "^5.4|^6.0",
+ "symfony/mailer": "^5.4|^6.0",
+ "symfony/messenger": "^6.3",
+ "symfony/mime": "^6.2",
"symfony/notifier": "^5.4|^6.0",
"symfony/polyfill-intl-icu": "~1.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/property-info": "^4.4|^5.0|^6.0",
- "symfony/rate-limiter": "^5.2|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/property-info": "^5.4|^6.0",
+ "symfony/rate-limiter": "^5.4|^6.0",
+ "symfony/scheduler": "^6.3",
"symfony/security-bundle": "^5.4|^6.0",
- "symfony/serializer": "^5.4|^6.0",
- "symfony/stopwatch": "^4.4|^5.0|^6.0",
- "symfony/string": "^5.0|^6.0",
- "symfony/translation": "^5.3|^6.0",
- "symfony/twig-bundle": "^4.4|^5.0|^6.0",
- "symfony/validator": "^5.3.11|^6.0",
- "symfony/web-link": "^4.4|^5.0|^6.0",
- "symfony/workflow": "^5.2|^6.0",
- "symfony/yaml": "^4.4|^5.0|^6.0",
+ "symfony/semaphore": "^5.4|^6.0",
+ "symfony/serializer": "^6.3",
+ "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/string": "^5.4|^6.0",
+ "symfony/translation": "^6.2.8",
+ "symfony/twig-bundle": "^5.4|^6.0",
+ "symfony/uid": "^5.4|^6.0",
+ "symfony/validator": "^6.3",
+ "symfony/web-link": "^5.4|^6.0",
+ "symfony/workflow": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0",
"twig/twig": "^2.10|^3.0"
},
- "suggest": {
- "ext-apcu": "For best performance of the system caches",
- "symfony/console": "For using the console commands",
- "symfony/form": "For using forms",
- "symfony/property-info": "For using the property_info service",
- "symfony/serializer": "For using the serializer service",
- "symfony/validator": "For using validation",
- "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering",
- "symfony/yaml": "For using the debug:config and lint:yaml commands"
- },
"type": "symfony-bundle",
"autoload": {
"psr-4": {
@@ -8571,7 +8521,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/v5.4.25"
+ "source": "https://github.com/symfony/framework-bundle/tree/v6.3.4"
},
"funding": [
{
@@ -8587,33 +8537,57 @@
"type": "tidelift"
}
],
- "time": "2023-06-15T07:35:04+00:00"
+ "time": "2023-08-16T18:04:38+00:00"
},
{
- "name": "symfony/var-exporter",
- "version": "v5.4.21",
+ "name": "symfony/http-client",
+ "version": "v6.3.2",
"source": {
"type": "git",
- "url": "https://github.com/symfony/var-exporter.git",
- "reference": "be74908a6942fdd331554b3cec27ff41b45ccad4"
+ "url": "https://github.com/symfony/http-client.git",
+ "reference": "15f9f4bad62bfcbe48b5dedd866f04a08fc7ff00"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/be74908a6942fdd331554b3cec27ff41b45ccad4",
- "reference": "be74908a6942fdd331554b3cec27ff41b45ccad4",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/15f9f4bad62bfcbe48b5dedd866f04a08fc7ff00",
+ "reference": "15f9f4bad62bfcbe48b5dedd866f04a08fc7ff00",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-client-contracts": "^3",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "php-http/discovery": "<1.15",
+ "symfony/http-foundation": "<6.3"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "1.0",
+ "symfony/http-client-implementation": "3.0"
},
"require-dev": {
- "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0"
+ "amphp/amp": "^2.5",
+ "amphp/http-client": "^4.2.1",
+ "amphp/http-tunnel": "^1.0",
+ "amphp/socket": "^1.1",
+ "guzzlehttp/promises": "^1.4",
+ "nyholm/psr7": "^1.0",
+ "php-http/httplug": "^1.0|^2.0",
+ "psr/http-client": "^1.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/stopwatch": "^5.4|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\VarExporter\\": ""
+ "Symfony\\Component\\HttpClient\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -8633,18 +8607,13 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
"homepage": "https://symfony.com",
"keywords": [
- "clone",
- "construct",
- "export",
- "hydrate",
- "instantiate",
- "serialize"
+ "http"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v5.4.21"
+ "source": "https://github.com/symfony/http-client/tree/v6.3.2"
},
"funding": [
{
@@ -8660,7 +8629,85 @@
"type": "tidelift"
}
],
- "time": "2023-02-21T19:46:44+00:00"
+ "time": "2023-07-05T08:41:27+00:00"
+ },
+ {
+ "name": "symfony/http-client-contracts",
+ "version": "v3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client-contracts.git",
+ "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb",
+ "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to HTTP clients",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client-contracts/tree/v3.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-23T14:45:45+00:00"
},
{
"name": "theseer/tokenizer",
@@ -8936,14 +8983,14 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": "^7.3 || ^8.0",
+ "php": "^8.1",
"ext-json": "*",
"ext-mbstring": "*",
"ext-pdo": "*"
},
"platform-dev": [],
"platform-overrides": {
- "php": "7.3.0"
+ "php": "8.1.0"
},
"plugin-api-version": "2.3.0"
}
diff --git a/phpBB/config/default/container/services.yml b/phpBB/config/default/container/services.yml
index aa997b8360..59d52073f9 100644
--- a/phpBB/config/default/container/services.yml
+++ b/phpBB/config/default/container/services.yml
@@ -46,7 +46,7 @@ services:
- '@cache.driver'
- '@config'
- '@dbal.conn'
- - '@dispatcher'
+ - '@event_dispatcher'
- '%core.root_path%'
- '%core.php_ext%'
@@ -97,7 +97,7 @@ services:
- '@config'
- '@cron.manager'
- '@dbal.conn'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '@request'
- '@routing.helper'
@@ -132,7 +132,7 @@ services:
- '@cache'
- '@config'
- '@language'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@path_helper'
- '@user'
@@ -142,7 +142,7 @@ services:
- '@dbal.conn'
- '@user'
- '@auth'
- - '@dispatcher'
+ - '@event_dispatcher'
- '%core.root_path%'
- '%core.adm_relative_path%'
- '%core.php_ext%'
diff --git a/phpBB/config/default/container/services_attachment.yml b/phpBB/config/default/container/services_attachment.yml
index c54b847685..48a8c409af 100644
--- a/phpBB/config/default/container/services_attachment.yml
+++ b/phpBB/config/default/container/services_attachment.yml
@@ -5,7 +5,7 @@ services:
arguments:
- '@config'
- '@dbal.conn'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@attachment.resync'
- '@storage.attachment'
@@ -32,7 +32,7 @@ services:
- '@config'
- '@files.upload'
- '@language'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@plupload'
- '@storage.attachment'
- '@filesystem.temp'
diff --git a/phpBB/config/default/container/services_auth.yml b/phpBB/config/default/container/services_auth.yml
index 6c9d224ad2..2276f4a4f3 100644
--- a/phpBB/config/default/container/services_auth.yml
+++ b/phpBB/config/default/container/services_auth.yml
@@ -52,7 +52,7 @@ services:
- '@config'
- '@dbal.conn'
- '@auth.provider.db'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '@request'
- '@auth.provider.oauth.service_collection'
diff --git a/phpBB/config/default/container/services_avatar.yml b/phpBB/config/default/container/services_avatar.yml
index cec4dc771f..e8048278c7 100644
--- a/phpBB/config/default/container/services_avatar.yml
+++ b/phpBB/config/default/container/services_avatar.yml
@@ -3,14 +3,14 @@ services:
class: phpbb\avatar\manager
arguments:
- '@config'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@avatar.driver_collection'
avatar.helper:
class: phpbb\avatar\helper
arguments:
- '@config'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '@avatar.manager'
- '@path_helper'
@@ -61,7 +61,7 @@ services:
- '%core.php_ext%'
- '@storage.avatar'
- '@path_helper'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@files.factory'
- '@php_ini'
calls:
diff --git a/phpBB/config/default/container/services_content.yml b/phpBB/config/default/container/services_content.yml
index f26c970021..d290974ff7 100644
--- a/phpBB/config/default/container/services_content.yml
+++ b/phpBB/config/default/container/services_content.yml
@@ -4,7 +4,7 @@ services:
arguments:
- '@auth'
- '@config'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@dbal.conn'
- '@user'
- '%core.root_path%'
@@ -33,7 +33,7 @@ services:
- '@config_text'
- '@dbal.conn'
- '@user'
- - '@dispatcher'
+ - '@event_dispatcher'
- '%core.root_path%'
- '%core.php_ext%'
@@ -63,7 +63,7 @@ services:
- '@template'
- '@user'
- '@controller.helper'
- - '@dispatcher'
+ - '@event_dispatcher'
viewonline_helper:
class: phpbb\viewonline_helper
diff --git a/phpBB/config/default/container/services_event.yml b/phpBB/config/default/container/services_event.yml
index 5696275e64..ed488cd56f 100644
--- a/phpBB/config/default/container/services_event.yml
+++ b/phpBB/config/default/container/services_event.yml
@@ -1,5 +1,5 @@
services:
- dispatcher:
+ event_dispatcher:
class: phpbb\event\dispatcher
arguments:
- '@service_container'
diff --git a/phpBB/config/default/container/services_feed.yml b/phpBB/config/default/container/services_feed.yml
index f32d0cb4d3..80caf546df 100644
--- a/phpBB/config/default/container/services_feed.yml
+++ b/phpBB/config/default/container/services_feed.yml
@@ -11,7 +11,7 @@ services:
- '@feed.helper'
- '@user'
- '@auth'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '%core.php_ext%'
@@ -36,7 +36,7 @@ services:
- '@user'
- '@auth'
- '@content.visibility'
- - '@dispatcher'
+ - '@event_dispatcher'
- '%core.php_ext%'
feed.forums:
@@ -50,7 +50,7 @@ services:
- '@user'
- '@auth'
- '@content.visibility'
- - '@dispatcher'
+ - '@event_dispatcher'
- '%core.php_ext%'
feed.news:
@@ -64,7 +64,7 @@ services:
- '@user'
- '@auth'
- '@content.visibility'
- - '@dispatcher'
+ - '@event_dispatcher'
- '%core.php_ext%'
feed.overall:
@@ -78,7 +78,7 @@ services:
- '@user'
- '@auth'
- '@content.visibility'
- - '@dispatcher'
+ - '@event_dispatcher'
- '%core.php_ext%'
feed.quote_helper:
@@ -96,7 +96,7 @@ services:
- '@user'
- '@auth'
- '@content.visibility'
- - '@dispatcher'
+ - '@event_dispatcher'
- '%core.php_ext%'
feed.topics:
@@ -110,7 +110,7 @@ services:
- '@user'
- '@auth'
- '@content.visibility'
- - '@dispatcher'
+ - '@event_dispatcher'
- '%core.php_ext%'
feed.topics_active:
@@ -124,5 +124,5 @@ services:
- '@user'
- '@auth'
- '@content.visibility'
- - '@dispatcher'
+ - '@event_dispatcher'
- '%core.php_ext%'
diff --git a/phpBB/config/default/container/services_help.yml b/phpBB/config/default/container/services_help.yml
index 1bff001523..87be25fbe5 100644
--- a/phpBB/config/default/container/services_help.yml
+++ b/phpBB/config/default/container/services_help.yml
@@ -2,7 +2,7 @@ services:
phpbb.help.manager:
class: phpbb\help\manager
arguments:
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '@template'
diff --git a/phpBB/config/default/container/services_http.yml b/phpBB/config/default/container/services_http.yml
index 49cfbf5b84..6e19a83397 100644
--- a/phpBB/config/default/container/services_http.yml
+++ b/phpBB/config/default/container/services_http.yml
@@ -2,7 +2,7 @@ services:
http_kernel:
class: Symfony\Component\HttpKernel\HttpKernel
arguments:
- - '@dispatcher'
+ - '@event_dispatcher'
- '@controller.resolver'
- '@request_stack'
diff --git a/phpBB/config/default/container/services_notification.yml b/phpBB/config/default/container/services_notification.yml
index 65552b1e13..a037ad7352 100644
--- a/phpBB/config/default/container/services_notification.yml
+++ b/phpBB/config/default/container/services_notification.yml
@@ -6,7 +6,7 @@ services:
- '@notification.method_collection'
- '@service_container'
- '@user_loader'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@dbal.conn'
- '@cache'
- '@language'
diff --git a/phpBB/config/default/container/services_profilefield.yml b/phpBB/config/default/container/services_profilefield.yml
index aca8b65db6..7a0bbf43bd 100644
--- a/phpBB/config/default/container/services_profilefield.yml
+++ b/phpBB/config/default/container/services_profilefield.yml
@@ -6,7 +6,7 @@ services:
- '@config_text'
- '@dbal.conn'
- '@dbal.tools'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '@log'
- '@template'
diff --git a/phpBB/config/default/container/services_report.yml b/phpBB/config/default/container/services_report.yml
index 2c5b3bf3d5..0ccfd9cde2 100644
--- a/phpBB/config/default/container/services_report.yml
+++ b/phpBB/config/default/container/services_report.yml
@@ -35,7 +35,7 @@ services:
shared: false
arguments:
- '@dbal.conn.driver'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@config'
- '@auth'
- '@user'
@@ -46,7 +46,7 @@ services:
shared: false
arguments:
- '@dbal.conn.driver'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@config'
- '@auth'
- '@user'
diff --git a/phpBB/config/default/container/services_search.yml b/phpBB/config/default/container/services_search.yml
index fceb254eaa..812e41a1f2 100644
--- a/phpBB/config/default/container/services_search.yml
+++ b/phpBB/config/default/container/services_search.yml
@@ -12,7 +12,7 @@ services:
arguments:
- '@config'
- '@dbal.conn'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '@user'
- '%tables.search_results%'
@@ -26,7 +26,7 @@ services:
arguments:
- '@config'
- '@dbal.conn'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '@user'
- '%tables.search_results%'
@@ -42,7 +42,7 @@ services:
arguments:
- '@config'
- '@dbal.conn'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '@user'
- '%tables.search_results%'
@@ -58,7 +58,7 @@ services:
- '@config'
- '@dbal.conn'
- '@dbal.tools'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '@log'
- '@user'
diff --git a/phpBB/config/default/container/services_storage.yml b/phpBB/config/default/container/services_storage.yml
index c9caab3f84..4ef28ccf3b 100644
--- a/phpBB/config/default/container/services_storage.yml
+++ b/phpBB/config/default/container/services_storage.yml
@@ -101,7 +101,7 @@ services:
- '@config'
- '@content.visibility'
- '@dbal.conn'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@language'
- '@request'
- '@storage.attachment'
diff --git a/phpBB/config/default/container/services_text_formatter.yml b/phpBB/config/default/container/services_text_formatter.yml
index 3d44e87948..182a2afa46 100644
--- a/phpBB/config/default/container/services_text_formatter.yml
+++ b/phpBB/config/default/container/services_text_formatter.yml
@@ -41,7 +41,7 @@ services:
arguments:
- '@text_formatter.data_access'
- '@cache.driver'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@config'
- '@text_formatter.s9e.link_helper'
- '@log'
@@ -67,7 +67,7 @@ services:
- '@cache.driver'
- '%text_formatter.cache.parser.key%'
- '@text_formatter.s9e.factory'
- - '@dispatcher'
+ - '@event_dispatcher'
text_formatter.s9e.quote_helper:
class: phpbb\textformatter\s9e\quote_helper
@@ -83,7 +83,7 @@ services:
- '%text_formatter.cache.dir%'
- '%text_formatter.cache.renderer.key%'
- '@text_formatter.s9e.factory'
- - '@dispatcher'
+ - '@event_dispatcher'
calls:
- [configure_mention_helper, ['@text_formatter.s9e.mention_helper']]
- [configure_quote_helper, ['@text_formatter.s9e.quote_helper']]
diff --git a/phpBB/config/default/container/services_twig.yml b/phpBB/config/default/container/services_twig.yml
index 8700630a73..7c4e114e8e 100644
--- a/phpBB/config/default/container/services_twig.yml
+++ b/phpBB/config/default/container/services_twig.yml
@@ -11,7 +11,7 @@ services:
- '%core.template.cache_path%'
- '@ext.manager'
- '@template.twig.loader'
- - '@dispatcher'
+ - '@event_dispatcher'
- []
calls:
- [setLexer, ['@template.twig.lexer']]
diff --git a/phpBB/config/default/container/services_ucp.yml b/phpBB/config/default/container/services_ucp.yml
index 861fa4ac75..69ef5ffbf8 100644
--- a/phpBB/config/default/container/services_ucp.yml
+++ b/phpBB/config/default/container/services_ucp.yml
@@ -4,7 +4,7 @@ services:
arguments:
- '@config'
- '@dbal.conn'
- - '@dispatcher'
+ - '@event_dispatcher'
- '@controller.helper'
- '@language'
- '@log'
diff --git a/phpBB/config/default/container/services_user.yml b/phpBB/config/default/container/services_user.yml
index 154e9aebf6..f73333c912 100644
--- a/phpBB/config/default/container/services_user.yml
+++ b/phpBB/config/default/container/services_user.yml
@@ -2,7 +2,7 @@ services:
acl.permissions:
class: phpbb\permissions
arguments:
- - '@dispatcher'
+ - '@event_dispatcher'
- '@user'
user:
diff --git a/phpBB/docs/INSTALL.html b/phpBB/docs/INSTALL.html
index 1e73e19cd9..b175b0799c 100644
--- a/phpBB/docs/INSTALL.html
+++ b/phpBB/docs/INSTALL.html
@@ -147,7 +147,7 @@
Oracle
- PHP 7.3.0+ up to and including PHP 8.2 with support for the database you intend to use.
+ PHP 8.1.0+ up to and including PHP 8.2 with support for the database you intend to use.
The following PHP modules are required:
- json
diff --git a/phpBB/docs/README.html b/phpBB/docs/README.html
index a2355a0e59..966e10020f 100644
--- a/phpBB/docs/README.html
+++ b/phpBB/docs/README.html
@@ -323,11 +323,11 @@
-
phpBB 3.3.x takes advantage of new features added in PHP 7.1. We recommend that you upgrade to the latest stable release of PHP to run phpBB. The minimum version required is PHP 7.1.3 and the maximum supported version is the latest stable version of PHP.
+
phpBB 4.0.x takes advantage of new features added in PHP 8.1. We recommend that you upgrade to the latest stable release of PHP to run phpBB. The minimum version required is PHP 8.1.0 and the maximum supported version is the latest stable version of PHP.
Please remember that running any application on a development (unstable, e.g. a beta release) version of PHP can lead to strange/unexpected results which may appear to be bugs in the application. Therefore, we recommend you upgrade to the newest stable version of PHP before running phpBB. If you are running a development version of PHP please check any bugs you find on a system running a stable release before submitting.
-
This board has been developed and tested under Linux and Windows (amongst others) running Apache using MySQLi 4.1.3, 4.x, 5.x, MariaDB 5.x, PostgreSQL 8.x, Oracle 8 and SQLite 3. Versions of PHP used range from 7.1.3 to 7.2.x and 7.3.x without issues.
+
This board has been developed and tested under Linux and Windows (amongst others) running Apache using MySQLi 4.1.3, 4.x, 5.x, MariaDB 5.x, PostgreSQL 8.x, Oracle 8 and SQLite 3. Versions of PHP used range from 8.1.x to 8.2.x and 8.3.x.
7.i. Notice on PHP security issues
diff --git a/phpBB/includes/compatibility_globals.php b/phpBB/includes/compatibility_globals.php
index 223c8a0120..df152c81ab 100644
--- a/phpBB/includes/compatibility_globals.php
+++ b/phpBB/includes/compatibility_globals.php
@@ -45,7 +45,7 @@ function register_compatibility_globals()
// Instantiate some basic classes
/* @var $phpbb_dispatcher \phpbb\event\dispatcher */
- $phpbb_dispatcher = $phpbb_container->get('dispatcher');
+ $phpbb_dispatcher = $phpbb_container->get('event_dispatcher');
/* @var $request \phpbb\request\request_interface */
$request = $phpbb_container->get('request');
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 379422b819..61a156ae65 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -36,7 +36,7 @@ function gen_rand_string($num_chars = 8)
$output = '';
for ($i = 0; $i < $num_chars; $i++)
{
- $rand = random_int(0, $size-1);
+ $rand = random_int(0, $size - 1);
$output .= $range[$rand];
}
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php
index e82b2168b4..337b6ccab8 100644
--- a/phpBB/includes/message_parser.php
+++ b/phpBB/includes/message_parser.php
@@ -1056,7 +1056,8 @@ class parse_message extends bbcode_firstpass
function __construct($message = '')
{
// Init BBCode UID
- $this->bbcode_uid = substr(base_convert(unique_id(), 16, 36), 0, BBCODE_UID_LEN);
+ $unique_id = preg_replace('/[^0-9a-f]/', '', unique_id());
+ $this->bbcode_uid = substr(base_convert($unique_id, 16, 36), 0, BBCODE_UID_LEN);
$this->message = $message;
}
diff --git a/phpBB/includes/startup.php b/phpBB/includes/startup.php
index 2f4b291213..dac52a025f 100644
--- a/phpBB/includes/startup.php
+++ b/phpBB/includes/startup.php
@@ -23,11 +23,11 @@ $level = E_ALL & ~E_NOTICE & ~E_DEPRECATED;
error_reporting($level);
/**
-* Minimum Requirement: PHP 7.3.0
+* Minimum Requirement: PHP 8.1.0
*/
-if (version_compare(PHP_VERSION, '7.3.0', '<'))
+if (version_compare(PHP_VERSION, '8.1.0', '<'))
{
- die('You are running an unsupported PHP version (' . PHP_VERSION . '). Please upgrade to PHP 7.3.0 or higher before trying to install or update to phpBB 4.0');
+ die('You are running an unsupported PHP version (' . PHP_VERSION . '). Please upgrade to PHP 8.1.0 or higher before trying to install or update to phpBB 4.0');
}
// In PHP 5.3.0 the error level has been raised to E_WARNING which causes problems
diff --git a/phpBB/includes/utf/utf_tools.php b/phpBB/includes/utf/utf_tools.php
index 5a1ca5b6fe..b8c35a5048 100644
--- a/phpBB/includes/utf/utf_tools.php
+++ b/phpBB/includes/utf/utf_tools.php
@@ -1448,17 +1448,22 @@ function utf8_wordwrap($string, $width = 75, $break = "\n", $cut = false)
* @param string $filename The filename basename() should be applied to
* @return string The basenamed filename
*/
-function utf8_basename($filename)
+function utf8_basename($filename): string
{
+ if (!$filename)
+ {
+ return '';
+ }
+
// We always check for forward slash AND backward slash
// because they could be mixed or "sneaked" in. ;)
// You know, never trust user input...
- if (strpos($filename, '/') !== false)
+ if (str_contains($filename, '/'))
{
$filename = utf8_substr($filename, utf8_strrpos($filename, '/') + 1);
}
- if (strpos($filename, '\\') !== false)
+ if (str_contains($filename, '\\'))
{
$filename = utf8_substr($filename, utf8_strrpos($filename, '\\') + 1);
}
diff --git a/phpBB/install/app.php b/phpBB/install/app.php
index 0cb2ead92a..33114eff58 100644
--- a/phpBB/install/app.php
+++ b/phpBB/install/app.php
@@ -47,7 +47,7 @@ $template->set_custom_style(array(
), $paths);
/** @var $phpbb_dispatcher \phpbb\event\dispatcher */
-$phpbb_dispatcher = $phpbb_installer_container->get('dispatcher');
+$phpbb_dispatcher = $phpbb_installer_container->get('event_dispatcher');
/** @var \phpbb\language\language $language */
$language = $phpbb_installer_container->get('language');
diff --git a/phpBB/install/phpbbcli.php b/phpBB/install/phpbbcli.php
index a90762ec85..c13efb604b 100755
--- a/phpBB/install/phpbbcli.php
+++ b/phpBB/install/phpbbcli.php
@@ -50,6 +50,6 @@ $language = $phpbb_installer_container->get('language');
$language->add_lang(array('common', 'acp/common', 'acp/board', 'install', 'posting', 'cli'));
$application = new \phpbb\console\application('phpBB Installer', PHPBB_VERSION, $language, $config);
-$application->setDispatcher($phpbb_installer_container->get('dispatcher'));
+$application->setDispatcher($phpbb_installer_container->get('event_dispatcher'));
$application->register_container_commands($phpbb_installer_container->get('console.installer.command_collection'));
$application->run($input);
diff --git a/phpBB/phpbb/auth/provider/ldap.php b/phpBB/phpbb/auth/provider/ldap.php
index 9daad9e5f6..69c0952f1d 100644
--- a/phpBB/phpbb/auth/provider/ldap.php
+++ b/phpBB/phpbb/auth/provider/ldap.php
@@ -201,7 +201,7 @@ class ldap extends base
1
);
- $ldap_result = @ldap_get_entries($ldap, $search);
+ $ldap_result = $search !== false ? @ldap_get_entries($ldap, $search) : [];
if (is_array($ldap_result) && count($ldap_result) > 1)
{
diff --git a/phpBB/phpbb/config/config.php b/phpBB/phpbb/config/config.php
index 92d6857c32..ae2ce658f2 100644
--- a/phpBB/phpbb/config/config.php
+++ b/phpBB/phpbb/config/config.php
@@ -39,7 +39,7 @@ class config implements \ArrayAccess, \IteratorAggregate, \Countable
*
* @return \ArrayIterator An iterator over all config data
*/
- public function getIterator()
+ public function getIterator(): \ArrayIterator
{
return new \ArrayIterator($this->config);
}
@@ -99,7 +99,7 @@ class config implements \ArrayAccess, \IteratorAggregate, \Countable
*
* @return int Number of config options
*/
- public function count()
+ public function count(): int
{
return count($this->config);
}
diff --git a/phpBB/phpbb/console/application.php b/phpBB/phpbb/console/application.php
index 50443cd646..b7ecd3dff6 100644
--- a/phpBB/phpbb/console/application.php
+++ b/phpBB/phpbb/console/application.php
@@ -45,7 +45,7 @@ class application extends \Symfony\Component\Console\Application
/**
* {@inheritdoc}
*/
- protected function getDefaultInputDefinition()
+ protected function getDefaultInputDefinition(): InputDefinition
{
$input_definition = parent::getDefaultInputDefinition();
diff --git a/phpBB/phpbb/console/command/user/add.php b/phpBB/phpbb/console/command/user/add.php
index d26007dfb5..30ce1ff1d3 100644
--- a/phpBB/phpbb/console/command/user/add.php
+++ b/phpBB/phpbb/console/command/user/add.php
@@ -21,6 +21,7 @@ use phpbb\language\language;
use phpbb\passwords\manager;
use phpbb\user;
use Symfony\Component\Console\Command\Command as symfony_command;
+use Symfony\Component\Console\Helper\QuestionHelper;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
@@ -184,6 +185,10 @@ class add extends command
protected function interact(InputInterface $input, OutputInterface $output)
{
$helper = $this->getHelper('question');
+ if (!$helper instanceof QuestionHelper)
+ {
+ return;
+ }
$this->data = array(
'username' => $input->getOption('username'),
diff --git a/phpBB/phpbb/console/command/user/delete.php b/phpBB/phpbb/console/command/user/delete.php
index acd360b57b..727de653f8 100644
--- a/phpBB/phpbb/console/command/user/delete.php
+++ b/phpBB/phpbb/console/command/user/delete.php
@@ -19,6 +19,7 @@ use phpbb\log\log_interface;
use phpbb\user;
use phpbb\user_loader;
use Symfony\Component\Console\Command\Command as symfony_command;
+use Symfony\Component\Console\Helper\QuestionHelper;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
@@ -151,6 +152,10 @@ class delete extends command
protected function interact(InputInterface $input, OutputInterface $output)
{
$helper = $this->getHelper('question');
+ if (!$helper instanceof QuestionHelper)
+ {
+ return;
+ }
$question = new ConfirmationQuestion(
$this->language->lang('CLI_USER_DELETE_CONFIRM', $input->getArgument('username')),
diff --git a/phpBB/phpbb/controller/resolver.php b/phpBB/phpbb/controller/resolver.php
index 1e65b2324b..e2d3e2f193 100644
--- a/phpBB/phpbb/controller/resolver.php
+++ b/phpBB/phpbb/controller/resolver.php
@@ -65,10 +65,10 @@ class resolver implements ControllerResolverInterface
* Load a controller callable
*
* @param Request $request Symfony Request object
- * @return false|Callable Callable or false (fixme: method is returning an array)
+ * @return callable|false Callable or false
* @throws \phpbb\controller\exception
*/
- public function getController(Request $request)
+ public function getController(Request $request): callable|false
{
$controller = $request->attributes->get('_controller');
@@ -160,7 +160,7 @@ class resolver implements ControllerResolverInterface
$arguments[] = $attributes[$param->name];
}
}
- else if ($param->getClass() && $param->getClass()->isInstance($request))
+ else if ($param->getType() && $param->getType() instanceof $request)
{
$arguments[] = $request;
}
diff --git a/phpBB/phpbb/db/driver/driver.php b/phpBB/phpbb/db/driver/driver.php
index 6c86433dd9..8509c07d68 100644
--- a/phpBB/phpbb/db/driver/driver.php
+++ b/phpBB/phpbb/db/driver/driver.php
@@ -387,7 +387,7 @@ abstract class driver implements driver_interface
/**
* {@inheritDoc}
*/
- function sql_fetchfield($field, $rownum = false, $query_id = false)
+ function sql_fetchfield($field, $rownum = false, &$query_id = false)
{
global $cache;
@@ -1330,7 +1330,7 @@ abstract class driver implements driver_interface
/**
* {@inheritDoc}
*/
- public function clean_query_id($query_id)
+ public function clean_query_id(mixed $query_id): int|string|null
{
// Some DBMS functions accept/return objects and/or resources instead if identifiers
// Attempting to use objects/resources as array keys will throw error, hence correctly handle all cases
diff --git a/phpBB/phpbb/db/driver/driver_interface.php b/phpBB/phpbb/db/driver/driver_interface.php
index e85e0d19a8..ead8aa6d07 100644
--- a/phpBB/phpbb/db/driver/driver_interface.php
+++ b/phpBB/phpbb/db/driver/driver_interface.php
@@ -268,7 +268,7 @@ interface driver_interface
* @return mixed String value of the field in the selected row,
* false, if the row does not exist
*/
- public function sql_fetchfield($field, $rownum = false, $query_id = false);
+ public function sql_fetchfield($field, $rownum = false, &$query_id = false);
/**
* Fetch current row
@@ -499,9 +499,9 @@ interface driver_interface
/**
* Ensure query ID can be used by cache
*
- * @param resource|int|string $query_id Mixed type query id
+ * @param mixed $query_id Mixed type query id
*
- * @return int|string Query id in string or integer format
+ * @return int|string|null Query id in string or integer format
*/
- public function clean_query_id($query_id);
+ public function clean_query_id(mixed $query_id): int|string|null;
}
diff --git a/phpBB/phpbb/db/driver/factory.php b/phpBB/phpbb/db/driver/factory.php
index a5adae6a90..558f4ec60d 100644
--- a/phpBB/phpbb/db/driver/factory.php
+++ b/phpBB/phpbb/db/driver/factory.php
@@ -294,7 +294,7 @@ class factory implements driver_interface
/**
* {@inheritdoc}
*/
- public function sql_fetchfield($field, $rownum = false, $query_id = false)
+ public function sql_fetchfield($field, $rownum = false, &$query_id = false)
{
return $this->get_driver()->sql_fetchfield($field, $rownum, $query_id);
}
@@ -478,7 +478,7 @@ class factory implements driver_interface
/**
* {@inheritDoc}
*/
- public function clean_query_id($query_id)
+ public function clean_query_id(mixed $query_id): int|string|null
{
return $this->get_driver()->clean_query_id($query_id);
}
diff --git a/phpBB/phpbb/db/driver/postgres.php b/phpBB/phpbb/db/driver/postgres.php
index 3d981bc9c7..17e3681f3a 100644
--- a/phpBB/phpbb/db/driver/postgres.php
+++ b/phpBB/phpbb/db/driver/postgres.php
@@ -298,7 +298,7 @@ class postgres extends \phpbb\db\driver\driver
/**
* {@inheritDoc}
*/
- function sql_fetchfield($field, $rownum = false, $query_id = false)
+ function sql_fetchfield($field, $rownum = false, &$query_id = false)
{
global $cache;
@@ -431,12 +431,12 @@ class postgres extends \phpbb\db\driver\driver
*/
protected function _sql_close(): bool
{
- // Released resources are already closed, return true in this case
- if (!is_resource($this->db_connect_id))
+ // Skip if connection is already closed or not persistent
+ if (!$this->persistency || !$this->db_connect_id instanceof \PgSql\Connection)
{
return true;
}
- return @pg_close($this->db_connect_id);
+ return pg_close($this->db_connect_id);
}
/**
diff --git a/phpBB/phpbb/db/migrator.php b/phpBB/phpbb/db/migrator.php
index 972c2d5107..0df548ca90 100644
--- a/phpBB/phpbb/db/migrator.php
+++ b/phpBB/phpbb/db/migrator.php
@@ -91,9 +91,9 @@ class migrator
*
* 'effectively_installed' set and set to true if the migration was effectively_installed
*
- * @var array|false
+ * @var array
*/
- protected $last_run_migration = false;
+ protected $last_run_migration = [];
/**
* The output handler. A null handler is configured by default.
@@ -193,9 +193,9 @@ class migrator
* The array contains 'name', 'class' and 'state'. 'effectively_installed' is set
* and set to true if the last migration was effectively_installed.
*
- * @return array|false Last run migration information or false if no migration has been run yet
+ * @return array Last run migration information or false if no migration has been run yet
*/
- public function get_last_run_migration()
+ public function get_last_run_migration(): array
{
return $this->last_run_migration;
}
@@ -261,9 +261,9 @@ class migrator
*/
public function update()
{
- $this->container->get('dispatcher')->disable();
+ $this->container->get('event_dispatcher')->disable();
$this->update_do();
- $this->container->get('dispatcher')->enable();
+ $this->container->get('event_dispatcher')->enable();
}
/**
@@ -509,9 +509,9 @@ class migrator
*/
public function revert($migration)
{
- $this->container->get('dispatcher')->disable();
+ $this->container->get('event_dispatcher')->disable();
$this->revert_do($migration);
- $this->container->get('dispatcher')->enable();
+ $this->container->get('event_dispatcher')->enable();
}
/**
@@ -630,7 +630,7 @@ class migrator
WHERE migration_name = '" . $this->db->sql_escape($name) . "'";
$this->db->sql_query($sql);
- $this->last_run_migration = false;
+ $this->last_run_migration = [];
unset($this->migration_state[$name]);
$this->output_handler->write(array('MIGRATION_REVERT_SCHEMA_DONE', $name, $total_time), migrator_output_handler_interface::VERBOSITY_NORMAL);
diff --git a/phpBB/phpbb/debug/debug.php b/phpBB/phpbb/debug/debug.php
index c5ffada2e5..af387dbd3d 100644
--- a/phpBB/phpbb/debug/debug.php
+++ b/phpBB/phpbb/debug/debug.php
@@ -13,14 +13,13 @@
namespace phpbb\debug;
-use Symfony\Component\Debug\BufferingLogger;
-use Symfony\Component\Debug\DebugClassLoader;
-use Symfony\Component\Debug\ExceptionHandler;
+use Symfony\Component\ErrorHandler\BufferingLogger;
+use Symfony\Component\ErrorHandler\DebugClassLoader;
/**
* Registers all the debug tools.
- * @see Symfony\Component\Debug\Debug
+ * @see \Symfony\Component\ErrorHandler\Debug
*/
class debug
{
@@ -34,10 +33,10 @@ class debug
* If the Symfony ClassLoader component is available, a special
* class loader is also registered.
*
- * @param int $errorReportingLevel The level of error reporting you want
- * @param bool $displayErrors Whether to display errors (for development) or just log them (for production)
+ * @param int|null $errorReportingLevel The level of error reporting you want
+ * @param bool $displayErrors Whether to display errors (for development) or just log them (for production)
*/
- public static function enable($errorReportingLevel = null, $displayErrors = true)
+ public static function enable(int|null $errorReportingLevel = null, bool $displayErrors = true): void
{
if (static::$enabled)
{
@@ -58,7 +57,6 @@ class debug
if ('cli' !== php_sapi_name())
{
ini_set('display_errors', 0);
- ExceptionHandler::register();
}
else if ($displayErrors && (!ini_get('log_errors') || ini_get('error_log')))
{
@@ -66,15 +64,8 @@ class debug
ini_set('display_errors', 1);
}
- if ($displayErrors)
- {
- error_handler::register(new error_handler(new BufferingLogger()));
- }
- else
- {
- error_handler::register()->throwAt(0, true);
- }
-
DebugClassLoader::enable();
+
+ error_handler::register(new error_handler(new BufferingLogger(), $displayErrors));
}
}
diff --git a/phpBB/phpbb/debug/error_handler.php b/phpBB/phpbb/debug/error_handler.php
index f2b00e6365..f0a1efa3e3 100644
--- a/phpBB/phpbb/debug/error_handler.php
+++ b/phpBB/phpbb/debug/error_handler.php
@@ -13,7 +13,8 @@
namespace phpbb\debug;
-use Symfony\Component\Debug\ErrorHandler;
+use Symfony\Component\ErrorHandler\BufferingLogger;
+use Symfony\Component\ErrorHandler\ErrorHandler;
/**
* @psalm-suppress InvalidExtendClass
@@ -23,13 +24,21 @@ class error_handler extends ErrorHandler
/**
* @psalm-suppress MethodSignatureMismatch
*/
- public function handleError($type, $message, $file, $line)
+ public function __construct(BufferingLogger $bootstrappingLogger = null, private readonly bool $debug = false) // phpcs:ignore Generic.CodeAnalysis.UselessOverridingMethod.Found
{
- if ($type === E_USER_WARNING || $type === E_USER_NOTICE)
+ parent::__construct($bootstrappingLogger, $debug);
+ }
+
+ /**
+ * @psalm-suppress MethodSignatureMismatch
+ */
+ public function handleError(int $type, string $message, string $file, int $line): bool
+ {
+ if (!$this->debug || $type === E_USER_WARNING || $type === E_USER_NOTICE)
{
$handler = defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler';
- $handler($type, $message, $file, $line);
+ return $handler($type, $message, $file, $line);
}
return parent::handleError($type, $message, $file, $line);
diff --git a/phpBB/phpbb/di/container_builder.php b/phpBB/phpbb/di/container_builder.php
index 935aa11efb..4dc91b7409 100644
--- a/phpBB/phpbb/di/container_builder.php
+++ b/phpBB/phpbb/di/container_builder.php
@@ -205,11 +205,11 @@ class container_builder
// Mark all services public
$this->container->addCompilerPass(new pass\markpublic_pass());
- // Event listeners "phpBB style"
- $this->container->addCompilerPass(new RegisterListenersPass('dispatcher', 'event.listener_listener', 'event.listener'));
+ // Convert old event dispatcher syntax
+ $this->container->addCompilerPass(new pass\convert_events());
- // Event listeners "Symfony style"
- $this->container->addCompilerPass(new RegisterListenersPass('dispatcher'));
+ // Event listeners
+ $this->container->addCompilerPass(new RegisterListenersPass());
if ($this->use_extensions)
{
diff --git a/phpBB/phpbb/di/extension/config.php b/phpBB/phpbb/di/extension/config.php
index 775de380ec..041ac20708 100644
--- a/phpBB/phpbb/di/extension/config.php
+++ b/phpBB/phpbb/di/extension/config.php
@@ -60,7 +60,7 @@ class config extends Extension
*
* @return string The alias
*/
- public function getAlias()
+ public function getAlias(): string
{
return 'config';
}
@@ -73,7 +73,7 @@ class config extends Extension
*/
protected function convert_30_acm_type($acm_type)
{
- if (preg_match('#^[a-z]+$#', $acm_type))
+ if (preg_match('#^[a-z]+$#', $acm_type ?? ''))
{
return 'phpbb\\cache\\driver\\' . $acm_type;
}
diff --git a/phpBB/phpbb/di/extension/core.php b/phpBB/phpbb/di/extension/core.php
index c0725942be..d6679f1c61 100644
--- a/phpBB/phpbb/di/extension/core.php
+++ b/phpBB/phpbb/di/extension/core.php
@@ -62,7 +62,7 @@ class core extends Extension
if ($config['require_dev_dependencies'])
{
- if (!class_exists('Goutte\Client', true))
+ if (!class_exists('Symfony\Component\BrowserKit\HttpBrowser'))
{
trigger_error(
'Composer development dependencies have not been set up for the ' . $container->getParameter('core.environment') . ' environment yet, run ' .
@@ -144,7 +144,7 @@ class core extends Extension
*
* @return string The alias
*/
- public function getAlias()
+ public function getAlias(): string
{
return 'core';
}
diff --git a/phpBB/phpbb/di/extension/tables.php b/phpBB/phpbb/di/extension/tables.php
index 40684b6038..fc3d9e75c6 100644
--- a/phpBB/phpbb/di/extension/tables.php
+++ b/phpBB/phpbb/di/extension/tables.php
@@ -52,7 +52,7 @@ class tables extends Extension
*
* @return string The alias
*/
- public function getAlias()
+ public function getAlias(): string
{
return 'tables';
}
diff --git a/phpBB/phpbb/di/ordered_service_collection.php b/phpBB/phpbb/di/ordered_service_collection.php
index 57b674b986..71f2a089b6 100644
--- a/phpBB/phpbb/di/ordered_service_collection.php
+++ b/phpBB/phpbb/di/ordered_service_collection.php
@@ -46,7 +46,7 @@ class ordered_service_collection extends service_collection
/**
* {@inheritdoc}
*/
- public function getIterator()
+ public function getIterator(): \Iterator
{
if (!$this->is_ordered)
{
@@ -59,27 +59,27 @@ class ordered_service_collection extends service_collection
/**
* {@inheritdoc}
*/
- public function offsetExists($index)
+ public function offsetExists($key): bool
{
if (!$this->is_ordered)
{
$this->sort_services();
}
- return parent::offsetExists($index);
+ return parent::offsetExists($key);
}
/**
* {@inheritdoc}
*/
- public function offsetGet($index)
+ public function offsetGet($key): mixed
{
if (!$this->is_ordered)
{
$this->sort_services();
}
- return parent::offsetGet($index);
+ return parent::offsetGet($key);
}
/**
diff --git a/phpBB/phpbb/di/pass/convert_events.php b/phpBB/phpbb/di/pass/convert_events.php
new file mode 100644
index 0000000000..6fc2db1417
--- /dev/null
+++ b/phpBB/phpbb/di/pass/convert_events.php
@@ -0,0 +1,51 @@
+
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\di\pass;
+
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
+
+/**
+ * Converts event types to Symfony ones
+ */
+class convert_events implements CompilerPassInterface
+{
+ /** @var string[] Map for conversions of types */
+ private static array $conversions = [
+ 'event.listener_listener' => 'kernel.event_listener',
+ 'event.listener' => 'kernel.event_subscriber',
+ ];
+
+ /**
+ * Modify the container before it is passed to the rest of the code
+ * Add Symfony event tags to previously used phpBB ones
+ *
+ * @param ContainerBuilder $container ContainerBuilder object
+ * @return void
+ */
+ public function process(ContainerBuilder $container): void
+ {
+ // Add alias for event dispatcher
+ $container->addAliases(['dispatcher' => 'event_dispatcher']);
+
+ foreach (self::$conversions as $from => $to)
+ {
+ foreach ($container->findTaggedServiceIds($from, true) as $id => $tags)
+ {
+ $definition = $container->getDefinition($id);
+ $definition->addTag($to);
+ }
+ }
+ }
+}
diff --git a/phpBB/phpbb/di/service_collection.php b/phpBB/phpbb/di/service_collection.php
index 5c108bbb84..b6f5af5ed9 100644
--- a/phpBB/phpbb/di/service_collection.php
+++ b/phpBB/phpbb/di/service_collection.php
@@ -46,7 +46,7 @@ class service_collection extends \ArrayObject
/**
* {@inheritdoc}
*/
- public function getIterator()
+ public function getIterator(): \Iterator
{
return new service_collection_iterator($this);
}
@@ -54,9 +54,9 @@ class service_collection extends \ArrayObject
/**
* {@inheritdoc}
*/
- public function offsetGet($index)
+ public function offsetGet($key): mixed
{
- return $this->container->get($index);
+ return $this->container->get($key);
}
/**
diff --git a/phpBB/phpbb/di/service_collection_iterator.php b/phpBB/phpbb/di/service_collection_iterator.php
index 31bc156e99..732f677809 100644
--- a/phpBB/phpbb/di/service_collection_iterator.php
+++ b/phpBB/phpbb/di/service_collection_iterator.php
@@ -39,7 +39,7 @@ class service_collection_iterator extends \ArrayIterator
/**
* {@inheritdoc}
*/
- public function current()
+ public function current(): mixed
{
return $this->collection->offsetGet($this->key());
}
diff --git a/phpBB/phpbb/event/recursive_event_filter_iterator.php b/phpBB/phpbb/event/recursive_event_filter_iterator.php
index 22a6861522..f671c474d9 100644
--- a/phpBB/phpbb/event/recursive_event_filter_iterator.php
+++ b/phpBB/phpbb/event/recursive_event_filter_iterator.php
@@ -39,7 +39,7 @@ class recursive_event_filter_iterator extends \RecursiveFilterIterator
*
* @return recursive_event_filter_iterator
*/
- public function getChildren()
+ public function getChildren(): ?\RecursiveFilterIterator
{
$inner_iterator = $this->getInnerIterator();
assert($inner_iterator instanceof \RecursiveIterator);
@@ -49,7 +49,7 @@ class recursive_event_filter_iterator extends \RecursiveFilterIterator
/**
* {@inheritDoc}
*/
- public function accept()
+ public function accept(): bool
{
$relative_path = str_replace(DIRECTORY_SEPARATOR, '/', $this->current());
$filename = $this->current()->getFilename();
diff --git a/phpBB/phpbb/exception/http_exception.php b/phpBB/phpbb/exception/http_exception.php
index cae4a282d4..f22c90128e 100644
--- a/phpBB/phpbb/exception/http_exception.php
+++ b/phpBB/phpbb/exception/http_exception.php
@@ -25,14 +25,14 @@ class http_exception extends runtime_exception implements HttpExceptionInterface
*
* @var integer
*/
- private $status_code;
+ private int $status_code;
/**
* Additional headers to set in the response.
*
* @var array
*/
- private $headers;
+ private array $headers;
/**
* Constructor
@@ -55,7 +55,7 @@ class http_exception extends runtime_exception implements HttpExceptionInterface
/**
* {@inheritdoc}
*/
- public function getStatusCode()
+ public function getStatusCode(): int
{
return $this->status_code;
}
@@ -63,7 +63,7 @@ class http_exception extends runtime_exception implements HttpExceptionInterface
/**
* {@inheritdoc}
*/
- public function getHeaders()
+ public function getHeaders(): array
{
return $this->headers;
}
diff --git a/phpBB/phpbb/extension/di/extension_base.php b/phpBB/phpbb/extension/di/extension_base.php
index fcc358dd79..45ed5c4c19 100644
--- a/phpBB/phpbb/extension/di/extension_base.php
+++ b/phpBB/phpbb/extension/di/extension_base.php
@@ -132,7 +132,7 @@ class extension_base extends Extension
*
* @return string The alias
*/
- public function getAlias()
+ public function getAlias(): string
{
return str_replace('/', '_', $this->extension_name);
}
diff --git a/phpBB/phpbb/files/filespec.php b/phpBB/phpbb/files/filespec.php
index 3063b5db33..6e4c224e39 100644
--- a/phpBB/phpbb/files/filespec.php
+++ b/phpBB/phpbb/files/filespec.php
@@ -137,7 +137,7 @@ class filespec
$this->mimetype = $upload_ary['type'];
// Opera adds the name to the mime type
- $this->mimetype = (strpos($this->mimetype, '; name') !== false) ? str_replace(strstr($this->mimetype, '; name'), '', $this->mimetype) : $this->mimetype;
+ $this->mimetype = ($this->mimetype && str_contains($this->mimetype, '; name')) ? str_replace(strstr($this->mimetype, '; name'), '', $this->mimetype) : $this->mimetype;
if (!$this->mimetype)
{
diff --git a/phpBB/phpbb/files/filespec_storage.php b/phpBB/phpbb/files/filespec_storage.php
index f718d82d74..e775935756 100644
--- a/phpBB/phpbb/files/filespec_storage.php
+++ b/phpBB/phpbb/files/filespec_storage.php
@@ -117,7 +117,7 @@ class filespec_storage
$this->mimetype = $upload_ary['type'];
// Opera adds the name to the mime type
- $this->mimetype = (strpos($this->mimetype, '; name') !== false) ? str_replace(strstr($this->mimetype, '; name'), '', $this->mimetype) : $this->mimetype;
+ $this->mimetype = ($this->mimetype && str_contains($this->mimetype, '; name')) ? str_replace(strstr($this->mimetype, '; name'), '', $this->mimetype) : $this->mimetype;
if (!$this->mimetype)
{
diff --git a/phpBB/phpbb/filesystem/filesystem.php b/phpBB/phpbb/filesystem/filesystem.php
index 67b25907b3..6d34d990e2 100644
--- a/phpBB/phpbb/filesystem/filesystem.php
+++ b/phpBB/phpbb/filesystem/filesystem.php
@@ -606,7 +606,7 @@ class filesystem implements filesystem_interface
protected function phpbb_own_realpath($path)
{
// Replace all directory separators with '/'
- $path = str_replace(DIRECTORY_SEPARATOR, '/', $path);
+ $path = str_replace(DIRECTORY_SEPARATOR, '/', $path ?: '');
$is_absolute_path = false;
$path_prefix = '';
diff --git a/phpBB/phpbb/finder/finder.php b/phpBB/phpbb/finder/finder.php
index 9e7f201ea3..7bad84e36d 100644
--- a/phpBB/phpbb/finder/finder.php
+++ b/phpBB/phpbb/finder/finder.php
@@ -77,7 +77,7 @@ class finder
);
$this->extensions = array();
- $this->cached_queries = ($this->cache) ? $this->cache->get($this->cache_name) : false;
+ $this->cached_queries = $this->cache ? ($this->cache->get($this->cache_name) ?: []) : [];
}
/**
diff --git a/phpBB/phpbb/install/module/install_data/task/create_search_index.php b/phpBB/phpbb/install/module/install_data/task/create_search_index.php
index 9f80e5e784..e5781b34b3 100644
--- a/phpBB/phpbb/install/module/install_data/task/create_search_index.php
+++ b/phpBB/phpbb/install/module/install_data/task/create_search_index.php
@@ -120,7 +120,7 @@ class create_search_index extends database_task
$this->db = $container->get('dbal.conn');
$this->iohandler = $iohandler;
$this->installer_config = $config;
- $this->phpbb_dispatcher = $container->get('dispatcher');
+ $this->phpbb_dispatcher = $container->get('event_dispatcher');
$this->user = $container->get('user');
$this->phpbb_root_path = $phpbb_root_path;
$this->php_ext = $php_ext;
diff --git a/phpBB/phpbb/notification/type/base.php b/phpBB/phpbb/notification/type/base.php
index 54a9319d26..cf0ce88a62 100644
--- a/phpBB/phpbb/notification/type/base.php
+++ b/phpBB/phpbb/notification/type/base.php
@@ -118,7 +118,7 @@ abstract class base implements \phpbb\notification\type\type_interface
{
// The row from the database (unless this is a new notification we're going to add)
$this->data = $data;
- $this->data['notification_data'] = (isset($this->data['notification_data'])) ? unserialize($this->data['notification_data']) : array();
+ $this->data['notification_data'] = !empty($this->data['notification_data']) ? unserialize($this->data['notification_data']) : [];
}
/**
diff --git a/phpBB/phpbb/profilefields/type/type_date.php b/phpBB/phpbb/profilefields/type/type_date.php
index 5a1a6dbd5c..da76c3cce6 100644
--- a/phpBB/phpbb/profilefields/type/type_date.php
+++ b/phpBB/phpbb/profilefields/type/type_date.php
@@ -150,7 +150,7 @@ class type_date extends type_base
*/
public function validate_profile_field(&$field_value, $field_data)
{
- $field_validate = explode('-', $field_value);
+ $field_validate = explode('-', $field_value ?: '');
$day = (isset($field_validate[0])) ? (int) $field_validate[0] : 0;
$month = (isset($field_validate[1])) ? (int) $field_validate[1] : 0;
@@ -184,7 +184,7 @@ class type_date extends type_base
*/
public function get_profile_value($field_value, $field_data)
{
- $date = explode('-', $field_value);
+ $date = explode('-', $field_value ?: '');
$day = (isset($date[0])) ? (int) $date[0] : 0;
$month = (isset($date[1])) ? (int) $date[1] : 0;
$year = (isset($date[2])) ? (int) $date[2] : 0;
diff --git a/phpBB/phpbb/profilefields/type/type_int.php b/phpBB/phpbb/profilefields/type/type_int.php
index 9dc0181cb8..f22765b171 100644
--- a/phpBB/phpbb/profilefields/type/type_int.php
+++ b/phpBB/phpbb/profilefields/type/type_int.php
@@ -120,7 +120,7 @@ class type_int extends type_base
*/
public function validate_profile_field(&$field_value, $field_data)
{
- if (trim($field_value) === '' && !$field_data['field_required'])
+ if (trim($field_value ?: '') === '' && !$field_data['field_required'])
{
return false;
}
diff --git a/phpBB/phpbb/profilefields/type/type_string_common.php b/phpBB/phpbb/profilefields/type/type_string_common.php
index f5e1992044..6248285e10 100644
--- a/phpBB/phpbb/profilefields/type/type_string_common.php
+++ b/phpBB/phpbb/profilefields/type/type_string_common.php
@@ -63,13 +63,9 @@ abstract class type_string_common extends type_base
*/
public function validate_string_profile_field($field_type, &$field_value, $field_data)
{
- if (trim($field_value) === '' && !$field_data['field_required'])
+ if (trim($field_value ?? '') === '')
{
- return false;
- }
- else if (trim($field_value) === '' && $field_data['field_required'])
- {
- return $this->user->lang('FIELD_REQUIRED', $this->get_field_name($field_data['lang_name']));
+ return $field_data['field_required'] ? $this->user->lang('FIELD_REQUIRED', $this->get_field_name($field_data['lang_name'])) : false;
}
if ($field_data['field_minlen'] && utf8_strlen($field_value) < $field_data['field_minlen'])
diff --git a/phpBB/phpbb/request/deactivated_super_global.php b/phpBB/phpbb/request/deactivated_super_global.php
index ba7111e000..4160c3696b 100644
--- a/phpBB/phpbb/request/deactivated_super_global.php
+++ b/phpBB/phpbb/request/deactivated_super_global.php
@@ -74,7 +74,7 @@ class deactivated_super_global implements \ArrayAccess, \Countable, \IteratorAgg
*
* @return bool Whether the key on the super global exists.
*/
- public function offsetExists($offset)
+ public function offsetExists($offset): bool
{
return $this->request->is_set($offset, $this->super_global);
}
@@ -82,17 +82,17 @@ class deactivated_super_global implements \ArrayAccess, \Countable, \IteratorAgg
/**#@+
* Part of the \ArrayAccess implementation, will always result in a FATAL error.
*/
- public function offsetGet($offset)
+ public function offsetGet($offset): mixed
{
$this->error();
}
- public function offsetSet($offset, $value)
+ public function offsetSet($offset, $value): void
{
$this->error();
}
- public function offsetUnset($offset)
+ public function offsetUnset($offset): void
{
$this->error();
}
@@ -101,9 +101,8 @@ class deactivated_super_global implements \ArrayAccess, \Countable, \IteratorAgg
/**
* Part of the \Countable implementation, will always result in a FATAL error
* @return void
- * @psalm-suppress InvalidReturnType
*/
- public function count()
+ #[\ReturnTypeWillChange] public function count(): void
{
$this->error();
}
@@ -111,9 +110,8 @@ class deactivated_super_global implements \ArrayAccess, \Countable, \IteratorAgg
/**
* Part of the Traversable/IteratorAggregate implementation, will always result in a FATAL error
* @return void
- * @psalm-suppress InvalidReturnType
*/
- public function getIterator()
+ #[\ReturnTypeWillChange] public function getIterator(): void
{
$this->error();
}
diff --git a/phpBB/phpbb/routing/loader_resolver.php b/phpBB/phpbb/routing/loader_resolver.php
index 13fbc6405c..de3adcaa34 100644
--- a/phpBB/phpbb/routing/loader_resolver.php
+++ b/phpBB/phpbb/routing/loader_resolver.php
@@ -33,7 +33,7 @@ class loader_resolver implements LoaderResolverInterface
/**
* {@inheritdoc}
*/
- public function resolve($resource, $type = null)
+ public function resolve($resource, $type = null): false|\Symfony\Component\Config\Loader\LoaderInterface
{
/** @var \Symfony\Component\Config\Loader\LoaderInterface $loader */
foreach ($this->loaders as $loader)
diff --git a/phpBB/phpbb/routing/router.php b/phpBB/phpbb/routing/router.php
index e6f887cca7..18d32ca12b 100644
--- a/phpBB/phpbb/routing/router.php
+++ b/phpBB/phpbb/routing/router.php
@@ -171,7 +171,7 @@ class router implements RouterInterface
/**
* {@inheritdoc}
*/
- public function getContext()
+ public function getContext(): RequestContext
{
return $this->context;
}
@@ -179,7 +179,7 @@ class router implements RouterInterface
/**
* {@inheritdoc}
*/
- public function generate($name, $parameters = array(), $referenceType = self::ABSOLUTE_PATH)
+ public function generate(string $name, array $parameters = [], int $referenceType = self::ABSOLUTE_PATH): string
{
return $this->get_generator()->generate($name, $parameters, $referenceType);
}
@@ -187,7 +187,7 @@ class router implements RouterInterface
/**
* {@inheritdoc}
*/
- public function match($pathinfo)
+ public function match(string $pathinfo): array
{
return $this->get_matcher()->match($pathinfo);
}
diff --git a/phpBB/phpbb/session.php b/phpBB/phpbb/session.php
index ae9624cd49..bd7620b840 100644
--- a/phpBB/phpbb/session.php
+++ b/phpBB/phpbb/session.php
@@ -47,7 +47,7 @@ class session
// First of all, get the request uri...
$script_name = $request->escape($symfony_request->getScriptName(), true);
- $args = $request->escape(explode('&', $symfony_request->getQueryString()), true);
+ $args = $request->escape(explode('&', $symfony_request->getQueryString() ?? ''), true);
// If we are unable to get the script name we use REQUEST_URI as a failover and note it within the page array for easier support...
if (!$script_name)
diff --git a/psalm.xml b/psalm.xml
index cb434cfaf8..da3e19db9d 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -1,8 +1,7 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/tests/attachment/upload_test.php b/tests/attachment/upload_test.php
index 298ffcfd98..609ee99536 100644
--- a/tests/attachment/upload_test.php
+++ b/tests/attachment/upload_test.php
@@ -69,6 +69,9 @@ class phpbb_attachment_upload_test extends \phpbb_database_test_case
/** @var \phpbb\request\request */
protected $request;
+ /** @var string */
+ protected $phpbb_root_path;
+
public function getDataSet()
{
return $this->createXMLDataSet(__DIR__ . '/fixtures/resync.xml');
diff --git a/tests/console/cron/cron_list_test.php b/tests/console/cron/cron_list_test.php
index 0c1b8b1ccc..cdda4fb886 100644
--- a/tests/console/cron/cron_list_test.php
+++ b/tests/console/cron/cron_list_test.php
@@ -97,7 +97,8 @@ class phpbb_console_command_cron_list_test extends phpbb_test_case
);
$mock_container = new phpbb_mock_container_builder();
- $mock_container->set('cron.task_collection', []);
+ $task_collection = new \phpbb\di\service_collection($mock_container);
+ $mock_container->set('cron.task_collection', $task_collection);
$this->cron_manager = new \phpbb\cron\manager($mock_container, $routing_helper, $phpbb_root_path, $pathEx, null);
$this->cron_manager->load_tasks($tasks);
diff --git a/tests/console/cron/run_test.php b/tests/console/cron/run_test.php
index 7de1b3455e..90fa2a9fd0 100644
--- a/tests/console/cron/run_test.php
+++ b/tests/console/cron/run_test.php
@@ -74,7 +74,8 @@ class phpbb_console_command_cron_run_test extends phpbb_database_test_case
);
$mock_container = new phpbb_mock_container_builder();
- $mock_container->set('cron.task_collection', []);
+ $task_collection = new \phpbb\di\service_collection($mock_container);
+ $mock_container->set('cron.task_collection', $task_collection);
$this->cron_manager = new \phpbb\cron\manager($mock_container, $routing_helper, $phpbb_root_path, $phpEx, null);
$this->cron_manager->load_tasks($tasks);
@@ -152,7 +153,8 @@ class phpbb_console_command_cron_run_test extends phpbb_database_test_case
);
$mock_container = new phpbb_mock_container_builder();
- $mock_container->set('cron.task_collection', []);
+ $task_collection = new \phpbb\di\service_collection($mock_container);
+ $mock_container->set('cron.task_collection', $task_collection);
$this->cron_manager = new \phpbb\cron\manager($mock_container, $routing_helper, $phpbb_root_path, $phpEx, null);
$this->cron_manager->load_tasks($tasks);
@@ -199,7 +201,8 @@ class phpbb_console_command_cron_run_test extends phpbb_database_test_case
);
$mock_container = new phpbb_mock_container_builder();
- $mock_container->set('cron.task_collection', []);
+ $task_collection = new \phpbb\di\service_collection($mock_container);
+ $mock_container->set('cron.task_collection', $task_collection);
$this->cron_manager = new \phpbb\cron\manager($mock_container, $routing_helper, $phpbb_root_path, $phpEx, null);
$this->cron_manager->load_tasks($tasks);
diff --git a/tests/controller/controller_test.php b/tests/controller/controller_test.php
index 0b348fa6ba..03d8e89d87 100644
--- a/tests/controller/controller_test.php
+++ b/tests/controller/controller_test.php
@@ -21,6 +21,9 @@ use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
class phpbb_controller_controller_test extends phpbb_test_case
{
+ /** @var phpbb_mock_extension_manager */
+ protected $extension_manager;
+
protected function setUp(): void
{
$this->extension_manager = new phpbb_mock_extension_manager(
diff --git a/tests/cron/manager_test.php b/tests/cron/manager_test.php
index 658980d0c5..45736e82fe 100644
--- a/tests/cron/manager_test.php
+++ b/tests/cron/manager_test.php
@@ -105,7 +105,8 @@ class phpbb_cron_manager_test extends \phpbb_test_case
);
$mock_container = new phpbb_mock_container_builder();
- $mock_container->set('cron.task_collection', []);
+ $task_collection = new \phpbb\di\service_collection($mock_container);
+ $mock_container->set('cron.task_collection', $task_collection);
$cron_manager = new \phpbb\cron\manager($mock_container, $routing_helper, $phpbb_root_path, $phpEx, null);
$cron_manager->load_tasks($tasks);
diff --git a/tests/dbal/migrator_test.php b/tests/dbal/migrator_test.php
index 67185b9362..5d16fa63ee 100644
--- a/tests/dbal/migrator_test.php
+++ b/tests/dbal/migrator_test.php
@@ -42,6 +42,9 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
/** @var \phpbb\config\config */
protected $config;
+ /** @var \phpbb\extension\manager */
+ protected $extension_manager;
+
public function getDataSet()
{
return $this->createXMLDataSet(__DIR__.'/fixtures/migrator.xml');
@@ -80,7 +83,7 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
new \phpbb\db\migration\helper()
);
$container->set('migrator', $this->migrator);
- $container->set('dispatcher', new phpbb_mock_event_dispatcher());
+ $container->set('event_dispatcher', new phpbb_mock_event_dispatcher());
$this->extension_manager = new \phpbb\extension\manager(
$container,
@@ -98,6 +101,7 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
$this->migrator->set_migrations(array('phpbb_dbal_migration_dummy'));
// schema
+ $start_time = time();
$this->migrator->update();
$this->assertFalse($this->migrator->finished());
@@ -106,12 +110,13 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
"SELECT 1 as success
FROM phpbb_migrations
WHERE migration_name = 'phpbb_dbal_migration_dummy'
- AND migration_start_time >= " . (time() - 1) . "
+ AND migration_start_time >= " . ($start_time - 1) . "
AND migration_start_time <= " . (time() + 1),
'Start time set correctly'
);
// data
+ $start_time = time();
$this->migrator->update();
$this->assertTrue($this->migrator->finished());
@@ -127,7 +132,7 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
FROM phpbb_migrations
WHERE migration_name = 'phpbb_dbal_migration_dummy'
AND migration_start_time <= migration_end_time
- AND migration_end_time >= " . (time() - 1) . "
+ AND migration_end_time >= " . ($start_time - 1) . "
AND migration_end_time <= " . (time() + 1),
'End time set correctly'
);
diff --git a/tests/dbal/migrator_tool_config_test.php b/tests/dbal/migrator_tool_config_test.php
index 01f5d9e54f..853b33b117 100644
--- a/tests/dbal/migrator_tool_config_test.php
+++ b/tests/dbal/migrator_tool_config_test.php
@@ -13,6 +13,12 @@
class phpbb_dbal_migrator_tool_config_test extends phpbb_test_case
{
+ /** @var \phpbb\config\config */
+ protected $config;
+
+ /** @var \phpbb\db\migration\tool\tool_interface */
+ protected $tool;
+
protected function setUp(): void
{
$this->config = new \phpbb\config\config(array());
diff --git a/tests/error_collector_test.php b/tests/error_collector_test.php
index 6073eac6fe..3079ca1ffe 100644
--- a/tests/error_collector_test.php
+++ b/tests/error_collector_test.php
@@ -53,15 +53,14 @@ class phpbb_error_collector_test extends phpbb_test_case
// Division by zero was promoted to fatal error and throws DivisionByZeroError exception in PHP 8+
version_compare(PHP_VERSION, '8', '>=') ? '1b'['0xFF'] : 1/0; $line = __LINE__;
- // Cause a "Notice: unserialize(): Error at offset 0 of 27 bytes in ..."
- // "Undefined array index" used earlier was promoted to warning in PHP 8.0,
- // see https://github.com/php/php-src/commit/c48b745f0090c944e77c1fbcfb6c4df3b54356ad
- unserialize("obvious non-serialized data"); $line2 = __LINE__;
+ // Cause a "Notice: date_default_timezone_set(): Timezone ID 'ThisTimeZoneDoesNotExist' is invalid"
+ // https://github.com/php/php-src/blob/880faa39e8c648bdc3aad7aeca170755c6557831/ext/date/php_date.c#L5205
+ date_default_timezone_set('ThisTimeZoneDoesNotExist'); $line2 = __LINE__;
$collector->uninstall();
// The notice should not be collected
- $this->assertFalse(isset($collector->errors[1]));
+ $this->assertFalse(isset($collector->errors[1]), 'Notice should not be added to errors');
$this->assertEquals(count($collector->errors), 1);
list($errno, $msg_text, $errfile, $errline) = $collector->errors[0];
diff --git a/tests/extension/manager_test.php b/tests/extension/manager_test.php
index 68e31d0af0..73ac5a51de 100644
--- a/tests/extension/manager_test.php
+++ b/tests/extension/manager_test.php
@@ -30,7 +30,6 @@ class phpbb_extension_manager_test extends phpbb_database_test_case
{
parent::setUp();
- $this->db = null;
$this->extension_manager = $this->create_extension_manager();
}
diff --git a/tests/functional/acp_smilies_test.php b/tests/functional/acp_smilies_test.php
index ebe8717fa7..955a00b488 100644
--- a/tests/functional/acp_smilies_test.php
+++ b/tests/functional/acp_smilies_test.php
@@ -38,6 +38,6 @@ class phpbb_functional_acp_smilies_test extends phpbb_functional_test_case
$crawler = self::submit($form);
$html = $crawler->filter('#preview')->html();
- $this->assertRegexp('(
![]()
]+ alt=">:D" title=">:D"[^>]*>)', $html);
+ $this->assertMatchesRegularExpression('(
![]()
]+ alt=">:D" title=">:D"[^>]*>)', $html);
}
}
diff --git a/tests/functional/extension_controller_test.php b/tests/functional/extension_controller_test.php
index c235278d9d..65e726c484 100644
--- a/tests/functional/extension_controller_test.php
+++ b/tests/functional/extension_controller_test.php
@@ -105,7 +105,7 @@ class phpbb_functional_extension_controller_test extends phpbb_functional_test_c
{
$crawler = self::request('GET', 'app.php/foo/baz', array(), false);
$this->assert_response_html(500);
- $this->assertStringContainsString('Controller "foo\bar\controller\controller::baz()" requires that you provide a value for the "$test" argument', $crawler->filter('body')->text());
+ $this->assertStringContainsString('Controller "foo\bar\controller\controller::baz" requires that you provide a value for the "$test" argument', $crawler->filter('body')->text());
}
/**
diff --git a/tests/functional/feed_test.php b/tests/functional/feed_test.php
index fc0115a063..984f3da0d5 100644
--- a/tests/functional/feed_test.php
+++ b/tests/functional/feed_test.php
@@ -30,9 +30,9 @@ class phpbb_functional_feed_test extends phpbb_functional_test_case
{
parent::__construct($name, $data, $dataName);
- $this->excludeBackupStaticAttributes([
+ $this->backupStaticAttributesExcludeList += [
'phpbb_functional_feed_test' => ['init_values'],
- ]);
+ ];
$this->purge_cache();
}
diff --git a/tests/functional/posting_test.php b/tests/functional/posting_test.php
index 1c1544a533..9f8b299756 100644
--- a/tests/functional/posting_test.php
+++ b/tests/functional/posting_test.php
@@ -78,7 +78,7 @@ class phpbb_functional_posting_test extends phpbb_functional_test_case
$crawler = self::request('GET', "posting.php?mode=quote&p={$post['post_id']}&sid={$this->sid}");
- $this->assertRegexp($expected, $crawler->filter('textarea#message')->text());
+ $this->assertMatchesRegularExpression($expected, $crawler->filter('textarea#message')->text());
}
/**
@@ -122,7 +122,7 @@ class phpbb_functional_posting_test extends phpbb_functional_test_case
{
$this->set_quote_depth($quote_depth);
$crawler = self::request('GET', $quote_url);
- $this->assertRegexp(
+ $this->assertMatchesRegularExpression(
"(\[quote=admin[^\]]*\]\s?" . preg_quote($expected_text) . "\s?\[\/quote\])",
$crawler->filter('textarea#message')->text()
);
diff --git a/tests/functional/private_messages_test.php b/tests/functional/private_messages_test.php
index 087f6d5891..1f31fda240 100644
--- a/tests/functional/private_messages_test.php
+++ b/tests/functional/private_messages_test.php
@@ -79,7 +79,7 @@ class phpbb_functional_private_messages_test extends phpbb_functional_test_case
$crawler = self::request('GET', 'ucp.php?i=pm&mode=compose&action=quotepost&p=' . $post['post_id'] . '&sid=' . $this->sid);
- $this->assertRegexp($expected, $crawler->filter('textarea#message')->text());
+ $this->assertMatchesRegularExpression($expected, $crawler->filter('textarea#message')->text());
}
public function test_quote_pm()
@@ -92,7 +92,7 @@ class phpbb_functional_private_messages_test extends phpbb_functional_test_case
$crawler = self::request('GET', 'ucp.php?i=pm&mode=compose&action=quote&p=' . $message_id . '&sid=' . $this->sid);
- $this->assertRegexp($expected, $crawler->filter('textarea#message')->text());
+ $this->assertMatchesRegularExpression($expected, $crawler->filter('textarea#message')->text());
}
public function test_quote_forward()
@@ -105,6 +105,6 @@ class phpbb_functional_private_messages_test extends phpbb_functional_test_case
$crawler = self::request('GET', 'ucp.php?i=pm&mode=compose&action=forward&f=0&p=' . $message_id . '&sid=' . $this->sid);
- $this->assertRegexp($expected, $crawler->filter('textarea#message')->text());
+ $this->assertMatchesRegularExpression($expected, $crawler->filter('textarea#message')->text());
}
}
diff --git a/tests/functional/ucp_allow_pm_test.php b/tests/functional/ucp_allow_pm_test.php
index 0b57e4119b..6c275ad916 100644
--- a/tests/functional/ucp_allow_pm_test.php
+++ b/tests/functional/ucp_allow_pm_test.php
@@ -22,9 +22,9 @@ class phpbb_functional_ucp_allow_pm_test extends phpbb_functional_test_case
{
parent::__construct();
- $this->excludeBackupStaticAttributes([
+ $this->backupStaticAttributesExcludeList += [
'phpbb_functional_ucp_allow_pm_test' => ['data'],
- ]);
+ ];
}
// user A sends a PM to user B where B accepts PM
diff --git a/tests/functional/ucp_attachments_test.php b/tests/functional/ucp_attachments_test.php
index dad085498d..fbd352ea28 100644
--- a/tests/functional/ucp_attachments_test.php
+++ b/tests/functional/ucp_attachments_test.php
@@ -134,7 +134,7 @@ class phpbb_functional_ucp_attachments_test extends phpbb_functional_test_case
$attachment_filename = $crawler->filter('.attachment-filename');
$this->assertEquals('valid.jpg', $attachment_filename->attr('title'));
$this->assertStringContainsString('app.php/download/attachment/' . $attach_id . '/valid.jpg', $attachment_filename->attr('href'));
- $this->assertEquals('', $crawler->filter('[name="attachment[' . $attach_id . ']"]')->attr('disabled'));
+ $this->assertFalse($crawler->filter('[name="attachment[' . $attach_id . ']"]')->getNode(0)->hasAttribute('disabled'));
}
public function test_ucp_delete_expired_attachment()
@@ -219,7 +219,7 @@ class phpbb_functional_ucp_attachments_test extends phpbb_functional_test_case
$this->assertEquals('valid.jpg', $attachment_node->attr('title'));
$this->assertStringContainsString('download/attachment/' . $attach_id . '/valid.jpg', $attachment_node->attr('href'));
- $this->assertEquals('disabled', $crawler->filter('[name="attachment[' . $attach_id . ']"]')->attr('disabled'));
+ $this->assertTrue($crawler->filter('[name="attachment[' . $attach_id . ']"]')->getNode(0)->hasAttribute('disabled'));
// It should not be possible to delete the attachment
$crawler = self::request('POST', 'ucp.php?i=ucp_attachments&mode=attachments&sid=' . $this->sid, [
@@ -238,7 +238,7 @@ class phpbb_functional_ucp_attachments_test extends phpbb_functional_test_case
});
$this->assertEquals('valid.jpg', $attachment_node->attr('title'));
$this->assertStringContainsString('download/attachment/' . $attach_id . '/valid.jpg', $attachment_node->attr('href'));
- $this->assertEquals('disabled', $crawler->filter('[name="attachment[' . $attach_id . ']"]')->attr('disabled'));
+ $this->assertTrue($crawler->filter('[name="attachment[' . $attach_id . ']"]')->getNode(0)->hasAttribute('disabled'));
$this->logout();
@@ -327,7 +327,7 @@ class phpbb_functional_ucp_attachments_test extends phpbb_functional_test_case
$this->assertEquals('valid.jpg', $attachment_node->attr('title'));
$this->assertStringContainsString('download/attachment/' . $attach_id . '/valid.jpg', $attachment_node->attr('href'));
- $this->assertEquals('', $crawler->filter('[name="attachment[' . $attach_id . ']"]')->attr('disabled'));
+ $this->assertFalse($crawler->filter('[name="attachment[' . $attach_id . ']"]')->getNode(0)->hasAttribute('disabled'));
// Update message time to 60 minutes later
$sql = 'UPDATE ' . PRIVMSGS_TABLE . '
@@ -347,7 +347,7 @@ class phpbb_functional_ucp_attachments_test extends phpbb_functional_test_case
$this->assertEquals('valid.jpg', $attachment_node->attr('title'));
$this->assertStringContainsString('download/attachment/' . $attach_id . '/valid.jpg', $attachment_node->attr('href'));
- $this->assertEquals('disabled', $crawler->filter('[name="attachment[' . $attach_id . ']"]')->attr('disabled'));
+ $this->assertTrue($crawler->filter('[name="attachment[' . $attach_id . ']"]')->getNode(0)->hasAttribute('disabled'));
$this->set_flood_interval(15);
diff --git a/tests/functions/obtain_online_test.php b/tests/functions/obtain_online_test.php
index f47da03027..1a2d000d0d 100644
--- a/tests/functions/obtain_online_test.php
+++ b/tests/functions/obtain_online_test.php
@@ -162,7 +162,7 @@ class phpbb_functions_obtain_online_test extends phpbb_database_test_case
global $config, $user, $auth, $phpbb_dispatcher;
$config['load_online_guests'] = $display_guests;
- $user = new phpbb_mock_lang();
+ $user = new phpbb_mock_user();
$user->data['user_id'] = 100;
$user->lang = $this->load_language();
$auth = $this->createMock('\phpbb\auth\auth');
diff --git a/tests/migrations/migrations_check_config_added_test.php b/tests/migrations/migrations_check_config_added_test.php
index f4b8067ae1..969a0f5e79 100644
--- a/tests/migrations/migrations_check_config_added_test.php
+++ b/tests/migrations/migrations_check_config_added_test.php
@@ -13,6 +13,36 @@
class migrations_check_config_added_test extends phpbb_test_case
{
+ /** @var \phpbb\config\config */
+ protected $config;
+
+ /** @var \Symfony\Component\DependencyInjection\ContainerInterface */
+ protected $container;
+
+ /** @var \phpbb\db\driver\driver_interface */
+ protected $db;
+
+ /** @var \Doctrine\DBAL\Connection */
+ protected $db_doctrine;
+
+ /** @var \phpbb\db\tools\tools_interface */
+ protected $db_tools;
+
+ /** @var \phpbb\extension\manager */
+ protected $extension_manager;
+
+ /** @var \phpbb\db\migrator */
+ protected $migrator;
+
+ /** @var string */
+ protected $table_prefix;
+
+ /** @var string */
+ protected $phpbb_root_path;
+
+ /** @var string */
+ protected $php_ext;
+
protected function setUp(): void
{
global $phpbb_root_path;
diff --git a/tests/mock/container_builder.php b/tests/mock/container_builder.php
index 29050825db..9200ed0767 100644
--- a/tests/mock/container_builder.php
+++ b/tests/mock/container_builder.php
@@ -56,7 +56,7 @@ class phpbb_mock_container_builder implements ContainerInterface
*
* @api
*/
- public function get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE)
+ public function get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE): ?object
{
if ($this->has($id))
{
@@ -79,11 +79,11 @@ class phpbb_mock_container_builder implements ContainerInterface
*
* @param string $id The service identifier
*
- * @return Boolean true if the service is defined, false otherwise
+ * @return bool true if the service is defined, false otherwise
*
* @api
*/
- public function has($id)
+ public function has(string $id): bool
{
return isset($this->services[$id]);
}
@@ -99,7 +99,7 @@ class phpbb_mock_container_builder implements ContainerInterface
*
* @api
*/
- public function getParameter($name)
+ public function getParameter(string $name): mixed
{
if ($this->hasParameter($name))
{
@@ -114,11 +114,11 @@ class phpbb_mock_container_builder implements ContainerInterface
*
* @param string $name The parameter name
*
- * @return Boolean The presence of parameter in container
+ * @return bool The presence of parameter in container
*
* @api
*/
- public function hasParameter($name)
+ public function hasParameter(string $name): bool
{
return isset($this->parameters[$name]);
}
@@ -202,7 +202,7 @@ class phpbb_mock_container_builder implements ContainerInterface
return false;
}
- public function initialized($id)
+ public function initialized($id): bool
{
return true;
}
diff --git a/tests/mock/lang.php b/tests/mock/lang.php
index bebbe5a29b..5de41f5775 100644
--- a/tests/mock/lang.php
+++ b/tests/mock/lang.php
@@ -17,25 +17,25 @@
*/
class phpbb_mock_lang implements ArrayAccess
{
- public function offsetExists($offset)
+ public function offsetExists($offset): bool
{
return true;
}
- public function offsetGet($offset)
+ public function offsetGet($offset): mixed
{
return $offset;
}
- public function offsetSet($offset, $value)
+ public function offsetSet($offset, $value): void
{
}
- public function offsetUnset($offset)
+ public function offsetUnset($offset): void
{
}
- public function lang()
+ public function lang(): string
{
return implode(' ', func_get_args());
}
diff --git a/tests/mock/request.php b/tests/mock/request.php
index 1253e40915..4985d6db2c 100644
--- a/tests/mock/request.php
+++ b/tests/mock/request.php
@@ -41,13 +41,13 @@ class phpbb_mock_request extends \phpbb\request\request
public function variable($var_name, $default, $multibyte = false, $super_global = \phpbb\request\request_interface::REQUEST)
{
- return isset($this->data[$super_global][$var_name]) ? $this->data[$super_global][$var_name] : $default;
+ return $this->data[$super_global][$var_name] ?? $default;
}
public function server($var_name, $default = '')
{
$super_global = \phpbb\request\request_interface::SERVER;
- return isset($this->data[$super_global][$var_name]) ? $this->data[$super_global][$var_name] : $default;
+ return $this->data[$super_global][$var_name] ?? $default;
}
public function header($header_name, $default = '')
@@ -115,7 +115,7 @@ class phpbb_mock_request extends \phpbb\request\request
$this->data[\phpbb\request\request_interface::SERVER][$var_name] = $value;
}
- public function merge($super_global = \phpbb\request\request_interface::REQUEST, $values)
+ public function merge($values, $super_global = \phpbb\request\request_interface::REQUEST): void
{
$this->data[$super_global] = array_merge($this->data[$super_global], $values);
}
diff --git a/tests/notification/base.php b/tests/notification/base.php
index ec1f6e065b..545508eedd 100644
--- a/tests/notification/base.php
+++ b/tests/notification/base.php
@@ -117,7 +117,7 @@ abstract class phpbb_tests_notification_base extends phpbb_database_test_case
$phpEx
)
);
- $phpbb_container->set('dispatcher', $this->phpbb_dispatcher);
+ $phpbb_container->set('event_dispatcher', $this->phpbb_dispatcher);
$phpbb_container->setParameter('core.root_path', $phpbb_root_path);
$phpbb_container->setParameter('core.php_ext', $phpEx);
$phpbb_container->setParameter('tables.notifications', 'phpbb_notifications');
diff --git a/tests/notification/notification_method_email_test.php b/tests/notification/notification_method_email_test.php
index 12cd802cbd..d9b52cae2d 100644
--- a/tests/notification/notification_method_email_test.php
+++ b/tests/notification/notification_method_email_test.php
@@ -84,7 +84,7 @@ class notification_method_email_test extends phpbb_tests_notification_base
$phpbb_container->set('cache.driver', $cache_driver);
$phpbb_container->set('cache', $cache);
$phpbb_container->set('text_formatter.utils', new \phpbb\textformatter\s9e\utils());
- $phpbb_container->set('dispatcher', $this->phpbb_dispatcher);
+ $phpbb_container->set('event_dispatcher', $this->phpbb_dispatcher);
$phpbb_container->setParameter('core.root_path', $phpbb_root_path);
$phpbb_container->setParameter('core.php_ext', $phpEx);
$phpbb_container->setParameter('tables.notifications', 'phpbb_notifications');
diff --git a/tests/notification/submit_post_base.php b/tests/notification/submit_post_base.php
index db3ad6bd34..e8ad00e5ef 100644
--- a/tests/notification/submit_post_base.php
+++ b/tests/notification/submit_post_base.php
@@ -80,6 +80,7 @@ abstract class phpbb_notification_submit_post_base extends phpbb_database_test_c
'num_posts' => 1,
'allow_board_notifications' => true,
'allow_mentions' => true,
+ 'board_startdate' => 1692429414,
));
// Event dispatcher
@@ -113,8 +114,7 @@ abstract class phpbb_notification_submit_post_base extends phpbb_database_test_c
);
// Request
- $type_cast_helper = $this->createMock('\phpbb\request\type_cast_helper_interface');
- $request = $this->createMock('\phpbb\request\request');
+ $request = new phpbb_mock_request();
$avatar_helper = $this->getMockBuilder('\phpbb\avatar\helper')
->disableOriginalConstructor()
@@ -146,7 +146,7 @@ abstract class phpbb_notification_submit_post_base extends phpbb_database_test_c
$phpEx
)
);
- $phpbb_container->set('dispatcher', $phpbb_dispatcher);
+ $phpbb_container->set('event_dispatcher', $phpbb_dispatcher);
$phpbb_container->set('storage.attachment', $storage);
$phpbb_container->setParameter('core.root_path', $phpbb_root_path);
$phpbb_container->setParameter('core.php_ext', $phpEx);
diff --git a/tests/passwords/drivers_test.php b/tests/passwords/drivers_test.php
index 9c2aa8b160..51da57c278 100644
--- a/tests/passwords/drivers_test.php
+++ b/tests/passwords/drivers_test.php
@@ -13,6 +13,9 @@
class phpbb_passwords_helper_test extends \phpbb_test_case
{
+ /** @var array */
+ protected $passwords_drivers = [];
+
protected function setUp(): void
{
// Prepare dependencies for drivers
@@ -21,7 +24,7 @@ class phpbb_passwords_helper_test extends \phpbb_test_case
$this->driver_helper = new \phpbb\passwords\driver\helper($config);
$phpbb_root_path = __DIR__ . '/../../phpBB/';
$php_ext = 'php';
-
+
// Initialize argon2 default options
$this->argon2_default_cost_options = [
'memory_cost' => 65536,
diff --git a/tests/passwords/manager_test.php b/tests/passwords/manager_test.php
index 2159160273..7b1b9a1cc3 100644
--- a/tests/passwords/manager_test.php
+++ b/tests/passwords/manager_test.php
@@ -13,6 +13,15 @@
class phpbb_passwords_manager_test extends \phpbb_test_case
{
+ /** @var \phpbb\passwords\driver\helper */
+ protected $driver_helper;
+
+ /** @var \phpbb\passwords\helper */
+ protected $helper;
+
+ /** @var \phpbb\passwords\manager */
+ protected $manager;
+
protected $passwords_drivers;
protected $pw_characters = '0123456789abcdefghijklmnopqrstuvwyzABCDEFGHIJKLMNOPQRSTUVXYZ.,_!?/\\';
diff --git a/tests/path_helper/path_helper_test.php b/tests/path_helper/path_helper_test.php
index 73d235e0cd..a2abefb108 100644
--- a/tests/path_helper/path_helper_test.php
+++ b/tests/path_helper/path_helper_test.php
@@ -127,8 +127,8 @@ class phpbb_path_helper_test extends phpbb_test_case
array(
$this->phpbb_root_path . 'test.php',
'/',
- null,
- null,
+ '',
+ '',
'',
),
array(
diff --git a/tests/random/gen_rand_string_test.php b/tests/random/gen_rand_string_test.php
index 13ca0df245..cb89a1703e 100644
--- a/tests/random/gen_rand_string_test.php
+++ b/tests/random/gen_rand_string_test.php
@@ -44,7 +44,7 @@ class phpbb_random_gen_rand_string_test extends phpbb_test_case
$random_string_length == $num_chars,
sprintf('Failed asserting that random string length matches expected length. Expected %1$u, Actual %2$u', $num_chars, $random_string_length)
);
- $this->assertRegExp('#^[A-Z0-9]+$#', $random_string);
+ $this->assertMatchesRegularExpression('#^[A-Z0-9]+$#', $random_string);
}
}
}
@@ -63,7 +63,7 @@ class phpbb_random_gen_rand_string_test extends phpbb_test_case
$random_string_length == $num_chars,
sprintf('Failed asserting that random string length matches expected length. Expected %1$u, Actual %2$u', $num_chars, $random_string_length)
);
- $this->assertRegExp('#^[A-NP-Z1-9]+$#', $random_string);
+ $this->assertMatchesRegularExpression('#^[A-NP-Z1-9]+$#', $random_string);
}
}
}
diff --git a/tests/regex/censor_test.php b/tests/regex/censor_test.php
index 5a516b71de..6da6083e19 100644
--- a/tests/regex/censor_test.php
+++ b/tests/regex/censor_test.php
@@ -37,6 +37,6 @@ class phpbb_regex_censor_test extends phpbb_test_case
{
$regex = get_censor_preg_expression($pattern);
- $this->assertRegExp($regex, $subject);
+ $this->assertMatchesRegularExpression($regex, $subject);
}
}
diff --git a/tests/storage/adapter/local_subfolders_test.php b/tests/storage/adapter/local_subfolders_test.php
index 8421224098..33b232a131 100644
--- a/tests/storage/adapter/local_subfolders_test.php
+++ b/tests/storage/adapter/local_subfolders_test.php
@@ -88,8 +88,8 @@ class phpbb_storage_adapter_local_subfolders_test extends phpbb_local_test_case
$this->adapter->delete('file.txt');
// Then
- $this->assertFileNotExists($this->path . '3d/8e/file.txt');
- $this->assertFileNotExists($this->path . '3d');
+ $this->assertFileDoesNotExist($this->path . '3d/8e/file.txt');
+ $this->assertFileDoesNotExist($this->path . '3d');
}
public function test_rename(): void
@@ -102,9 +102,9 @@ class phpbb_storage_adapter_local_subfolders_test extends phpbb_local_test_case
$this->adapter->rename('file.txt', 'file2.txt');
// Then
- $this->assertFileNotExists($this->path . '3d/8e/file.txt');
+ $this->assertFileDoesNotExist($this->path . '3d/8e/file.txt');
$this->assertFileExists($this->path . '27/36/file2.txt');
- $this->assertFileNotExists($this->path . '3d');
+ $this->assertFileDoesNotExist($this->path . '3d');
// Clean test
unlink($this->path . '27/36/file2.txt');
diff --git a/tests/storage/adapter/local_test.php b/tests/storage/adapter/local_test.php
index 5adee7d916..61d2e1d0c1 100644
--- a/tests/storage/adapter/local_test.php
+++ b/tests/storage/adapter/local_test.php
@@ -77,7 +77,7 @@ class phpbb_storage_adapter_local_test extends phpbb_local_test_case
$this->adapter->delete('file.txt');
// Then
- $this->assertFileNotExists($this->path . 'file.txt');
+ $this->assertFileDoesNotExist($this->path . 'file.txt');
}
public function test_rename(): void
@@ -85,13 +85,13 @@ class phpbb_storage_adapter_local_test extends phpbb_local_test_case
// Given
touch($this->path . 'file.txt');
$this->assertFileExists($this->path . 'file.txt');
- $this->assertFileNotExists($this->path . 'file2.txt');
+ $this->assertFileDoesNotExist($this->path . 'file2.txt');
// When
$this->adapter->rename('file.txt', 'file2.txt');
// Then
- $this->assertFileNotExists($this->path . 'file.txt');
+ $this->assertFileDoesNotExist($this->path . 'file.txt');
$this->assertFileExists($this->path . 'file2.txt');
// Clean test
diff --git a/tests/template/extension_test.php b/tests/template/extension_test.php
index bf8d4f568c..f7e30b35b1 100644
--- a/tests/template/extension_test.php
+++ b/tests/template/extension_test.php
@@ -88,7 +88,7 @@ class phpbb_template_extension_test extends phpbb_template_template_test_case
$class = new ReflectionClass('\phpbb\avatar\manager');
$enabled_drivers = $class->getProperty('enabled_drivers');
$enabled_drivers->setAccessible(true);
- $enabled_drivers->setValue(false);
+ $enabled_drivers->setValue($class, false);
$this->template_path = $this->test_path . '/templates';
diff --git a/tests/template/template_test.php b/tests/template/template_test.php
index 73f897749f..8faa52d8ac 100644
--- a/tests/template/template_test.php
+++ b/tests/template/template_test.php
@@ -528,7 +528,7 @@ class phpbb_template_template_test extends phpbb_template_template_test_case
$filename = 'file_not_found.html';
$this->template->set_filenames(array('test' => $filename));
- $this->assertFileNotExists($this->template_path . '/' . $filename, 'Testing missing file, file cannot exist');
+ $this->assertFileDoesNotExist($this->template_path . '/' . $filename, 'Testing missing file, file cannot exist');
$this->expectException(\Twig\Error\LoaderError::class);
diff --git a/tests/template/template_test_case_with_tree.php b/tests/template/template_test_case_with_tree.php
index 277313ccc3..8131567131 100644
--- a/tests/template/template_test_case_with_tree.php
+++ b/tests/template/template_test_case_with_tree.php
@@ -15,6 +15,12 @@ require_once __DIR__ . '/template_test_case.php';
class phpbb_template_template_test_case_with_tree extends phpbb_template_template_test_case
{
+ /** @var \phpbb\path_helper */
+ protected $phpbb_path_helper;
+
+ /** @var string */
+ protected $parent_template_path;
+
protected function setup_engine(array $new_config = array())
{
global $phpbb_root_path, $phpEx, $user;
diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php
index e8d5a653a6..030c8100ea 100644
--- a/tests/test_framework/phpbb_database_test_case.php
+++ b/tests/test_framework/phpbb_database_test_case.php
@@ -29,8 +29,6 @@ abstract class phpbb_database_test_case extends TestCase
protected static $install_schema_file;
- protected static $phpunit_version;
-
/**
* @var \Doctrine\DBAL\Connection[]
*/
@@ -40,9 +38,7 @@ abstract class phpbb_database_test_case extends TestCase
{
parent::__construct($name, $data, $dataName);
- self::$phpunit_version = PHPUnit\Runner\Version::id();
-
- $backupStaticAttributesBlacklist = [
+ $this->backupStaticAttributesExcludeList += [
'SebastianBergmann\CodeCoverage\CodeCoverage' => ['instance'],
'SebastianBergmann\CodeCoverage\Filter' => ['instance'],
'SebastianBergmann\CodeCoverage\Util' => ['ignoredLines', 'templateMethods'],
@@ -53,15 +49,6 @@ abstract class phpbb_database_test_case extends TestCase
'phpbb_database_test_case' => ['already_connected'],
];
- if (version_compare(self::$phpunit_version, '9.0', '>='))
- {
- $this->backupStaticAttributesExcludeList += $backupStaticAttributesBlacklist;
- }
- else
- {
- $this->backupStaticAttributesBlacklist += $backupStaticAttributesBlacklist;
- }
-
$this->db_connections = [];
$this->db_connections_doctrine = [];
}
@@ -303,6 +290,7 @@ abstract class phpbb_database_test_case extends TestCase
{
$config = $this->get_database_config();
+ /** @var \phpbb\db\driver\driver_interface $db */
$db = new $config['dbms']();
$db->sql_connect($config['dbhost'], $config['dbuser'], $config['dbpasswd'], $config['dbname'], $config['dbport']);
@@ -410,56 +398,4 @@ abstract class phpbb_database_test_case extends TestCase
return $core_tables;
}
-
- /**
- * PHPUnit deprecates several methods and properties in its recent versions
- * Provide BC layer to be able to test in multiple environment settings
- */
- public function expectException(string $exception): void
- {
- if (version_compare(self::$phpunit_version, '9.0', '>='))
- {
- switch ($exception) {
- case PHPUnit\Framework\Error\Deprecated::class:
- parent::expectDeprecation();
- break;
-
- case PHPUnit\Framework\Error\Error::class:
- parent::expectError();
- break;
-
- case PHPUnit\Framework\Error\Notice::class:
- parent::expectNotice();
- break;
-
- case PHPUnit\Framework\Error\Warning::class:
- parent::expectWarning();
- break;
-
- default:
- parent::expectException($exception);
- break;
- }
- }
- else
- {
- parent::expectException($exception);
- }
- }
-
- /**
- * PHPUnit deprecates several methods and properties in its recent versions
- * Provide BC layer to be able to test in multiple environment settings
- */
- public static function assertFileNotExists(string $filename, string $message = ''): void
- {
- if (version_compare(self::$phpunit_version, '9.0', '>='))
- {
- parent::assertFileDoesNotExist($filename, $message);
- }
- else
- {
- parent::assertFileNotExists($filename, $message);
- }
- }
}
diff --git a/tests/test_framework/phpbb_database_test_connection_manager.php b/tests/test_framework/phpbb_database_test_connection_manager.php
index c21a8fc95d..db73248f6c 100644
--- a/tests/test_framework/phpbb_database_test_connection_manager.php
+++ b/tests/test_framework/phpbb_database_test_connection_manager.php
@@ -520,7 +520,7 @@ class phpbb_database_test_connection_manager
$queries = array();
// Get escaped versions of the table names to synchronise
- $table_names = array_map(array($this->pdo, 'PDO::quote'), array_keys($table_column_map));
+ $table_names = array_map([$this->pdo, 'quote'], array_keys($table_column_map));
switch ($this->config['dbms'])
{
diff --git a/tests/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php
index 1ef7ac6407..a5b16082ff 100644
--- a/tests/test_framework/phpbb_functional_test_case.php
+++ b/tests/test_framework/phpbb_functional_test_case.php
@@ -11,12 +11,19 @@
*
*/
use Symfony\Component\BrowserKit\CookieJar;
+use Symfony\Component\BrowserKit\HttpBrowser;
+use Symfony\Component\HttpClient\HttpClient;
+use Symfony\Component\HttpClient\NativeHttpClient;
+use Symfony\Contracts\HttpClient\HttpClientInterface;
require_once __DIR__ . '/mock/phpbb_mock_null_installer_task.php';
class phpbb_functional_test_case extends phpbb_test_case
{
- /** @var \Goutte\Client */
+ /** @var HttpClientInterface */
+ protected static $http_client;
+
+ /** @var HttpBrowser */
protected static $client;
protected static $cookieJar;
protected static $root_url;
@@ -89,7 +96,9 @@ class phpbb_functional_test_case extends phpbb_test_case
$this->bootstrap();
self::$cookieJar = new CookieJar;
- self::$client = new Goutte\Client(array(), null, self::$cookieJar);
+ // Force native client on windows platform
+ self::$http_client = strtolower(substr(PHP_OS, 0, 3)) === 'win' ? new NativeHttpClient() : HttpClient::create();
+ self::$client = new HttpBrowser(self::$http_client, null, self::$cookieJar);
// Clear the language array so that things
// that were added in other tests are gone
@@ -158,6 +167,16 @@ class phpbb_functional_test_case extends phpbb_test_case
*/
static public function submit(Symfony\Component\DomCrawler\Form $form, array $values = array(), $assert_response_html = true)
{
+ // Remove files from form if no file was submitted
+ // See: https://github.com/symfony/symfony/issues/49014
+ foreach ($form->getFiles() as $field_name => $value)
+ {
+ if (!$value['name'] && !$value['tmp_name'])
+ {
+ $form->remove($field_name);
+ }
+ }
+
$crawler = self::$client->submit($form, $values);
if ($assert_response_html)
@@ -189,10 +208,9 @@ class phpbb_functional_test_case extends phpbb_test_case
{
parent::__construct($name, $data, $dataName);
- $backupStaticAttributesBlacklist = [
+ $this->backupStaticAttributesExcludeList += [
'phpbb_functional_test_case' => ['config', 'already_installed'],
];
- $this->excludeBackupStaticAttributes($backupStaticAttributesBlacklist);
}
protected function get_db()
@@ -270,7 +288,7 @@ class phpbb_functional_test_case extends phpbb_test_case
);
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
$container->set('migrator', $migrator);
- $container->set('dispatcher', $phpbb_dispatcher);
+ $container->set('event_dispatcher', $phpbb_dispatcher);
$cache = $this->getMockBuilder('\phpbb\cache\service')
->setConstructorArgs([$this->get_cache_driver(), $config, $this->db, $phpbb_dispatcher, $phpbb_root_path, $phpEx])
->setMethods(['deferred_purge'])
diff --git a/tests/test_framework/phpbb_test_case.php b/tests/test_framework/phpbb_test_case.php
index 56d8decbd8..11f9020e4f 100644
--- a/tests/test_framework/phpbb_test_case.php
+++ b/tests/test_framework/phpbb_test_case.php
@@ -16,15 +16,12 @@ use PHPUnit\Framework\TestCase;
class phpbb_test_case extends TestCase
{
protected $test_case_helpers;
- protected static $phpunit_version;
public function __construct($name = NULL, array $data = array(), $dataName = '')
{
parent::__construct($name, $data, $dataName);
- self::$phpunit_version = PHPUnit\Runner\Version::id();
-
- $backupStaticAttributesBlacklist = [
+ $this->backupStaticAttributesExcludeList += [
'SebastianBergmann\CodeCoverage\CodeCoverage' => ['instance'],
'SebastianBergmann\CodeCoverage\Filter' => ['instance'],
'SebastianBergmann\CodeCoverage\Util' => ['ignoredLines', 'templateMethods'],
@@ -34,7 +31,6 @@ class phpbb_test_case extends TestCase
'phpbb_database_test_case' => ['already_connected', 'last_post_timestamp'],
];
- $this->excludeBackupStaticAttributes($backupStaticAttributesBlacklist);
}
public function get_test_case_helpers()
@@ -51,88 +47,4 @@ class phpbb_test_case extends TestCase
{
$this->get_test_case_helpers()->setExpectedTriggerError($errno, $message);
}
-
- /**
- * PHPUnit deprecates several methods and properties in its recent versions
- * Provide BC layer to be able to test in multiple environment settings
- */
- public function excludeBackupStaticAttributes($attributes_array)
- {
- if (version_compare(self::$phpunit_version, '9.0', '>='))
- {
- $this->backupStaticAttributesExcludeList += $attributes_array;
- }
- else
- {
- $this->backupStaticAttributesBlacklist += $attributes_array;
- }
- }
-
- /**
- * PHPUnit deprecates several methods and properties in its recent versions
- * Provide BC layer to be able to test in multiple environment settings
- */
- public static function assertRegExp(string $pattern, string $string, string $message = ''): void
- {
- if (version_compare(self::$phpunit_version, '9.0', '>='))
- {
- parent::assertMatchesRegularExpression($pattern, $string, $message);
- }
- else
- {
- parent::assertRegExp($pattern, $string, $message);
- }
- }
-
- /**
- * PHPUnit deprecates several methods and properties in its recent versions
- * Provide BC layer to be able to test in multiple environment settings
- */
- public function expectException(string $exception): void
- {
- if (version_compare(self::$phpunit_version, '9.0', '>='))
- {
- switch ($exception) {
- case PHPUnit\Framework\Error\Deprecated::class:
- parent::expectDeprecation();
- break;
-
- case PHPUnit\Framework\Error\Error::class:
- parent::expectError();
- break;
-
- case PHPUnit\Framework\Error\Notice::class:
- parent::expectNotice();
- break;
-
- case PHPUnit\Framework\Error\Warning::class:
- parent::expectWarning();
- break;
-
- default:
- parent::expectException($exception);
- break;
- }
- }
- else
- {
- parent::expectException($exception);
- }
- }
-
- /**
- * PHPUnit deprecates several methods and properties in its recent versions
- * Provide BC layer to be able to test in multiple environment settings
- */
- public static function assertFileNotExists(string $filename, string $message = ''): void
- {
- if (version_compare(self::$phpunit_version, '9.0', '>='))
- {
- parent::assertFileDoesNotExist($filename, $message);
- }
- else
- {
- parent::assertFileNotExists($filename, $message);
- }
- }
}
diff --git a/tests/test_framework/phpbb_test_case_helpers.php b/tests/test_framework/phpbb_test_case_helpers.php
index c1ab852753..bed719c6bb 100644
--- a/tests/test_framework/phpbb_test_case_helpers.php
+++ b/tests/test_framework/phpbb_test_case_helpers.php
@@ -503,9 +503,9 @@ class phpbb_test_case_helpers
}
// Create an event dispatcher
- if ($container->has('dispatcher'))
+ if ($container->has('event_dispatcher'))
{
- $dispatcher = $container->get('dispatcher');
+ $dispatcher = $container->get('event_dispatcher');
}
else if (isset($phpbb_dispatcher))
{
diff --git a/tests/text_formatter/s9e/factory_test.php b/tests/text_formatter/s9e/factory_test.php
index 7e35c18332..5300b4c52d 100644
--- a/tests/text_formatter/s9e/factory_test.php
+++ b/tests/text_formatter/s9e/factory_test.php
@@ -156,7 +156,7 @@ class phpbb_textformatter_s9e_factory_test extends phpbb_database_test_case
$factory->tidy();
$this->assertFileExists($new_file, 'The current renderer has been deleted');
- $this->assertFileNotExists($old_file, 'The old renderer has not been deleted');
+ $this->assertFileDoesNotExist($old_file, 'The old renderer has not been deleted');
unlink($new_file);
}
diff --git a/tests/upload/filespec_test.php b/tests/upload/filespec_test.php
index c501788829..887cfdee41 100644
--- a/tests/upload/filespec_test.php
+++ b/tests/upload/filespec_test.php
@@ -230,7 +230,7 @@ class phpbb_filespec_test extends phpbb_test_case
$name = $filespec->get('realname');
$this->assertEquals(strlen($name), 32 + strlen(self::PREFIX));
- $this->assertRegExp('#^[A-Za-z0-9]+$#', substr($name, strlen(self::PREFIX)));
+ $this->assertMatchesRegularExpression('#^[A-Za-z0-9]+$#', substr($name, strlen(self::PREFIX)));
$this->assertFalse(isset($filenames[$name]));
$filenames[$name] = true;
}
@@ -246,7 +246,7 @@ class phpbb_filespec_test extends phpbb_test_case
$name = $filespec->get('realname');
$this->assertEquals(strlen($name), 32 + strlen(self::PREFIX) + strlen('.jpg'));
- $this->assertRegExp('#^[A-Za-z0-9]+\.jpg$#', substr($name, strlen(self::PREFIX)));
+ $this->assertMatchesRegularExpression('#^[A-Za-z0-9]+\.jpg$#', substr($name, strlen(self::PREFIX)));
$this->assertFalse(isset($filenames[$name]));
$filenames[$name] = true;
}
diff --git a/vagrant/after.sh b/vagrant/after.sh
index 89874df209..829a28a25d 100755
--- a/vagrant/after.sh
+++ b/vagrant/after.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-PHP_VERSION="7.3"
+PHP_VERSION="8.1"
PHPBB_PATH="/home/vagrant/phpbb"
PHPBB_CONFIG="${PHPBB_PATH}/phpBB/config.php"
PHPBB_INSTALL="${PHPBB_PATH}/vagrant/phpbb-install-config.yml"
diff --git a/vagrant/bootstrap.yaml b/vagrant/bootstrap.yaml
index a6d5fa9983..7deb4e70d7 100644
--- a/vagrant/bootstrap.yaml
+++ b/vagrant/bootstrap.yaml
@@ -14,7 +14,7 @@ keys:
folders:
- map: "."
to: "/home/vagrant/phpbb"
- php: "7.3"
+ php: "8.1"
sites:
- map: phpbb.app