diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 9ce8112d6..06eec4732 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -1,10 +1,9 @@ -FROM php:7.2-fpm - -# Fix Debian Buster EOL - point to archive repositories -RUN sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list && \ - sed -i 's|security.debian.org/debian-security|archive.debian.org/debian-security|g' /etc/apt/sources.list && \ - sed -i '/stretch-updates/d' /etc/apt/sources.list && \ - sed -i '/buster-updates/d' /etc/apt/sources.list +# PHP 8.4.27 fixes CVE-2026-109618 and CVE-2026-109619 (RCE in PHP-FPM) +# Read: https://www.php.net/archive/2026.php#2026-10-21-5 +# +# > use Debian Bookworm cause it ships ImageMagick 6: Imagick::setImageOpacity() +# > used by pavelzotikov/social-covers-generator does not exist with ImageMagick 7 +FROM php:8.4.27-fpm-bookworm RUN apt-get update && apt-get install -y --no-install-recommends \ git \ @@ -15,6 +14,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libssl-dev libpcre3 libpcre3-dev \ libmagickwand-dev imagemagick +# Build fonts cache for ImageMagick. Otherwise PHP-FPM workers log +# "Fontconfig error: No writable cache directories" on every cover render +RUN fc-cache -f + # Set the locale RUN apt-get -qq update && apt-get -qqy install locales RUN sed -i -e 's/# ru_RU ISO-8859-5/ru_RU ISO-8859-5/' /etc/locale.gen && \ @@ -35,33 +38,25 @@ RUN curl -sS https://getcomposer.org/installer | php RUN mv composer.phar /usr/local/bin/composer # Install memcache extension -RUN set -x \ - && cd /tmp \ - && curl -sSL -o php7.zip https://github.com/websupport-sk/pecl-memcache/archive/php7.zip \ - && unzip php7 \ - && cd pecl-memcache-php7 \ - && /usr/local/bin/phpize \ - && ./configure --with-php-config=/usr/local/bin/php-config \ - && make \ - && make install \ - && echo "extension=memcache.so" > /usr/local/etc/php/conf.d/ext-memcache.ini \ - && rm -rf /tmp/pecl-memcache-php7 php7.zip +# > version 8.x supports PHP 8 +RUN pecl install memcache-8.2 +RUN docker-php-ext-enable \ + memcache # Install ImageMagick -# > use version 3.4.3 cause "Function Imagick::setImageOpacity() is deprecated" -# > in 3.4.4 and above. Read: https://www.php.net/manual/en/imagick.setimageopacity.php -RUN pecl install -f imagick-3.4.3 +# > Imagick::setImageOpacity() is deprecated since 3.4.4, so we disable +# > E_DEPRECATED in bootstrap. Read: https://www.php.net/manual/en/imagick.setimageopacity.php +RUN pecl install imagick-3.8.1 RUN docker-php-ext-enable \ imagick # Install redis php-exts -# > use version 5.3.7 - last version compatible with PHP 7.2 -RUN pecl install redis-5.3.7 +RUN pecl install redis-6.3.0 RUN docker-php-ext-enable \ redis # Configure GD library -RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ +RUN docker-php-ext-configure gd --with-freetype --with-jpeg # Enable some php-exts RUN docker-php-ext-install \ diff --git a/www/application/bootstrap.php b/www/application/bootstrap.php index c059c6603..af72d4d13 100755 --- a/www/application/bootstrap.php +++ b/www/application/bootstrap.php @@ -111,12 +111,16 @@ } /** -* Turn off notices and strict errors on production +* Turn off notices and deprecations on production * @since 2017.16.02 @neSpecc +* +* > E_DEPRECATED must stay disabled: Kohana converts every reported error into +* > an exception, and Kohana 3.3 raises a lot of deprecations on PHP 8. +* > E_STRICT is not used since PHP 8.0 and the constant is deprecated in PHP 8.4 */ if ( Kohana::$environment === Kohana::PRODUCTION ) { - error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT); + error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED); } diff --git a/www/composer.json b/www/composer.json index cb35f0ebf..4554cff0b 100755 --- a/www/composer.json +++ b/www/composer.json @@ -1,6 +1,5 @@ { "require": { - "phpunit/phpunit": "3.7.*", "vlucas/phpdotenv": "^2.4", "codex-team/editor.js": "^2.0", "euskadi31/opengraph": "^1.0", diff --git a/www/composer.lock b/www/composer.lock index ed7a76010..24cf135a2 100644 --- a/www/composer.lock +++ b/www/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": "e96043ca5c19ba7924400ebab1a6107d", + "content-hash": "f39a76abb25f759f72cbd73abf8316a0", "packages": [ { "name": "aws/aws-crt-php", @@ -197,29 +197,31 @@ }, { "name": "codex-team/hawk.php", - "version": "2.1.4", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/codex-team/hawk.php.git", - "reference": "900844cf475938334aac66f9d21b75a9380063ba" + "reference": "358ff5a96234fba4eaa2768a43392daa5be0d50f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/codex-team/hawk.php/zipball/900844cf475938334aac66f9d21b75a9380063ba", - "reference": "900844cf475938334aac66f9d21b75a9380063ba", + "url": "https://api.github.com/repos/codex-team/hawk.php/zipball/358ff5a96234fba4eaa2768a43392daa5be0d50f", + "reference": "358ff5a96234fba4eaa2768a43392daa5be0d50f", "shasum": "" }, "require": { - "ext-curl": "*", "ext-json": "*", - "monolog/monolog": "^2.2", - "php": "^7.1" + "jean85/pretty-package-versions": "^1.5 || ^2.0", + "php": "^7.2 || ^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^2.15", "phpunit/phpunit": "^8.2", "symfony/var-dumper": "^5.2" }, + "suggest": { + "ext-curl": "Required to use the default CurlTransport. Not needed when providing a custom transport." + }, "type": "library", "autoload": { "psr-4": { @@ -235,14 +237,13 @@ "catcher", "error", "hawk", - "monolog", "php" ], "support": { "issues": "https://github.com/codex-team/hawk.php/issues", - "source": "https://github.com/codex-team/hawk.php/tree/v2.1.4" + "source": "https://github.com/codex-team/hawk.php/tree/v2.3.0" }, - "time": "2021-08-11T08:16:13+00:00" + "time": "2026-08-13T15:10:02+00:00" }, { "name": "euskadi31/opengraph", @@ -680,65 +681,40 @@ "time": "2022-10-26T14:07:24+00:00" }, { - "name": "monolog/monolog", - "version": "2.3.2", + "name": "jean85/pretty-package-versions", + "version": "2.1.1", "source": { "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "71312564759a7db5b789296369c1a264efc43aad" + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/71312564759a7db5b789296369c1a264efc43aad", - "reference": "71312564759a7db5b789296369c1a264efc43aad", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/4d7aa5dab42e2a76d99559706022885de0e18e1a", + "reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a", "shasum": "" }, "require": { - "php": ">=7.2", - "psr/log": "^1.0.1" - }, - "provide": { - "psr/log-implementation": "1.0.0" + "composer-runtime-api": "^2.1.0", + "php": "^7.4|^8.0" }, "require-dev": { - "aws/aws-sdk-php": "^2.4.9 || ^3.0", - "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7", - "graylog2/gelf-php": "^1.4.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "phpspec/prophecy": "^1.6.1", - "phpstan/phpstan": "^0.12.91", - "phpunit/phpunit": "^8.5", - "predis/predis": "^1.1", - "rollbar/rollbar": "^1.3", - "ruflin/elastica": ">=0.90 <7.0.1", - "swiftmailer/swiftmailer": "^5.3|^6.0" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + "friendsofphp/php-cs-fixer": "^3.2", + "jean85/composer-provided-replaced-stub-package": "^1.0", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^7.5|^8.5|^9.6", + "rector/rector": "^2.0", + "vimeo/psalm": "^4.3 || ^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Monolog\\": "src/Monolog" + "Jean85\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -747,33 +723,22 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" } ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "https://github.com/Seldaek/monolog", + "description": "A library to get pretty versions strings of installed dependencies", "keywords": [ - "log", - "logging", - "psr-3" + "composer", + "package", + "release", + "versions" ], "support": { - "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.3.2" + "issues": "https://github.com/Jean85/pretty-package-versions/issues", + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.1" }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", - "type": "tidelift" - } - ], - "time": "2021-07-23T07:42:52+00:00" + "time": "2025-03-19T14:43:43+00:00" }, { "name": "mtdowling/jmespath.php", @@ -880,411 +845,6 @@ }, "time": "2018-07-23T16:51:22+00:00" }, - { - "name": "phpunit/php-code-coverage", - "version": "1.2.18", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "fe2466802556d3fe4e4d1d58ffd3ccfd0a19be0b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/fe2466802556d3fe4e4d1d58ffd3ccfd0a19be0b", - "reference": "fe2466802556d3fe4e4d1d58ffd3ccfd0a19be0b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "phpunit/php-file-iterator": ">=1.3.0@stable", - "phpunit/php-text-template": ">=1.2.0@stable", - "phpunit/php-token-stream": ">=1.1.3,<1.3.0" - }, - "require-dev": { - "phpunit/phpunit": "3.7.*@dev" - }, - "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.0.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "PHP/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "irc": "irc://irc.freenode.net/phpunit", - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/1.2.18" - }, - "time": "2014-09-02T10:13:14+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "1.4.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "irc": "irc://irc.freenode.net/phpunit", - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/1.4.5" - }, - "time": "2017-11-27T13:52:08+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" - }, - "time": "2015-06-21T13:50:34+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "1.0.9", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/master" - }, - "time": "2017-02-26T11:10:40+00:00" - }, - { - "name": "phpunit/php-token-stream", - "version": "1.2.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/ad4e1e23ae01b483c16f600ff1bebec184588e32", - "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "classmap": [ - "PHP/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "support": { - "irc": "irc://irc.freenode.net/phpunit", - "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/1.2.2" - }, - "abandoned": true, - "time": "2014-03-03T05:10:30+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "3.7.38", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "38709dc22d519a3d1be46849868aa2ddf822bcf6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/38709dc22d519a3d1be46849868aa2ddf822bcf6", - "reference": "38709dc22d519a3d1be46849868aa2ddf822bcf6", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-dom": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.3.3", - "phpunit/php-code-coverage": "~1.2", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.1", - "phpunit/php-timer": "~1.0", - "phpunit/phpunit-mock-objects": "~1.2", - "symfony/yaml": "~2.0" - }, - "require-dev": { - "pear-pear.php.net/pear": "1.9.4" - }, - "suggest": { - "phpunit/php-invoker": "~1.1" - }, - "bin": [ - "composer/bin/phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.7.x-dev" - } - }, - "autoload": { - "classmap": [ - "PHPUnit/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "", - "../../symfony/yaml/" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "http://www.phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "irc": "irc://irc.freenode.net/phpunit", - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/3.7" - }, - "time": "2014-10-17T09:04:17+00:00" - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "1.2.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/5794e3c5c5ba0fb037b11d8151add2a07fa82875", - "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "phpunit/php-text-template": ">=1.1.1@stable" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "autoload": { - "classmap": [ - "PHPUnit/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "support": { - "irc": "irc://irc.freenode.net/phpunit", - "issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues", - "source": "https://github.com/sebastianbergmann/phpunit-mock-objects/tree/1.2.3" - }, - "abandoned": true, - "time": "2013-01-13T10:24:48+00:00" - }, { "name": "psr/http-client", "version": "1.0.1", @@ -1445,56 +1005,6 @@ }, "time": "2016-08-06T14:39:51+00:00" }, - { - "name": "psr/log", - "version": "1.1.4", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" - }, - "time": "2021-05-03T11:20:27+00:00" - }, { "name": "ralouphie/getallheaders", "version": "3.0.3", @@ -1848,59 +1358,6 @@ ], "time": "2022-11-03T14:55:06+00:00" }, - { - "name": "symfony/yaml", - "version": "v2.8.52", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/polyfill-ctype": "~1.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "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": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v2.8.52" - }, - "time": "2018-11-11T11:18:13+00:00" - }, { "name": "vlucas/phpdotenv", "version": "v2.6.7", @@ -1989,6 +1446,6 @@ "platform": { "ext-simplexml": "*" }, - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform-dev": {}, + "plugin-api-version": "2.9.0" } diff --git a/www/modules/aliases b/www/modules/aliases index 8fea075c6..28d2f1d09 160000 --- a/www/modules/aliases +++ b/www/modules/aliases @@ -1 +1 @@ -Subproject commit 8fea075c6986164fb74678b129abb136c595ffdf +Subproject commit 28d2f1d0952d9f311f26f2bca5cb3efc34895710 diff --git a/www/modules/image/classes/Kohana/Image/GD.php b/www/modules/image/classes/Kohana/Image/GD.php index 6f383e3d0..31204f5a9 100755 --- a/www/modules/image/classes/Kohana/Image/GD.php +++ b/www/modules/image/classes/Kohana/Image/GD.php @@ -138,7 +138,8 @@ public function __destruct() */ protected function _load_image() { - if ( ! is_resource($this->_image)) + // GD returns GdImage objects instead of resources since PHP 8.0 + if ( ! is_resource($this->_image) AND ! ($this->_image instanceof GdImage)) { // Gets create function $create = $this->_create_function; @@ -259,7 +260,7 @@ protected function _do_rotate($degrees) $transparent = imagecolorallocatealpha($this->_image, 0, 0, 0, 127); // Rotate, setting the transparent color - $image = imagerotate($this->_image, 360 - $degrees, $transparent, 1); + $image = imagerotate($this->_image, 360 - $degrees, $transparent); // Save the alpha of the rotated image imagesavealpha($image, TRUE); diff --git a/www/public/build/release.json b/www/public/build/release.json index 301f8c74e..29cee015e 100644 --- a/www/public/build/release.json +++ b/www/public/build/release.json @@ -1 +1 @@ -{"release":"0dbef819201fa99bd372","date":1792542020632} \ No newline at end of file +{"release":"0dbef819201fa99bd372","date":1792618572556} \ No newline at end of file diff --git a/www/system/classes/Kohana/Arr.php b/www/system/classes/Kohana/Arr.php index 479b72f6c..084ca6716 100755 --- a/www/system/classes/Kohana/Arr.php +++ b/www/system/classes/Kohana/Arr.php @@ -101,7 +101,8 @@ public static function path($array, $path, $default = NULL, $delimiter = NULL) } else { - if (array_key_exists($path, $array)) + // array_key_exists() does not accept objects since PHP 8.0 + if (is_array($array) ? array_key_exists($path, $array) : ($array instanceof ArrayAccess AND $array->offsetExists($path))) { // No need to do extra processing return $array[$path]; diff --git a/www/system/classes/Kohana/Response.php b/www/system/classes/Kohana/Response.php index d9ab5fc5a..25774fec9 100755 --- a/www/system/classes/Kohana/Response.php +++ b/www/system/classes/Kohana/Response.php @@ -297,8 +297,7 @@ public function cookie($key = NULL, $value = NULL) // Handle the set cookie calls if (is_array($key)) { - reset($key); - while (list($_key, $_value) = each($key)) + foreach ($key as $_key => $_value) { $this->cookie($_key, $_value); }