Skip to content

Commit

Permalink
Require PHP 8.1+
Browse files Browse the repository at this point in the history
  • Loading branch information
odan committed Sep 9, 2023
1 parent c6f07db commit d14df58
Show file tree
Hide file tree
Showing 15 changed files with 166 additions and 132 deletions.
22 changes: 20 additions & 2 deletions .cs.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@
'cast_spaces' => ['space' => 'none'],
'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'],
Expand All @@ -33,11 +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,
'global_namespace_import' => false,
'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(
Expand Down
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,16 @@ 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
36 changes: 22 additions & 14 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,14 +1,29 @@
# Path-based git attributes
# https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html

public/* linguist-vendored
docs/* linguist-documentation

# 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.
* text eol=lf

# ------------------------------------------------------------------------------
# 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.
# ------------------------------------------------------------------------------

/tests export-ignore
/build export-ignore
/docs 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."
Expand All @@ -17,13 +32,6 @@ docs/* linguist-documentation
*.gif binary
*.ico binary
*.jpg binary
*.jpeg binary
*.png binary
*.phar binary
*.zip binary
*.gz binary
*.otf binary
*.eot binary
*.svg binary
*.ttf binary
*.woff binary
*.woff2 binary
71 changes: 36 additions & 35 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,39 @@ name: build
on: [ push, pull_request ]

jobs:
run:
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ ubuntu-latest ]
php-versions: [ '8.0', '8.1' ]
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 }}
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
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
9 changes: 3 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
.idea/
nbproject/
composer.lock
.DS_STORE
cache.properties
.php_cs.cache
.vscode/
.phpunit.result.cache
nbproject/
vendor/
build/
.phpunit.cache/
.phpunit.result.cache
69 changes: 34 additions & 35 deletions .scrutinizer.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,41 @@
filter:
paths: [ "src/*" ]
excluded_paths: [ "vendor/*", "tests/*" ]
paths: [ "src/*" ]
excluded_paths: [ "vendor/*", "tests/*" ]

checks:
php:
code_rating: true
duplication: true
php:
code_rating: true
duplication: true

tools:
external_code_coverage: false
external_code_coverage: false

build:
environment:
php:
version: 8.1.2
ini:
xdebug.mode: coverage
mysql: false
node: false
postgresql: false
mongodb: false
elasticsearch: false
redis: false
memcached: false
neo4j: false
rabbitmq: false
nodes:
analysis:
tests:
override:
- php-scrutinizer-run
dependencies:
before:
- composer self-update
- composer install --no-interaction --prefer-dist --no-progress
tests:
before:
- command: composer test:coverage
coverage:
file: 'build/logs/clover.xml'
format: 'clover'
environment:
php:
version: 8.1.2
ini:
xdebug.mode: coverage
mysql: false
node: false
postgresql: false
mongodb: false
elasticsearch: false
redis: false
memcached: false
neo4j: false
rabbitmq: false
nodes:
analysis:
tests:
override:
- php-scrutinizer-run
dependencies:
before:
- composer self-update
tests:
before:
- command: composer test:coverage
coverage:
file: 'build/logs/clover.xml'
format: 'clover'
11 changes: 7 additions & 4 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
The MIT License (MIT)

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
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
Expand All @@ -15,5 +17,6 @@ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ A PSR-11 container implementation with optional **autowiring**.

## Requirements

* PHP 8.0+
* PHP 8.1+

## Installation

Expand Down
16 changes: 11 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@
"psr-11"
],
"require": {
"php": "^7.4 || ^8.0",
"php": "^8.1",
"psr/container": "^2.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3",
"phpstan/phpstan": "^1",
"phpunit/phpunit": "^9 || ^10",
"phpunit/phpunit": "^10",
"squizlabs/php_codesniffer": "^3",
"symfony/event-dispatcher": "^5 || 6.0.*"
},
Expand All @@ -31,11 +31,17 @@
"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",
"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 --xdebug",
"stan": "phpstan analyse -c phpstan.neon --no-progress --ansi",
"test": "phpunit --configuration phpunit.xml --do-not-cache-result --colors=always",
"test:all": [
"@cs:check",
Expand Down
5 changes: 2 additions & 3 deletions phpcs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
<file>./src</file>
<file>./tests</file>

<rule ref="PSR2"></rule>
<rule ref="PSR12"></rule>
<rule ref="PSR12"/>

<rule ref="Squiz.Commenting.FunctionComment.ParamCommentNotCapital">
<type>warning</type>
Expand All @@ -27,4 +26,4 @@
<property name="absoluteNestingLevel" value="4"/>
</properties>
</rule>
</ruleset>
</ruleset>
12 changes: 1 addition & 11 deletions phpstan.neon
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
parameters:
level: 8
paths:
- src
- tests
reportUnmatchedIgnoredErrors: false
ignoreErrors:
- '/Parameter \#1 \$argument of class ReflectionClass constructor expects class-string\<T of object\>\|T of object, string given/'
- '/Parameter \#1 \$id of method Selective\\Container\\Resolver\\ConstructorResolver\:\:resolve\(\) expects class-string, string given/'
- '/Parameter \#1 \$objectOrClass of class ReflectionClass constructor expects class\-string/'
- '#Parameter \#1 \$stack of function array_shift expects array, mixed given.#'
- '#Parameter \#1 \$array of function array_shift expects array, mixed given.#'
- '#Parameter \#2 \$haystack of method PHPUnit\\Framework\\Assert\:\:assertCount\(\) expects Countable\|iterable, mixed given.#'
- "#Trying to invoke mixed but it's not a callable.#"
- src
Loading

0 comments on commit d14df58

Please sign in to comment.