diff --git a/.cs.php b/.cs.php index e4ab7fc..2bba5e9 100644 --- a/.cs.php +++ b/.cs.php @@ -1,6 +1,8 @@ setUsingCache(false) ->setRiskyAllowed(true) ->setRules( @@ -19,6 +21,12 @@ 'concat_space' => ['spacing' => 'one'], 'compact_nullable_typehint' => true, 'declare_equal_normalize' => ['space' => 'single'], + 'general_phpdoc_annotation_remove' => [ + 'annotations' => [ + 'author', + 'package', + ], + ], 'increment_style' => ['style' => 'post'], 'list_syntax' => ['syntax' => 'short'], 'echo_tag_syntax' => ['format' => 'long'], @@ -32,9 +40,22 @@ 'method_argument_space' => ['on_multiline' => 'ensure_fully_multiline'], 'ordered_imports' => [ 'sort_algorithm' => 'alpha', - 'imports_order' => ['class', 'const', 'function'] + 'imports_order' => ['class', 'const', 'function'], ], 'single_line_throw' => false, + 'declare_strict_types' => false, + 'blank_line_between_import_groups' => true, + 'fully_qualified_strict_types' => true, + 'no_null_property_initialization' => false, + 'operator_linebreak' => [ + 'only_booleans' => true, + 'position' => 'beginning', + ], + 'global_namespace_import' => [ + 'import_classes' => true, + 'import_constants' => null, + 'import_functions' => null + ] ] ) ->setFinder( diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..0a6abee --- /dev/null +++ b/.editorconfig @@ -0,0 +1,22 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +end_of_line = lf + +[composer.json] +indent_size = 4 + +[*.js] +indent_size = 4 + +[*.neon] +indent_size = 4 +indent_style = tab + +[*.xml] +indent_size = 4 + +[*.yml] +indent_size = 4 diff --git a/.gitattributes b/.gitattributes index b0b11a0..5a3d341 100644 --- a/.gitattributes +++ b/.gitattributes @@ -19,10 +19,8 @@ /phpunit.xml export-ignore /.gitattributes export-ignore /.gitignore export-ignore -/.travis.* export-ignore /.scrutinizer.* export-ignore /.editorconfig export-ignore -/.coveralls.* export-ignore # Define binary file attributes. # - Do not treat them as text. @@ -34,3 +32,4 @@ *.jpg binary *.jpeg binary *.png binary +*.zip binary diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5c2a507..a4bf3d5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,48 +1,41 @@ name: build -on: [push, pull_request] +on: [ push, pull_request ] jobs: - run: - runs-on: ${{ matrix.operating-system }} - strategy: - matrix: - operating-system: [ubuntu-latest] - php-versions: ['7.2', '7.3', '7.4', '8.0'] - name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }} - - steps: - - name: Checkout - uses: actions/checkout@v1 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-versions }} - extensions: mbstring, intl, zip - coverage: none - - - name: Check PHP Version - run: php -v - - - name: Check Composer Version - run: composer -V - - - name: Check PHP Extensions - run: php -m - - - name: Validate composer.json and composer.lock - run: composer validate - - - name: Install dependencies for PHP 7 - if: matrix.php-versions < '8.0' - run: composer update --prefer-dist --no-progress - - - name: Install dependencies for PHP 8 - if: matrix.php-versions >= '8.0' - run: composer update --prefer-dist --no-progress --ignore-platform-req=php - - - name: Run test suite - run: composer check - env: - PHP_CS_FIXER_IGNORE_ENV: 1 + run: + runs-on: ${{ matrix.operating-system }} + strategy: + matrix: + operating-system: [ ubuntu-latest ] + php-versions: [ '8.1', '8.2' ] + name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }} + + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + extensions: mbstring, intl, zip + coverage: none + + - name: Check PHP Version + run: php -v + + - name: Check Composer Version + run: composer -V + + - name: Check PHP Extensions + run: php -m + + - name: Validate composer.json and composer.lock + run: composer validate + + - name: Install dependencies + run: composer install --prefer-dist --no-progress --no-suggest + + - name: Run test suite + run: composer test:all diff --git a/.gitignore b/.gitignore index 514b873..a4689b6 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,5 @@ composer.lock nbproject/ vendor/ build/ -.phpunit.result.cache -.php_cs.cache \ No newline at end of file +.phpunit.cache/ +.phpunit.result.cache \ No newline at end of file diff --git a/.scrutinizer.yml b/.scrutinizer.yml index fce7d02..3514e2e 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -1,6 +1,6 @@ filter: - paths: ["src/*"] - excluded_paths: ["vendor/*", "tests/*"] + paths: [ "src/*" ] + excluded_paths: [ "vendor/*", "tests/*" ] checks: php: @@ -12,7 +12,10 @@ tools: build: environment: - php: 7.4 + php: + version: 8.1.2 + ini: + xdebug.mode: coverage mysql: false node: false postgresql: false @@ -30,11 +33,9 @@ build: dependencies: before: - composer self-update - - composer update --no-interaction --prefer-dist --no-progress tests: before: - - - command: composer test:coverage + - command: composer test:coverage coverage: file: 'build/logs/clover.xml' format: 'clover' diff --git a/LICENSE b/LICENSE index fa19b85..bf7a9a3 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2021 odan +Copyright (c) 2023 odan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 5db452b..4924e44 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ A PSR-15 middleware to secure your site with SameSite cookies :cookie: ## Requirements -* PHP 7.2+ or 8.0+ +* PHP 8.1+ ## Installation diff --git a/composer.json b/composer.json index 08b1dc2..507a24e 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,8 @@ { "name": "selective/samesite-cookie", - "type": "library", "description": "Secure your site with SameSite cookies", + "license": "MIT", + "type": "library", "keywords": [ "samesite-cookie", "samesite", @@ -9,7 +10,6 @@ "csrf" ], "homepage": "https://github.com/selective-php/samesite-cookie", - "license": "MIT", "require": { "php": "^7.2 || ^8.0", "psr/http-message": "^1", @@ -19,29 +19,11 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3", "middlewares/utils": "^3", - "overtrue/phplint": "^2", "phpstan/phpstan": "^1", - "phpunit/phpunit": "^8 || ^9", + "phpunit/phpunit": "^10", "slim/psr7": "^1", "squizlabs/php_codesniffer": "^3" }, - "scripts": { - "check": [ - "@lint", - "@cs:check", - "@sniffer:check", - "@phpstan", - "@test:coverage" - ], - "cs:check": "php-cs-fixer fix --dry-run --format=txt --verbose --diff --config=.cs.php", - "cs:fix": "php-cs-fixer fix --config=.cs.php", - "lint": "phplint ./ --exclude=vendor --no-interaction --no-cache", - "phpstan": "phpstan analyse -c phpstan.neon --no-progress --ansi", - "sniffer:check": "phpcs --standard=phpcs.xml", - "sniffer:fix": "phpcbf --standard=phpcs.xml", - "test": "phpunit --configuration phpunit.xml --do-not-cache-result", - "test:coverage": "phpunit --configuration phpunit.xml --do-not-cache-result --coverage-clover build/logs/clover.xml --coverage-html build/coverage" - }, "autoload": { "psr-4": { "Selective\\SameSiteCookie\\": "src/" @@ -54,5 +36,26 @@ }, "config": { "sort-packages": true + }, + "scripts": { + "cs:check": [ + "@putenv PHP_CS_FIXER_IGNORE_ENV=1", + "php-cs-fixer fix --dry-run --format=txt --verbose --diff --config=.cs.php --ansi" + ], + "cs:fix": [ + "@putenv PHP_CS_FIXER_IGNORE_ENV=1", + "php-cs-fixer fix --config=.cs.php --ansi --verbose" + ], + "sniffer:check": "phpcs --standard=phpcs.xml", + "sniffer:fix": "phpcbf --standard=phpcs.xml", + "stan": "phpstan analyse -c phpstan.neon --no-progress --ansi", + "test": "phpunit --configuration phpunit.xml --do-not-cache-result --colors=always", + "test:all": [ + "@cs:check", + "@sniffer:check", + "@stan", + "@test" + ], + "test:coverage": "php -d xdebug.mode=coverage -r \"require 'vendor/bin/phpunit';\" -- --configuration phpunit.xml --do-not-cache-result --colors=always --coverage-clover build/logs/clover.xml --coverage-html build/coverage" } } diff --git a/phpcs.xml b/phpcs.xml index c825571..f2f42d9 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -9,27 +9,8 @@ ./src ./tests - - + - - - warning - */tests/ - - - warning - - - warning - */config/ - - - warning - - - warning - warning diff --git a/phpstan.neon b/phpstan.neon index 280420a..0b6508e 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,8 +1,4 @@ parameters: - level: max + level: 8 paths: - - src - - tests - ignoreErrors: - - '#Cannot cast mixed to string.#' - - '#Parameter \#2 ...\$values of function sprintf expects bool\|float\|int\|string\|null, mixed given.#' + - src \ No newline at end of file diff --git a/phpunit.xml b/phpunit.xml index ee34618..2927473 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,17 +1,24 @@ - + + tests - - + + src - - vendor - build - - - + + + vendor + build + +