aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml33
-rw-r--r--INSTALL.md2
-rw-r--r--composer.json6
-rw-r--r--composer.lock437
-rw-r--r--config/studip-requirements.php2
-rw-r--r--docker/build_images.sh6
-rw-r--r--docker/tests/php82/Dockerfile (renamed from docker/tests/php72/Dockerfile)7
-rw-r--r--phpstan.neon.dist2
-rw-r--r--tests/jsonapi/BlubberThreadsShowTest.php5
9 files changed, 189 insertions, 311 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1b6b6af..7b6f7bd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,4 @@
-image: studip/studip:tests-php7.2
+image: studip/studip:tests-php8.2
variables:
FF_NETWORK_PER_BUILD: 1
@@ -110,6 +110,36 @@ lint-php:
reports:
codequality: $PHPLINT_CODE_QUALITY_REPORT
+lint-php-7.4:
+ image: studip/studip:tests-php8.2
+ stage: checks
+ needs: [build-composer]
+ variables:
+ CACHE_LOCATION: $CACHE_DIR/phplint-cache
+ PHPLINT_JSON_REPORT: $REPORT_DIR/phplint-report-7.4.json
+ PHPLINT_CODE_QUALITY_REPORT: $REPORT_DIR/phplint-codequality-7.4.json
+ interruptible: true
+ cache:
+ - *composer-cache
+ - key: "$CI_JOB_NAME_SLUG:$CI_COMMIT_REF_SLUG"
+ paths:
+ - $CACHE_LOCATION
+ before_script:
+ - *mkdir-caches
+ - *mkdir-reports
+ - *install-composer
+ script:
+ - COMPOSER_MEMORY_LIMIT=-1
+ composer exec phplint
+ --
+ --json $PHPLINT_JSON_REPORT
+ --cache=$CACHE_LOCATION
+ after_script:
+ - ./.gitlab/scripts/convert-phplint-report $PHPLINT_JSON_REPORT > $PHPLINT_CODE_QUALITY_REPORT
+ artifacts:
+ reports:
+ codequality: $PHPLINT_CODE_QUALITY_REPORT
+
lint-js:
stage: checks
needs: []
@@ -229,6 +259,7 @@ test-unit:
test-jest:
stage: test
needs: [lint-js]
+ image: $NODE_IMAGE
variables:
JS_TEST_REPORT: $REPORT_DIR/jest.xml
cache: *npm-cache
diff --git a/INSTALL.md b/INSTALL.md
index 1621e12..f573198 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -2,7 +2,7 @@ Die Installation von Stud.IP ist halb so schlimm:
es müssen lediglich ein paar Dateien kopiert werden und ein paar
Programme laufen ;-)
-Vorausgesetzt wird ein Webserver wie Apache2 oder nginx mit PHP-7.2 Modulen und
+Vorausgesetzt wird ein Webserver wie Apache2 oder nginx mit PHP-7.4 Modulen und
eine MySQL 5.7.6 Datenbank.
Was genau zu tun ist, steht in
diff --git a/composer.json b/composer.json
index 671d914..b98b402 100644
--- a/composer.json
+++ b/composer.json
@@ -4,7 +4,7 @@
"config": {
"vendor-dir": "composer",
"platform": {
- "php": "7.2.5"
+ "php": "7.4"
}
},
"require-dev": {
@@ -55,8 +55,6 @@
"league/oauth2-server": "^8.3",
"willdurand/negotiation": "^3.1",
"monolog/monolog": "^2.8",
- "symfony/polyfill-php73": "^1.27",
- "symfony/polyfill-php74": "^1.27",
"symfony/polyfill-php80": "^1.27",
"symfony/polyfill-php81": "^1.27",
"phpowermove/docblock": "^2.0",
@@ -72,6 +70,8 @@
"symfony/polyfill-php70": "*",
"symfony/polyfill-php71": "*",
"symfony/polyfill-php72": "*",
+ "symfony/polyfill-php73": "*",
+ "symfony/polyfill-php74": "*",
"symfony/polyfill-mbstring": "*"
}
}
diff --git a/composer.lock b/composer.lock
index 5b69bf8..dc1399e 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "69792b2073d4bfc2b8ba69de88ab068b",
+ "content-hash": "0cd6741cbad14a70b1d619d5c98f7378",
"packages": [
{
"name": "algo26-matthias/idna-convert",
@@ -230,16 +230,16 @@
},
{
"name": "defuse/php-encryption",
- "version": "v2.4.0",
+ "version": "v2.3.1",
"source": {
"type": "git",
"url": "https://github.com/defuse/php-encryption.git",
- "reference": "f53396c2d34225064647a05ca76c1da9d99e5828"
+ "reference": "77880488b9954b7884c25555c2a0ea9e7053f9d2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/defuse/php-encryption/zipball/f53396c2d34225064647a05ca76c1da9d99e5828",
- "reference": "f53396c2d34225064647a05ca76c1da9d99e5828",
+ "url": "https://api.github.com/repos/defuse/php-encryption/zipball/77880488b9954b7884c25555c2a0ea9e7053f9d2",
+ "reference": "77880488b9954b7884c25555c2a0ea9e7053f9d2",
"shasum": ""
},
"require": {
@@ -248,8 +248,7 @@
"php": ">=5.6.0"
},
"require-dev": {
- "phpunit/phpunit": "^5|^6|^7|^8|^9|^10",
- "yoast/phpunit-polyfills": "^2.0.0"
+ "phpunit/phpunit": "^4|^5|^6|^7|^8|^9"
},
"bin": [
"bin/generate-defuse-key"
@@ -291,9 +290,9 @@
],
"support": {
"issues": "https://github.com/defuse/php-encryption/issues",
- "source": "https://github.com/defuse/php-encryption/tree/v2.4.0"
+ "source": "https://github.com/defuse/php-encryption/tree/v2.3.1"
},
- "time": "2023-06-19T06:10:36+00:00"
+ "time": "2021-04-09T23:57:26+00:00"
},
{
"name": "ezyang/htmlpurifier",
@@ -414,22 +413,22 @@
},
{
"name": "guzzlehttp/psr7",
- "version": "2.6.1",
+ "version": "2.4.4",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727"
+ "reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/be45764272e8873c72dbe3d2edcfdfcc3bc9f727",
- "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf",
+ "reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
"psr/http-factory": "^1.0",
- "psr/http-message": "^1.1 || ^2.0",
+ "psr/http-message": "^1.0",
"ralouphie/getallheaders": "^3.0"
},
"provide": {
@@ -449,6 +448,9 @@
"bamarni-bin": {
"bin-links": true,
"forward-command": false
+ },
+ "branch-alias": {
+ "dev-master": "2.4-dev"
}
},
"autoload": {
@@ -510,7 +512,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.6.1"
+ "source": "https://github.com/guzzle/psr7/tree/2.4.4"
},
"funding": [
{
@@ -526,7 +528,7 @@
"type": "tidelift"
}
],
- "time": "2023-08-27T10:13:57+00:00"
+ "time": "2023-03-09T13:19:02+00:00"
},
{
"name": "jakeasmith/http_build_url",
@@ -919,16 +921,16 @@
},
{
"name": "league/oauth2-server",
- "version": "8.4.2",
+ "version": "8.4.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/oauth2-server.git",
- "reference": "007dc5f6c0151a73b133fec36c9686cc956209d3"
+ "reference": "eed31d86d8cc8e6e9c9f58fbb2113494f8b41e24"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/007dc5f6c0151a73b133fec36c9686cc956209d3",
- "reference": "007dc5f6c0151a73b133fec36c9686cc956209d3",
+ "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/eed31d86d8cc8e6e9c9f58fbb2113494f8b41e24",
+ "reference": "eed31d86d8cc8e6e9c9f58fbb2113494f8b41e24",
"shasum": ""
},
"require": {
@@ -995,7 +997,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/oauth2-server/issues",
- "source": "https://github.com/thephpleague/oauth2-server/tree/8.4.2"
+ "source": "https://github.com/thephpleague/oauth2-server/tree/8.4.1"
},
"funding": [
{
@@ -1003,7 +1005,7 @@
"type": "github"
}
],
- "time": "2023-08-02T22:54:39+00:00"
+ "time": "2023-03-22T11:47:53+00:00"
},
{
"name": "league/uri",
@@ -2419,16 +2421,16 @@
},
{
"name": "phpseclib/phpseclib",
- "version": "3.0.23",
+ "version": "3.0.19",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
- "reference": "866cc78fbd82462ffd880e3f65692afe928bed50"
+ "reference": "cc181005cf548bfd8a4896383bb825d859259f95"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/866cc78fbd82462ffd880e3f65692afe928bed50",
- "reference": "866cc78fbd82462ffd880e3f65692afe928bed50",
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/cc181005cf548bfd8a4896383bb825d859259f95",
+ "reference": "cc181005cf548bfd8a4896383bb825d859259f95",
"shasum": ""
},
"require": {
@@ -2509,7 +2511,7 @@
],
"support": {
"issues": "https://github.com/phpseclib/phpseclib/issues",
- "source": "https://github.com/phpseclib/phpseclib/tree/3.0.23"
+ "source": "https://github.com/phpseclib/phpseclib/tree/3.0.19"
},
"funding": [
{
@@ -2525,7 +2527,7 @@
"type": "tidelift"
}
],
- "time": "2023-09-18T17:22:01+00:00"
+ "time": "2023-03-05T17:13:09+00:00"
},
{
"name": "phpxmlrpc/extras",
@@ -2740,21 +2742,21 @@
},
{
"name": "psr/http-factory",
- "version": "1.0.2",
+ "version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
- "reference": "e616d01114759c4c489f93b099585439f795fe35"
+ "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
- "reference": "e616d01114759c4c489f93b099585439f795fe35",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
+ "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
"shasum": ""
},
"require": {
"php": ">=7.0.0",
- "psr/http-message": "^1.0 || ^2.0"
+ "psr/http-message": "^1.0"
},
"type": "library",
"extra": {
@@ -2774,7 +2776,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
+ "homepage": "http://www.php-fig.org/"
}
],
"description": "Common interfaces for PSR-7 HTTP message factories",
@@ -2789,31 +2791,31 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+ "source": "https://github.com/php-fig/http-factory/tree/master"
},
- "time": "2023-04-10T20:10:41+00:00"
+ "time": "2019-04-30T12:38:16+00:00"
},
{
"name": "psr/http-message",
- "version": "1.1",
+ "version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
- "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
- "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0"
+ "php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
@@ -2842,9 +2844,9 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-message/tree/1.1"
+ "source": "https://github.com/php-fig/http-message/tree/master"
},
- "time": "2023-04-04T09:50:52+00:00"
+ "time": "2016-08-06T14:39:51+00:00"
},
{
"name": "psr/http-server-handler",
@@ -3107,16 +3109,16 @@
},
{
"name": "scssphp/scssphp",
- "version": "v1.11.1",
+ "version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/scssphp/scssphp.git",
- "reference": "ace2503684bab0dcc817d7614c8a54b865122414"
+ "reference": "33749d12c2569bb24071f94e9af828662dabb068"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/scssphp/scssphp/zipball/ace2503684bab0dcc817d7614c8a54b865122414",
- "reference": "ace2503684bab0dcc817d7614c8a54b865122414",
+ "url": "https://api.github.com/repos/scssphp/scssphp/zipball/33749d12c2569bb24071f94e9af828662dabb068",
+ "reference": "33749d12c2569bb24071f94e9af828662dabb068",
"shasum": ""
},
"require": {
@@ -3133,7 +3135,7 @@
"thoughtbot/bourbon": "^7.0",
"twbs/bootstrap": "~5.0",
"twbs/bootstrap4": "4.6.1",
- "zurb/foundation": "~6.7.0"
+ "zurb/foundation": "~6.5"
},
"suggest": {
"ext-iconv": "Can be used as fallback when ext-mbstring is not available",
@@ -3181,22 +3183,22 @@
],
"support": {
"issues": "https://github.com/scssphp/scssphp/issues",
- "source": "https://github.com/scssphp/scssphp/tree/v1.11.1"
+ "source": "https://github.com/scssphp/scssphp/tree/v1.11.0"
},
- "time": "2023-09-24T13:38:17+00:00"
+ "time": "2022-09-02T21:24:55+00:00"
},
{
"name": "slim/psr7",
- "version": "1.4.1",
+ "version": "1.4",
"source": {
"type": "git",
"url": "https://github.com/slimphp/Slim-Psr7.git",
- "reference": "d3cea6539bdd0910a1e3ea2cc2a96c363c2403c3"
+ "reference": "0dca983ca32a26f4a91fb11173b7b9eaee29e9d6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/slimphp/Slim-Psr7/zipball/d3cea6539bdd0910a1e3ea2cc2a96c363c2403c3",
- "reference": "d3cea6539bdd0910a1e3ea2cc2a96c363c2403c3",
+ "url": "https://api.github.com/repos/slimphp/Slim-Psr7/zipball/0dca983ca32a26f4a91fb11173b7b9eaee29e9d6",
+ "reference": "0dca983ca32a26f4a91fb11173b7b9eaee29e9d6",
"shasum": ""
},
"require": {
@@ -3262,9 +3264,9 @@
],
"support": {
"issues": "https://github.com/slimphp/Slim-Psr7/issues",
- "source": "https://github.com/slimphp/Slim-Psr7/tree/1.4.1"
+ "source": "https://github.com/slimphp/Slim-Psr7/tree/1.4"
},
- "time": "2023-05-10T04:00:20+00:00"
+ "time": "2021-05-08T18:22:56+00:00"
},
{
"name": "slim/slim",
@@ -3457,16 +3459,16 @@
},
{
"name": "symfony/console",
- "version": "v5.4.28",
+ "version": "v5.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "f4f71842f24c2023b91237c72a365306f3c58827"
+ "reference": "c77433ddc6cdc689caf48065d9ea22ca0853fbd9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/f4f71842f24c2023b91237c72a365306f3c58827",
- "reference": "f4f71842f24c2023b91237c72a365306f3c58827",
+ "url": "https://api.github.com/repos/symfony/console/zipball/c77433ddc6cdc689caf48065d9ea22ca0853fbd9",
+ "reference": "c77433ddc6cdc689caf48065d9ea22ca0853fbd9",
"shasum": ""
},
"require": {
@@ -3531,12 +3533,12 @@
"homepage": "https://symfony.com",
"keywords": [
"cli",
- "command-line",
+ "command line",
"console",
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.28"
+ "source": "https://github.com/symfony/console/tree/v5.4.21"
},
"funding": [
{
@@ -3552,7 +3554,7 @@
"type": "tidelift"
}
],
- "time": "2023-08-07T06:12:30+00:00"
+ "time": "2023-02-25T16:59:41+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -3623,16 +3625,16 @@
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.28.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
"shasum": ""
},
"require": {
@@ -3647,7 +3649,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.28-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3685,7 +3687,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
},
"funding": [
{
@@ -3701,20 +3703,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.28.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "875e90aeea2777b6f135677f618529449334a612"
+ "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612",
- "reference": "875e90aeea2777b6f135677f618529449334a612",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
+ "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
"shasum": ""
},
"require": {
@@ -3726,7 +3728,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.28-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3766,7 +3768,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
},
"funding": [
{
@@ -3782,20 +3784,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.28.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
+ "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
- "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
"shasum": ""
},
"require": {
@@ -3807,7 +3809,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.28-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3850,7 +3852,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
},
"funding": [
{
@@ -3866,179 +3868,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
- },
- {
- "name": "symfony/polyfill-php73",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5",
- "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "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\\Php73\\": ""
- },
- "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 7.3+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php73/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-01-26T09:26:14+00:00"
- },
- {
- "name": "symfony/polyfill-php74",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php74.git",
- "reference": "8b755b41a155c89f1af29cc33305538499fa05ea"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php74/zipball/8b755b41a155c89f1af29cc33305538499fa05ea",
- "reference": "8b755b41a155c89f1af29cc33305538499fa05ea",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "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\\Php74\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 7.4+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php74/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-01-26T09:26:14+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.28.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
+ "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
"shasum": ""
},
"require": {
@@ -4047,7 +3890,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.28-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4092,7 +3935,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
},
"funding": [
{
@@ -4108,20 +3951,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php81",
- "version": "v1.28.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b"
+ "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b",
- "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
+ "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
"shasum": ""
},
"require": {
@@ -4130,7 +3973,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.28-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4171,7 +4014,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
},
"funding": [
{
@@ -4187,7 +4030,7 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php82",
@@ -4350,16 +4193,16 @@
},
{
"name": "symfony/process",
- "version": "v5.4.28",
+ "version": "v5.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b"
+ "reference": "d4ce417ebcb0b7d090b4c178ed6d3accc518e8bd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b",
- "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b",
+ "url": "https://api.github.com/repos/symfony/process/zipball/d4ce417ebcb0b7d090b4c178ed6d3accc518e8bd",
+ "reference": "d4ce417ebcb0b7d090b4c178ed6d3accc518e8bd",
"shasum": ""
},
"require": {
@@ -4392,7 +4235,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.28"
+ "source": "https://github.com/symfony/process/tree/v5.4.21"
},
"funding": [
{
@@ -4408,7 +4251,7 @@
"type": "tidelift"
}
],
- "time": "2023-08-07T10:36:04+00:00"
+ "time": "2023-02-21T19:46:44+00:00"
},
{
"name": "symfony/service-contracts",
@@ -4495,16 +4338,16 @@
},
{
"name": "symfony/string",
- "version": "v5.4.29",
+ "version": "v5.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "e41bdc93def20eaf3bfc1537c4e0a2b0680a152d"
+ "reference": "edac10d167b78b1d90f46a80320d632de0bd9f2f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/e41bdc93def20eaf3bfc1537c4e0a2b0680a152d",
- "reference": "e41bdc93def20eaf3bfc1537c4e0a2b0680a152d",
+ "url": "https://api.github.com/repos/symfony/string/zipball/edac10d167b78b1d90f46a80320d632de0bd9f2f",
+ "reference": "edac10d167b78b1d90f46a80320d632de0bd9f2f",
"shasum": ""
},
"require": {
@@ -4561,7 +4404,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v5.4.29"
+ "source": "https://github.com/symfony/string/tree/v5.4.21"
},
"funding": [
{
@@ -4577,20 +4420,20 @@
"type": "tidelift"
}
],
- "time": "2023-09-13T11:47:41+00:00"
+ "time": "2023-02-22T08:00:55+00:00"
},
{
"name": "symfony/yaml",
- "version": "v5.4.23",
+ "version": "v5.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b"
+ "reference": "3713e20d93e46e681e51605d213027e48dab3469"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/4cd2e3ea301aadd76a4172756296fe552fb45b0b",
- "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/3713e20d93e46e681e51605d213027e48dab3469",
+ "reference": "3713e20d93e46e681e51605d213027e48dab3469",
"shasum": ""
},
"require": {
@@ -4636,7 +4479,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/v5.4.21"
},
"funding": [
{
@@ -4652,20 +4495,20 @@
"type": "tidelift"
}
],
- "time": "2023-04-23T19:33:36+00:00"
+ "time": "2023-02-21T19:46:44+00:00"
},
{
"name": "tecnickcom/tcpdf",
- "version": "6.6.5",
+ "version": "6.6.2",
"source": {
"type": "git",
"url": "https://github.com/tecnickcom/TCPDF.git",
- "reference": "5fce932fcee4371865314ab7f6c0d85423c5c7ce"
+ "reference": "e3cffc9bcbc76e89e167e9eb0bbda0cab7518459"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/5fce932fcee4371865314ab7f6c0d85423c5c7ce",
- "reference": "5fce932fcee4371865314ab7f6c0d85423c5c7ce",
+ "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/e3cffc9bcbc76e89e167e9eb0bbda0cab7518459",
+ "reference": "e3cffc9bcbc76e89e167e9eb0bbda0cab7518459",
"shasum": ""
},
"require": {
@@ -4694,7 +4537,7 @@
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "LGPL-3.0-or-later"
+ "LGPL-3.0-only"
],
"authors": [
{
@@ -4716,7 +4559,7 @@
],
"support": {
"issues": "https://github.com/tecnickcom/TCPDF/issues",
- "source": "https://github.com/tecnickcom/TCPDF/tree/6.6.5"
+ "source": "https://github.com/tecnickcom/TCPDF/tree/6.6.2"
},
"funding": [
{
@@ -4724,7 +4567,7 @@
"type": "custom"
}
],
- "time": "2023-09-06T15:09:26+00:00"
+ "time": "2022-12-17T10:28:59+00:00"
},
{
"name": "thecodingmachine/safe",
@@ -6013,16 +5856,16 @@
},
{
"name": "phpstan/phpstan",
- "version": "1.10.38",
+ "version": "1.10.8",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "5302bb402c57f00fb3c2c015bac86e0827e4b691"
+ "reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/5302bb402c57f00fb3c2c015bac86e0827e4b691",
- "reference": "5302bb402c57f00fb3c2c015bac86e0827e4b691",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0166aef76e066f0dd2adc2799bdadfa1635711e9",
+ "reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9",
"shasum": ""
},
"require": {
@@ -6071,7 +5914,7 @@
"type": "tidelift"
}
],
- "time": "2023-10-06T14:19:14+00:00"
+ "time": "2023-03-24T10:28:16+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -7541,16 +7384,16 @@
},
{
"name": "symfony/var-dumper",
- "version": "v5.4.29",
+ "version": "v5.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65"
+ "reference": "6c5ac3a1be8b849d59a1a77877ee110e1b55eb74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6172e4ae3534d25ee9e07eb487c20be7760fcc65",
- "reference": "6172e4ae3534d25ee9e07eb487c20be7760fcc65",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6c5ac3a1be8b849d59a1a77877ee110e1b55eb74",
+ "reference": "6c5ac3a1be8b849d59a1a77877ee110e1b55eb74",
"shasum": ""
},
"require": {
@@ -7559,12 +7402,12 @@
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
+ "phpunit/phpunit": "<5.4.3",
"symfony/console": "<4.4"
},
"require-dev": {
"ext-iconv": "*",
"symfony/console": "^4.4|^5.0|^6.0",
- "symfony/http-kernel": "^4.4|^5.0|^6.0",
"symfony/process": "^4.4|^5.0|^6.0",
"symfony/uid": "^5.1|^6.0",
"twig/twig": "^2.13|^3.0.4"
@@ -7610,7 +7453,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.4.29"
+ "source": "https://github.com/symfony/var-dumper/tree/v5.4.21"
},
"funding": [
{
@@ -7626,7 +7469,7 @@
"type": "tidelift"
}
],
- "time": "2023-09-12T10:09:58+00:00"
+ "time": "2023-02-23T10:00:28+00:00"
},
{
"name": "theseer/tokenizer",
@@ -7765,7 +7608,7 @@
},
"platform-dev": [],
"platform-overrides": {
- "php": "7.2.5"
+ "php": "7.4"
},
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/config/studip-requirements.php b/config/studip-requirements.php
index 56a0583..9403034 100644
--- a/config/studip-requirements.php
+++ b/config/studip-requirements.php
@@ -1,7 +1,7 @@
<?php
return [
'php' => [
- 'version' => '7.2',
+ 'version' => '7.4',
'modules' => [
'PDO' => true,
'pdo_mysql' => true,
diff --git a/docker/build_images.sh b/docker/build_images.sh
index 1fb09f6..f8feb9f 100644
--- a/docker/build_images.sh
+++ b/docker/build_images.sh
@@ -9,9 +9,9 @@ build_image () {
fi
}
-build_image tests/php72 studip:tests-php7.2 &
-build_image tests/php74 studip:tests &
+build_image tests/php82 studip:tests-php8.2 &
+build_image tests/php74 studip:tests-php7.4 &
build_image release-cli release-cli &
wait
-echo "Images built" \ No newline at end of file
+echo "Images built"
diff --git a/docker/tests/php72/Dockerfile b/docker/tests/php82/Dockerfile
index b8b277b..f1a5793 100644
--- a/docker/tests/php72/Dockerfile
+++ b/docker/tests/php82/Dockerfile
@@ -1,5 +1,5 @@
# Setup php, apache and stud.ip
-FROM php:7.2-cli
+FROM php:8.2-cli
# Install system requirements
RUN apt update && apt install -y --no-install-recommends \
@@ -10,9 +10,8 @@ RUN apt update && apt install -y --no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
# Install php extensions
-RUN docker-php-ext-configure gd --with-png-dir=/usr/include/ \
- --with-jpeg-dir=/usr/include/
-RUN docker-php-ext-install pdo gettext curl gd mbstring zip pdo pdo_mysql mysqli intl json
+RUN docker-php-ext-configure gd --with-jpeg=/usr/include/
+RUN docker-php-ext-install -j$(nproc) pdo gettext curl gd mbstring zip pdo pdo_mysql mysqli intl
# Install npm using nvm
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash -
diff --git a/phpstan.neon.dist b/phpstan.neon.dist
index 1682aa4..17ff7c6 100644
--- a/phpstan.neon.dist
+++ b/phpstan.neon.dist
@@ -1,6 +1,6 @@
parameters:
level: 0
- phpVersion: 70200 # PHP 7.2
+ phpVersion: 70400 # PHP 7.4
paths:
- app/controllers
- app/routes
diff --git a/tests/jsonapi/BlubberThreadsShowTest.php b/tests/jsonapi/BlubberThreadsShowTest.php
index 910338d..932b768 100644
--- a/tests/jsonapi/BlubberThreadsShowTest.php
+++ b/tests/jsonapi/BlubberThreadsShowTest.php
@@ -11,10 +11,15 @@ class BlubberThreadsShowTest extends \Codeception\Test\Unit
*/
protected $tester;
+ protected $csrf_storage = [];
+
protected function _before()
{
\DBManager::getInstance()->setConnection('studip', $this->getModule('\\Helper\\StudipDb')->dbh);
+
+ CSRFProtection::setStorage($this->csrf_storage);
+
// Create global template factory if neccessary
$has_template_factory = isset($GLOBALS['template_factory']);
if (!$has_template_factory) {