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/.gitattributes b/.gitattributes
index 9a3a380..0e58fb3 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,25 +1,37 @@
# Set the default behavior, in case people don't have core.autocrlf set.
-# Git will always convert line endings to LF on checkout. You should use
-# this for files that must keep LF endings, even on Windows.
+# Git will always convert line endings to LF on checkout. You should use
+# this for files that must keep LF endings, even on Windows.
* text eol=lf
# ------------------------------------------------------------------------------
-# All the files and directories that can be excluded from dist,
+# All the files and directories that can be excluded from dist,
# we could have a more clean vendor/
#
-# So when someone will install that package through with --prefer-dist option,
-# all the files and directories listed in .gitattributes file will be excluded.
-# This could have a big impact on big deployments and/or testing.
+# So when someone will install that package through with --prefer-dist option,
+# all the files and directories listed in .gitattributes file will be excluded.
+# This could have a big impact on big deployments and/or testing.
# ------------------------------------------------------------------------------
/tests export-ignore
/build export-ignore
/docs export-ignore
-/.github export-ignore
/build.xml export-ignore
/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.
+# - Include binary diff in patches instead of "binary files differ."
+*.pdf binary
+*.mo binary
+*.gif binary
+*.ico binary
+*.jpg binary
+*.jpeg binary
+*.png binary
+*.zip binary
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 2d15e9c..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.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 test:all
- env:
- PHP_CS_FIXER_IGNORE_ENV: 1
\ No newline at end of file
+ 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 4e2a367..a4689b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,5 @@ composer.lock
nbproject/
vendor/
build/
-.phpunit.result.cache
+.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 0f51139..6b2bff8 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
## Requirements
-* PHP 7.3+ or 8.0+
+* PHP 8.1+
## Installation
diff --git a/composer.json b/composer.json
index 358591a..93eb653 100644
--- a/composer.json
+++ b/composer.json
@@ -1,20 +1,19 @@
{
"name": "selective/luhn",
- "type": "library",
"description": "Luhn library, modulo 10",
+ "license": "MIT",
+ "type": "library",
"keywords": [
"luhn"
],
"homepage": "https://github.com/selective-php/luhn",
- "license": "MIT",
"require": {
- "php": "^7.3 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3",
- "overtrue/phplint": "^3",
"phpstan/phpstan": "^1",
- "phpunit/phpunit": "^9",
+ "phpunit/phpunit": "^10",
"squizlabs/php_codesniffer": "^3"
},
"autoload": {
@@ -28,21 +27,23 @@
}
},
"config": {
- "sort-packages": true,
- "process-timeout": 0
+ "process-timeout": 0,
+ "sort-packages": true
},
"scripts": {
- "cs:check": "php-cs-fixer fix --dry-run --format=txt --verbose --diff --config=.cs.php --ansi",
- "cs:fix": "php-cs-fixer fix --config=.cs.php --ansi",
- "lint": "phplint ./ --exclude=vendor --no-interaction --no-cache --ansi",
- "phoenix": "phoenix --ansi",
- "stan": "phpstan analyse -c phpstan.neon --no-progress --ansi",
- "schema:dump": "php bin/console.php schema-dump --ansi",
+ "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": [
- "@lint",
"@cs:check",
"@sniffer:check",
"@stan",
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 fb99a34..0b6508e 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -1,7 +1,4 @@
parameters:
- level: max
- checkGenericClassInNonGenericObjectType: false
- checkMissingIterableValueType: false
+ level: 8
paths:
- - src
- - tests
+ - src
\ No newline at end of file
diff --git a/phpunit.xml b/phpunit.xml
index f2e36c3..2927473 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -3,9 +3,16 @@
bootstrap="vendor/autoload.php"
colors="true"
backupGlobals="false"
- backupStaticAttributes="false"
- xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
-
+ xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.3/phpunit.xsd"
+ cacheDirectory=".phpunit.cache"
+ backupStaticProperties="false">
+
+
+
+ tests
+
+
+
-
-
- tests
-
-
+
diff --git a/tests/LuhnTest.php b/tests/LuhnTest.php
index b1d4441..7d98bda 100644
--- a/tests/LuhnTest.php
+++ b/tests/LuhnTest.php
@@ -9,14 +9,14 @@
/**
* Test.
*/
-class LuhnTest extends TestCase
+final class LuhnTest extends TestCase
{
/**
* Data provider about validating valid number.
*
* @return array
*/
- public function providerValidateValidNumber(): array
+ public static function providerValidateValidNumber(): array
{
return [
['1982'],
@@ -45,7 +45,7 @@ public function testValidateValidNumber(string $validNumber): void
*
* @return array
*/
- public function providerValidateInvalidNumber(): array
+ public static function providerValidateInvalidNumber(): array
{
return [
['19829'],
@@ -82,7 +82,7 @@ public function testValidateInvalidNumber(string $invalidNumber): void
*
* @return array
*/
- public function providerCreateNumber(): array
+ public static function providerCreateNumber(): array
{
return [
['1982', 8],