Skip to content

Commit

Permalink
Merge pull request #5 from ray-di/php-8.3
Browse files Browse the repository at this point in the history
Enable PHP 8.3 compat
  • Loading branch information
koriym authored Jan 5, 2024
2 parents cfde589 + aa311d7 commit 3bcace3
Show file tree
Hide file tree
Showing 10 changed files with 846 additions and 2,632 deletions.
37 changes: 4 additions & 33 deletions .github/workflows/coding-standards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,36 +6,7 @@ on:
workflow_dispatch:

jobs:
coding-standards:
name: Coding Standards
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
tools: cs2pr
coverage: none

- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-

- name: Install dependencies
run: composer install --no-interaction --no-progress --prefer-dist

- name: Validate composer.json
run: composer validate --strict

- name: Run PHP_CodeSniffer
run: ./vendor/bin/phpcs -q --no-colors --report=checkstyle src tests | cs2pr
cs:
uses: ray-di/.github/.github/workflows/coding-standards.yml@v1
with:
php_version: 8.3
58 changes: 5 additions & 53 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,58 +4,10 @@ on:
push:
pull_request:
workflow_dispatch:
schedule:
- cron: '42 15 * * *'

jobs:
phpunit:
name: PHPUnit
runs-on: ubuntu-latest
strategy:
matrix:
operating-system:
- ubuntu-latest
php-version:
- '7.3'
- '7.4'
- '8.0'
dependencies:
- lowest
- highest
steps:
- name: Checkout
uses: actions/checkout@v1

- name: Setup PHP ${{ matrix.php-version }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
coverage: pcov
ini-values: zend.assertions=1

- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-

- name: Install lowest dependencies
if: ${{ matrix.dependencies == 'lowest' }}
run: composer update --prefer-lowest --no-interaction --no-progress --no-suggest

- name: Install highest dependencies
if: ${{ matrix.dependencies == 'highest' }}
run: composer update --no-interaction --no-progress --no-suggest

- name: Run test suite
run: ./vendor/bin/phpunit --coverage-clover=coverage.xml

- name: Upload coverage report
uses: codecov/codecov-action@v1
with:
file: ./coverage.xml
ci:
uses: ray-di/.github/.github/workflows/continuous-integration.yml@v1
with:
old_stable: '["7.3", "7.4", "8.0", "8.1", "8.2"]'
current_stable: 8.3
135 changes: 4 additions & 131 deletions .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,134 +6,7 @@ on:
workflow_dispatch:

jobs:
static-analysis-phpstan:
name: Static Analysis with PHPStan
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
tools: cs2pr
coverage: none

- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-

- name: Install dependencies
run: composer install --no-interaction --no-progress --prefer-dist

- name: Run PHPStan
run: ./vendor/bin/phpstan analyse -c phpstan.neon --no-progress --no-interaction --error-format=checkstyle | cs2pr

static-analysis-psalm:
name: Static Analysis with Psalm
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
tools: cs2pr
coverage: none

- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Install dependencies
run: composer install --no-interaction --no-progress --prefer-dist

- name: Run Psalm
run: ./vendor/bin/psalm --show-info=false --output-format=checkstyle --shepherd | cs2pr

static-analysis-phpmd:
name: Static Analysis with PHPMD
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4

- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-

- name: Install dependencies
run: composer install --no-interaction --no-progress --prefer-dist

- name: Run PHP Mess Detector
run: ./vendor/bin/phpmd src text --exclude src/Annotation ./phpmd.xml

static-analysis-php-metrics:
name: Static Analysis with PhpMetrics
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
coverage: none

- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Install dependencies
run: composer install --no-interaction --no-progress --prefer-dist

- name: Run PhpMetrics
run: ./vendor/bin/phpmetrics --exclude=Exception src

static-analysis-composer-require-checker:
name: Static Analysis with ComposerRequireChecker
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
coverage: none

- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Install dependencies
run: |
composer install --no-interaction --no-progress --prefer-dist
composer require --dev maglnet/composer-require-checker ^3.0
- name: Run composer-require-checker
run: ./vendor/bin/composer-require-checker
sa:
uses: ray-di/.github/.github/workflows/static-analysis.yml@v1
with:
php_version: 8.3
5 changes: 5 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,10 @@
"metrics": ["./vendor/bin/phpmetrics --report-html=build/metrics --exclude=Exception --junit=build/junit.xml src"],
"phpmd": ["./vendor/bin/phpmd --exclude src/Annotation src text ./phpmd.xml"],
"build": ["@cs", "@sa", "@pcov", "@metrics"]
},
"config": {
"allow-plugins": {
"bamarni/composer-bin-plugin": true
}
}
}
2 changes: 2 additions & 0 deletions src/HttpRequestRayProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@

namespace Ray\HttpMessage;

use Psr\Http\Message\ServerRequestInterface;
use Ray\Di\ProviderInterface;

/** @implements ProviderInterface<ServerRequestInterface> */
final class HttpRequestRayProvider implements ProviderInterface
{
/**
Expand Down
7 changes: 6 additions & 1 deletion src/UploadfilesProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,20 @@

namespace Ray\HttpMessage;

use Psr\Http\Message\UploadedFileInterface;
use Ray\Di\ProviderInterface;

/** @implements ProviderInterface<array<UploadedFileInterface>> */
final class UploadfilesProvider implements ProviderInterface
{
/**
* {@inheritdoc}
*/
public function get()
{
return (new HttpRequestProvider())->get()->getUploadedFiles();
$files = (new HttpRequestProvider())->get()->getUploadedFiles(); // @phpcs:ignore SlevomatCodingStandard.Variables.UselessVariable.UselessVariable
/** @var array<UploadedFileInterface> $files */

return $files;
}
}
2 changes: 2 additions & 0 deletions src/UriProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@

namespace Ray\HttpMessage;

use Psr\Http\Message\UriInterface;
use Ray\Di\ProviderInterface;

/** @implements ProviderInterface<UriInterface> */
final class UriProvider implements ProviderInterface
{
/**
Expand Down
4 changes: 2 additions & 2 deletions tests/Psr7HttpModuleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ public function testPsr7UploadFilesTest(): void
$_FILES = $this->files();
$injector = new Injector(new Psr7Module());
$files = $injector->getInstance('', UploadFiles::class);
$file = $files['my-form']['details']['avatar'][2];
/** @var UploadedFileInterface $file */
$file = $files['my-form']['details']['avatar'][2]; // @phpstan-ignore-line
/** @var UploadedFileInterface $file */ //@phpcs:ignore SlevomatCodingStandard.Commenting.InlineDocCommentDeclaration.NoAssignment
$this->assertInstanceOf(UploadedFileInterface::class, $file);
$this->assertSame('my-avatar3.png', $file->getClientFilename());
}
Expand Down
11 changes: 8 additions & 3 deletions vendor-bin/tools/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,14 @@
"doctrine/coding-standard": "^8.2",
"phpmd/phpmd": "^2.9",
"phpmetrics/phpmetrics": "^2.7",
"phpstan/phpstan": "^0.12",
"psalm/plugin-phpunit": "^0.13",
"phpstan/phpstan": "^1.10",
"psalm/plugin-phpunit": "^0.18",
"squizlabs/php_codesniffer": "^3.5",
"vimeo/psalm": "^4.2"
"vimeo/psalm": "^5.18"
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
}
}
}
Loading

0 comments on commit 3bcace3

Please sign in to comment.