Skip to content

Commit

Permalink
PHP 8.4 support (#53)
Browse files Browse the repository at this point in the history
* Update composer.json to latest and require PHP 8.0 or higher

* Convert to GitHub Actions for testing

* Modernize PHPUnit

* Convert to PHP 8.0

* Run PHP-CS-Fixer with PSR2 rules

* Install PHPStan
  • Loading branch information
phpfui authored Dec 9, 2024
1 parent fe8890c commit 24ba9ac
Show file tree
Hide file tree
Showing 29 changed files with 1,097 additions and 1,202 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Tests

on: [push, pull_request]

jobs:
php-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
php: [8.3, 8.2, 8.1, 8.0]
dependency-version: [prefer-stable]
os: [ubuntu-latest]

name: ${{ matrix.os }} - PHP${{ matrix.php }} - ${{ matrix.dependency-version }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Cache dependencies
uses: actions/cache@v4
with:
path: ~/.composer/cache/files
key: dependencies-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, intl, mongodb
coverage: none

- name: Install dependencies
run: |
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction
- name: Execute tests
run: vendor/bin/phpunit

7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,11 @@
composer.lock
/vendor

# PHPUnit
.phpunit.result.cache
.phpunit.cache

# PHP CS Fixer
.php-cs-fixer.cache

/build
151 changes: 151 additions & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
<?php
/*
* This document has been generated with
* https://mlocati.github.io/php-cs-fixer-configurator/#version:3.48.0|configurator
* you can change this configuration by importing this file.
*/
$config = new PhpCsFixer\Config();

return $config
->setRiskyAllowed(true)
->setRules([
'@PSR2' => true,
'align_multiline_comment' => true,
'array_indentation' => true,
'array_push' => true,
'array_syntax' => true,
'backtick_to_shell_exec' => true,
'binary_operator_spaces' => true,
'blank_line_after_namespace' => true,
'blank_line_after_opening_tag' => true,
'blank_line_before_statement' => true,
'blank_lines_before_namespace' => true,
'cast_spaces' => true,
'class_attributes_separation' => true,
'class_definition' => true,
'clean_namespace' => true,
'combine_consecutive_issets' => true,
'combine_consecutive_unsets' => true,
'combine_nested_dirname' => true,
'compact_nullable_type_declaration' => true,
'concat_space' => true,
'constant_case' => true,
'declare_equal_normalize' => true,
'dir_constant' => true,
'elseif' => true,
'encoding' => true,
'ereg_to_preg' => true,
'explicit_indirect_variable' => true,
'explicit_string_variable' => true,
'fopen_flag_order' => true,
'full_opening_tag' => true,
'function_declaration' => true,
'function_to_constant' => true,
'general_phpdoc_tag_rename' => true,
'implode_call' => true,
'include' => true,
'indentation_type' => true,
'is_null' => true,
'line_ending' => true,
'linebreak_after_opening_tag' => true,
'list_syntax' => true,
'logical_operators' => true,
'lowercase_cast' => true,
'lowercase_keywords' => true,
'lowercase_static_reference' => true,
'magic_constant_casing' => true,
'magic_method_casing' => true,
'method_argument_space' => true,
'method_chaining_indentation' => true,
'modernize_types_casting' => true,
'multiline_whitespace_before_semicolons' => true,
'native_function_casing' => true,
'native_function_invocation' => true,
'native_type_declaration_casing' => true,
'new_with_parentheses' => true,
'no_alias_functions' => true,
'no_alias_language_construct_call' => true,
'no_alternative_syntax' => true,
'no_blank_lines_after_phpdoc' => true,
'no_break_comment' => true,
'no_closing_tag' => true,
'no_empty_comment' => true,
'no_empty_phpdoc' => true,
'no_empty_statement' => true,
'no_homoglyph_names' => true,
'no_leading_import_slash' => true,
'no_leading_namespace_whitespace' => true,
'no_mixed_echo_print' => true,
'no_multiline_whitespace_around_double_arrow' => true,
'no_php4_constructor' => true,
'no_short_bool_cast' => true,
'no_spaces_after_function_name' => true,
'no_superfluous_phpdoc_tags' => true,
'no_trailing_whitespace' => true,
'no_trailing_whitespace_in_comment' => true,
'no_unneeded_braces' => true,
'no_unneeded_control_parentheses' => true,
'no_unneeded_final_method' => true,
'no_unreachable_default_argument_value' => true,
'no_unset_cast' => true,
'no_unset_on_property' => true,
'no_unused_imports' => true,
'no_useless_else' => true,
'no_useless_return' => true,
'no_useless_sprintf' => true,
'no_whitespace_before_comma_in_array' => true,
'no_whitespace_in_blank_line' => true,
'non_printable_character' => true,
'normalize_index_brace' => true,
'not_operator_with_successor_space' => true,
'nullable_type_declaration_for_default_null_value' => true,
'object_operator_without_whitespace' => true,
'ordered_class_elements' => true,
'ordered_imports' => true,
'ordered_interfaces' => true,
'ordered_traits' => true,
'phpdoc_no_useless_inheritdoc' => true,
'phpdoc_order' => true,
'phpdoc_return_self_reference' => true,
'phpdoc_scalar' => true,
'phpdoc_tag_casing' => true,
'protected_to_private' => true,
'psr_autoloading' => true,
'return_type_declaration' => true,
'semicolon_after_instruction' => true,
'set_type_to_cast' => true,
'short_scalar_cast' => true,
'simple_to_complex_string_variable' => true,
'simplified_if_return' => true,
'simplified_null_return' => true,
'single_blank_line_at_eof' => true,
'single_class_element_per_statement' => true,
'single_import_per_statement' => true,
'single_line_after_imports' => true,
'single_line_comment_style' => true,
'single_quote' => true,
'single_trait_insert_per_statement' => true,
'spaces_inside_parentheses' => false,
'standardize_not_equals' => true,
'static_lambda' => true,
'string_line_ending' => true,
'switch_case_semicolon_to_colon' => true,
'switch_case_space' => true,
'switch_continue_to_break' => true,
'ternary_operator_spaces' => true,
'ternary_to_elvis_operator' => true,
'ternary_to_null_coalescing' => true,
'trim_array_spaces' => true,
'type_declaration_spaces' => true,
'unary_operator_spaces' => true,
'visibility_required' => true,
'whitespace_after_comma_in_array' => true,
'yoda_style' => true,
])
->setFinder(PhpCsFixer\Finder::create()
->exclude('vendor')
->in(__DIR__.'\src')
->in(__DIR__.'\test')
)
;

13 changes: 0 additions & 13 deletions .travis.yml

This file was deleted.

17 changes: 11 additions & 6 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@
"chunks"
],
"require": {
"php": ">=5.4"
"php": ">=8.0"
},
"require-dev": {
"mikey179/vfsstream": "v1.2.0",
"league/phpunit-coverage-listener": "~1.1",
"fabpot/php-cs-fixer": "~2.2",
"phpunit/phpunit": "4.*",
"mikey179/vfsstream": "^1.2",
"friendsofphp/php-cs-fixer": "^3.65",
"phpunit/phpunit": ">=9.0",
"mongodb/mongodb": "^1.4.0",
"ext-mongodb": "*"
"ext-mongodb": "*",
"phpstan/phpstan": "^2.0"
},
"suggest": {
"mongodb/mongodb":"Required to use this package with Mongo DB"
Expand All @@ -36,5 +36,10 @@
"psr-0": {
"Flow": "src"
}
},
"autoload-dev": {
"psr-0": {
"Unit": "test"
}
}
}
7 changes: 7 additions & 0 deletions phpstan.neon.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
parameters:
level: 5
errorFormat: raw
editorUrl: '%%file%% %%line%% %%column%%: %%error%%'
paths:
- src
- test
29 changes: 0 additions & 29 deletions phpunit.xml

This file was deleted.

19 changes: 19 additions & 0 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
backupGlobals="false"
colors="true"
processIsolation="false"
stopOnFailure="false"
failOnWarning="true"
displayDetailsOnTestsThatTriggerDeprecations="true"
failOnNotice="true"
bootstrap="./test/bootstrap.php"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.1/phpunit.xsd"
cacheDirectory=".phpunit.cache"
backupStaticProperties="false">
<testsuites>
<testsuite name="Flow Test Suite">
<directory>./test/Unit/</directory>
</testsuite>
</testsuites>
</phpunit>
67 changes: 0 additions & 67 deletions src/Flow/Autoloader.php

This file was deleted.

Loading

0 comments on commit 24ba9ac

Please sign in to comment.