From 65930d9b3351f80faecc232be2a87cb38555d242 Mon Sep 17 00:00:00 2001 From: Aleksandr Denisyuk Date: Tue, 22 Sep 2026 15:44:18 +0300 Subject: [PATCH] Update PHP versions --- .github/workflows/ci.yml | 32 +++++++++++++++++--------------- .php-cs-fixer.dist.php | 2 ++ Dockerfile | 4 ++-- Makefile | 4 ++-- composer.json | 8 ++++---- psalm-baseline.xml | 2 +- src/TmpFile.php | 8 ++++++-- 7 files changed, 34 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 579c8ae..363ac87 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,14 +22,14 @@ jobs: runs-on: 'ubuntu-latest' steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v7 - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '8.3' + php-version: '8.5' coverage: none - name: Install dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v4 - name: Run ParallelLint run: composer parallel-lint -- --no-progress --ignore-fails @@ -38,14 +38,14 @@ jobs: runs-on: 'ubuntu-latest' steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v7 - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '8.3' + php-version: '8.5' coverage: none - name: Install dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v4 - name: Run Psalm run: composer psalm -- --show-info=false --no-progress --no-suggestions --no-cache @@ -54,14 +54,14 @@ jobs: runs-on: 'ubuntu-latest' steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v7 - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '8.3' + php-version: '8.5' coverage: none - name: Install dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v4 - name: Run Rector run: composer rector:diff -- --no-progress-bar --clear-cache @@ -70,14 +70,14 @@ jobs: runs-on: 'ubuntu-latest' steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v7 - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '8.3' + php-version: '8.5' coverage: none - name: Install dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v4 - name: Run PHPCsFixer run: composer php-cs-fixer:diff -- --no-interaction --using-cache=no @@ -96,20 +96,22 @@ jobs: - '8.1' - '8.2' - '8.3' + - '8.4' + - '8.5' composer-dependency: - 'lowest' - 'highest' steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v7 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} coverage: none - name: Install dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v4 with: dependency-versions: ${{ matrix.composer-dependency }} - name: Run PHPUnit - run: composer phpunit -- --no-interaction --do-not-cache-result + run: composer --no-interaction phpunit -- --do-not-cache-result diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 54072da..d4e712b 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -16,6 +16,8 @@ ->setRules([ '@Symfony' => true, '@Symfony:risky' => true, + 'declare_strict_types' => ['strategy' => 'enforce'], + 'phpdoc_align' => false, ]) ->setFinder($finder) ; diff --git a/Dockerfile b/Dockerfile index 04cbff0..bd6f8d9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM php:8.3-cli-trixie +FROM php:8.5-cli-trixie RUN set -eux ; \ apt-get update ; \ @@ -17,7 +17,7 @@ RUN set -eux ; \ pecl install pcov ; \ docker-php-ext-enable pcov ; -COPY --from=composer/composer:2.9 /usr/bin/composer /usr/local/bin/composer +COPY --from=composer/composer:2.10 /usr/bin/composer /usr/local/bin/composer WORKDIR /usr/local/packages/tmpfile diff --git a/Makefile b/Makefile index 9c34245..6479ada 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ init: - docker build -t tmpfile:php8.3-cli-trixie ./ + docker build -t tmpfile:php8.5-cli-trixie ./ exec: - docker run --name tmpfile --rm --interactive --tty --volume ${PWD}:/usr/local/packages/tmpfile/ tmpfile:php8.3-cli-trixie /bin/bash + docker run --name tmpfile --rm --interactive --tty --volume ${PWD}:/usr/local/packages/tmpfile/ tmpfile:php8.5-cli-trixie /bin/bash diff --git a/composer.json b/composer.json index 9e0a615..e98a359 100644 --- a/composer.json +++ b/composer.json @@ -24,13 +24,13 @@ "php": "^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.91", + "friendsofphp/php-cs-fixer": "^3.95", "php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.4", "phpunit/phpunit": "^9.6", - "psalm/plugin-phpunit": "^0.18", - "rector/rector": "^2.2", - "vimeo/psalm": "^5.26" + "psalm/plugin-phpunit": "^0.19", + "rector/rector": "^2.6", + "vimeo/psalm": "^5.26 || ^6.18" }, "suggest": { "denisyukphp/tmpfile-manager": "Allows more advanced creating and removing temp files." diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 47da514..9850412 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,2 +1,2 @@ - + diff --git a/src/TmpFile.php b/src/TmpFile.php index 617f73b..9f0fcd3 100644 --- a/src/TmpFile.php +++ b/src/TmpFile.php @@ -11,12 +11,14 @@ final class TmpFile implements \Stringable, TmpFileInterface public function __construct() { - $this->filename = tempnam(sys_get_temp_dir(), 'php'); + $filename = tempnam(sys_get_temp_dir(), 'php'); - if (false === $this->filename) { + if (false === $filename || '' === $filename) { throw new \RuntimeException('tempnam() couldn\'t create a temp file.'); // @codeCoverageIgnore } + $this->filename = $filename; + $this->handler = static function (string $filename): void { if (file_exists($filename)) { unlink($filename); @@ -26,11 +28,13 @@ public function __construct() register_shutdown_function($this->handler, $this->filename); } + #[\Override] public function getFilename(): string { return $this->filename; } + #[\Override] public function __toString(): string { return $this->filename;