No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
11 changed files with 2585 additions and 8 deletions
-
250.ci/firefly-iii-standard.yml
-
1.ci/php-cs-fixer/.gitignore
-
44.ci/php-cs-fixer/.php-cs-fixer.php
-
5.ci/php-cs-fixer/composer.json
-
2096.ci/php-cs-fixer/composer.lock
-
37.ci/phpcs.sh
-
59.ci/phpstan.neon
-
8.ci/phpstan.sh
-
33.ci/phpunit.sh
-
3composer.json
-
57composer.lock
@ -0,0 +1,250 @@ |
|||||
|
parameters: |
||||
|
indentation: spaces |
||||
|
|
||||
|
file_extensions: |
||||
|
- php |
||||
|
|
||||
|
exclude_files: |
||||
|
- fixtures/* |
||||
|
- fixtures*/* |
||||
|
- temp/* |
||||
|
- tmp/* |
||||
|
|
||||
|
services: |
||||
|
# Checkers bellow aim on 1:1 copy of https://nette.org/en/coding-standard |
||||
|
|
||||
|
# General rules - https://nette.org/en/coding-standard#toc-general-rules |
||||
|
|
||||
|
# use tabs over spaces |
||||
|
# PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\DisallowSpaceIndentSniff: ~ |
||||
|
# PHP code must use only UTF-8 without BOM |
||||
|
PhpCsFixer\Fixer\Basic\EncodingFixer: ~ |
||||
|
# <?php opening tag |
||||
|
PhpCsFixer\Fixer\PhpTag\FullOpeningTagFixer: ~ |
||||
|
# Ensure there is no code on the same line as the PHP open tag. |
||||
|
PhpCsFixer\Fixer\PhpTag\LinebreakAfterOpeningTagFixer: ~ |
||||
|
# The closing ?> tag must be omitted from files containing only PHP. |
||||
|
PhpCsFixer\Fixer\PhpTag\NoClosingTagFixer: ~ |
||||
|
# There must not be trailing whitespace at the end of lines. |
||||
|
PhpCsFixer\Fixer\Whitespace\NoTrailingWhitespaceFixer: ~ |
||||
|
# ...and at the end of blank lines. |
||||
|
PhpCsFixer\Fixer\Whitespace\NoWhitespaceInBlankLineFixer: ~ |
||||
|
# All files must end with a single blank line. |
||||
|
PhpCsFixer\Fixer\Whitespace\SingleBlankLineAtEofFixer: ~ |
||||
|
# File name should match class name if possible. |
||||
|
PhpCsFixer\Fixer\Basic\Psr4Fixer: ~ |
||||
|
# Enforces using shorthand scalar typehint variants in phpDocs: `int` instead of `integer` and `bool` instead of `boolean` |
||||
|
SlevomatCodingStandard\Sniffs\TypeHints\LongTypeHintsSniff: ~ |
||||
|
|
||||
|
# File Header - https://nette.org/en/coding-standard#toc-file-header |
||||
|
|
||||
|
# empty line before namespace |
||||
|
PhpCsFixer\Fixer\NamespaceNotation\SingleBlankLineBeforeNamespaceFixer: ~ |
||||
|
# 1 Use statement per line |
||||
|
PhpCsFixer\Fixer\Import\SingleImportPerStatementFixer: ~ |
||||
|
# Use statements are alphabetically ordered |
||||
|
PhpCsFixer\Fixer\Import\OrderedImportsFixer: ~ |
||||
|
# disallow group use declarations use FooLibrary\Bar\Baz\{ ClassA, ClassB, ClassC, ClassD as Fizbo } |
||||
|
SlevomatCodingStandard\Sniffs\Namespaces\DisallowGroupUseSniff: ~ |
||||
|
# Disallows leading backslash in use statement: use \Foo\Bar; |
||||
|
SlevomatCodingStandard\Sniffs\Namespaces\UseDoesNotStartWithBackslashSniff: ~ |
||||
|
# Looks for unused imports from other namespaces. |
||||
|
Nette\CodingStandard\Sniffs\Namespaces\UnusedUsesSniff: |
||||
|
searchAnnotations: yes |
||||
|
ignoredAnnotationNames: ['@testCase'] |
||||
|
ignoredAnnotations: ['@internal'] |
||||
|
|
||||
|
# Language Construct (should be placed before some other fixers) |
||||
|
|
||||
|
# Functions should be used with `$strict` param set to `true` |
||||
|
PhpCsFixer\Fixer\Strict\StrictParamFixer: ~ |
||||
|
# replaces is_null(parameter) expression with `null === parameter`. |
||||
|
PhpCsFixer\Fixer\LanguageConstruct\IsNullFixer: |
||||
|
use_yoda_style: true |
||||
|
# Calling `unset` on multiple items should be done in one call. |
||||
|
PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveUnsetsFixer: ~ |
||||
|
# Replace all `<>` with `!=`. |
||||
|
PhpCsFixer\Fixer\Operator\StandardizeNotEqualsFixer: ~ |
||||
|
# Include/Require and file path should be divided with a single space. File path should not be placed under brackets. |
||||
|
PhpCsFixer\Fixer\ControlStructure\IncludeFixer: ~ |
||||
|
# Requires short ternary operator ?: when possible |
||||
|
SlevomatCodingStandard\Sniffs\ControlStructures\RequireShortTernaryOperatorSniff: ~ |
||||
|
|
||||
|
# Arrays - https://nette.org/en/coding-standard#toc-arrays |
||||
|
|
||||
|
# use short array fixes |
||||
|
PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer: |
||||
|
syntax: short |
||||
|
# use trailing command in last array element |
||||
|
PhpCsFixer\Fixer\ArrayNotation\TrailingCommaInMultilineArrayFixer: ~ |
||||
|
# PHP single-line arrays should not have trailing comma. |
||||
|
# PhpCsFixer\Fixer\ArrayNotation\NoTrailingCommaInSinglelineArrayFixer: ~ |
||||
|
# In array declaration, there MUST NOT be a whitespace before each comma. |
||||
|
PhpCsFixer\Fixer\ArrayNotation\NoWhitespaceBeforeCommaInArrayFixer: ~ |
||||
|
# Arrays should be formatted like function/method arguments, without leading or trailing single line space. |
||||
|
PhpCsFixer\Fixer\ArrayNotation\TrimArraySpacesFixer: ~ |
||||
|
# In array declaration, there MUST be a whitespace after each comma. |
||||
|
PhpCsFixer\Fixer\ArrayNotation\WhitespaceAfterCommaInArrayFixer: ~ |
||||
|
|
||||
|
# Strings |
||||
|
|
||||
|
# Convert `heredoc` to `nowdoc` where possible. |
||||
|
PhpCsFixer\Fixer\StringNotation\HeredocToNowdocFixer: ~ |
||||
|
# Convert double quotes to single quotes for simple strings. |
||||
|
PhpCsFixer\Fixer\StringNotation\SingleQuoteFixer: ~ |
||||
|
|
||||
|
# Keywords and True/False/Null - https://nette.org/en/coding-standard#toc-keywords-and-true-false-null |
||||
|
|
||||
|
# PHP keywords must be in lower case |
||||
|
PhpCsFixer\Fixer\Casing\LowercaseKeywordsFixer: ~ |
||||
|
# The PHP constants `true`, `false`, and `null` MUST be in lower case |
||||
|
PhpCsFixer\Fixer\Casing\LowercaseConstantsFixer: ~ |
||||
|
|
||||
|
# Method and Functions Calls - https://nette.org/en/coding-standard#toc-method-and-function-calls |
||||
|
|
||||
|
# Function defined by PHP should be called using the correct casing |
||||
|
PhpCsFixer\Fixer\Casing\NativeFunctionCasingFixer: ~ |
||||
|
# In the argument list, there must be one space after each comma, and there must no be a space before each comma |
||||
|
PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer: ~ |
||||
|
# This sniff checks that there are two blank lines between functions declarations and single between signatures. |
||||
|
#Nette\CodingStandard\Sniffs\WhiteSpace\FunctionSpacingSniff: ~ |
||||
|
|
||||
|
# Classes - https://nette.org/en/coding-standard#toc-classes |
||||
|
|
||||
|
# Inside a classy element "self" should be preferred to the class name itself. |
||||
|
PhpCsFixer\Fixer\ClassNotation\SelfAccessorFixer: ~ |
||||
|
# class element order: constants, properties, from public to private |
||||
|
PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer: |
||||
|
order: |
||||
|
- use_trait |
||||
|
- constant |
||||
|
- constant_public |
||||
|
- constant_protected |
||||
|
- constant_private |
||||
|
- property_public |
||||
|
- property_protected |
||||
|
- property_private |
||||
|
|
||||
|
# Constants - https://nette.org/en/coding-standard#toc-constants |
||||
|
|
||||
|
# constant names are CAPITALIZED (manuall fixing only :() |
||||
|
PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\UpperCaseConstantNameSniff: ~ |
||||
|
|
||||
|
# Class Properties - https://nette.org/en/coding-standard#toc-class-properties |
||||
|
|
||||
|
# There MUST NOT be more than one property declared per statement. |
||||
|
PhpCsFixer\Fixer\ClassNotation\SingleClassElementPerStatementFixer: |
||||
|
elements: ['property'] |
||||
|
|
||||
|
# Methods - https://nette.org/en/coding-standard#toc-methods |
||||
|
|
||||
|
# They must be declared in camelCase. |
||||
|
PHP_CodeSniffer\Standards\PSR1\Sniffs\Methods\CamelCapsMethodNameSniff: ~ |
||||
|
# Checks that there's a single space between a typehint and a parameter name and no whitespace between a nullability symbol and a typehint |
||||
|
SlevomatCodingStandard\Sniffs\TypeHints\ParameterTypeHintSpacingSniff: ~ |
||||
|
# Spaces should be properly placed in a function declaration. |
||||
|
PhpCsFixer\Fixer\FunctionNotation\FunctionDeclarationFixer: ~ |
||||
|
# In function arguments there must not be arguments with default values before non-default ones. |
||||
|
PhpCsFixer\Fixer\FunctionNotation\NoUnreachableDefaultArgumentValueFixer: ~ |
||||
|
|
||||
|
# Constans, Class Properties, Methods |
||||
|
|
||||
|
# Constants and Properties should be separated by 1 blank line |
||||
|
#PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer: |
||||
|
# elements: [const, property] |
||||
|
|
||||
|
# Last property and 1st method should be separated by 2 spaces |
||||
|
Nette\CodingStandard\Fixer\ClassNotation\LastPropertyAndFirstMethodSeparationFixer: |
||||
|
space_count: 2 |
||||
|
|
||||
|
# Control Statements - https://nette.org/en/coding-standard#toc-control-statements |
||||
|
|
||||
|
# The keyword `elseif` should be used instead of `else if` so that all control keywords look like single words. |
||||
|
PhpCsFixer\Fixer\ControlStructure\ElseifFixer: ~ |
||||
|
# Remove useless semicolon statements. |
||||
|
PhpCsFixer\Fixer\Semicolon\NoEmptyStatementFixer: ~ |
||||
|
# Remove trailing commas in list() calls. |
||||
|
PhpCsFixer\Fixer\ControlStructure\NoTrailingCommaInListCallFixer: ~ |
||||
|
# Removes unneeded parentheses around control statements. |
||||
|
PhpCsFixer\Fixer\ControlStructure\NoUnneededControlParenthesesFixer: ~ |
||||
|
# A case should be followed by a colon and not a semicolon. |
||||
|
PhpCsFixer\Fixer\ControlStructure\SwitchCaseSemicolonToColonFixer: ~ |
||||
|
# The structure body must be indented once. |
||||
|
# The closing brace must be on the next line after the body. |
||||
|
# There should not be more than one statement per line. |
||||
|
#Nette\CodingStandard\Fixer\Basic\BracesFixer: |
||||
|
# allow_single_line_closure: true |
||||
|
# changes if (1 === $cond) to if ($cond === 1) |
||||
|
#SlevomatCodingStandard\Sniffs\ControlStructures\DisallowYodaComparisonSniff: ~ |
||||
|
# finds unreachable catch blocks: |
||||
|
SlevomatCodingStandard\Sniffs\Exceptions\DeadCatchSniff: ~ |
||||
|
|
||||
|
# Casting |
||||
|
|
||||
|
# A single space or none should be between cast and variable (int) $val |
||||
|
PhpCsFixer\Fixer\CastNotation\CastSpacesFixer: ~ |
||||
|
# Cast should be written in lower case. |
||||
|
PhpCsFixer\Fixer\CastNotation\LowercaseCastFixer: ~ |
||||
|
# Replaces `intval`, `floatval`, `doubleval`, `strval` and `boolval` function calls with according type casting operator |
||||
|
PhpCsFixer\Fixer\CastNotation\ModernizeTypesCastingFixer: ~ |
||||
|
# Short cast `bool` using double exclamation mark should not be used |
||||
|
PhpCsFixer\Fixer\CastNotation\NoShortBoolCastFixer: ~ |
||||
|
# Cast `(boolean)` and `(integer)` should be written as `(bool)` and `(int)`, `(double)` and `(real)` as `(float)` |
||||
|
PhpCsFixer\Fixer\CastNotation\ShortScalarCastFixer: ~ |
||||
|
|
||||
|
# Language Whitespace |
||||
|
|
||||
|
# Binary operators should be surrounded by at least one space. DO NOT USE |
||||
|
#PhpCsFixer\Fixer\Operator\BinaryOperatorSpacesFixer: ~ |
||||
|
# Unary operators should be placed adjacent to their operands. |
||||
|
PhpCsFixer\Fixer\Operator\UnaryOperatorSpacesFixer: ~ |
||||
|
# No space after the opening parenthesis and before the closing parenthesis |
||||
|
PhpCsFixer\Fixer\Whitespace\NoSpacesInsideParenthesisFixer: ~ |
||||
|
# There MUST NOT be spaces around offset braces $a[0] |
||||
|
PhpCsFixer\Fixer\Whitespace\NoSpacesAroundOffsetFixer: ~ |
||||
|
# There should not be space before or after object `T_OBJECT_OPERATOR` `->`. |
||||
|
PhpCsFixer\Fixer\Operator\ObjectOperatorWithoutWhitespaceFixer: ~ |
||||
|
# Standardize spaces around ternary operator. |
||||
|
PhpCsFixer\Fixer\Operator\TernaryOperatorSpacesFixer: ~ |
||||
|
# Concatenation $a . $b should be spaced according configuration |
||||
|
PhpCsFixer\Fixer\Operator\ConcatSpaceFixer: |
||||
|
spacing: one |
||||
|
# Removes extra spaces between colon and case value. |
||||
|
PhpCsFixer\Fixer\ControlStructure\SwitchCaseSpaceFixer: ~ |
||||
|
|
||||
|
# Comments |
||||
|
|
||||
|
# Docblocks should have the same indentation as the documented subject. |
||||
|
PhpCsFixer\Fixer\Phpdoc\PhpdocIndentFixer: ~ |
||||
|
# There should not be any empty comments. |
||||
|
PhpCsFixer\Fixer\Comment\NoEmptyCommentFixer: ~ |
||||
|
# There should not be empty PHPDoc blocks. |
||||
|
#PhpCsFixer\Fixer\Phpdoc\NoEmptyPhpdocFixer: ~ |
||||
|
# Phpdocs should start and end with content, excluding the very first and last line of the docblocks. |
||||
|
PhpCsFixer\Fixer\Phpdoc\PhpdocTrimFixer: ~ |
||||
|
# Single-line comments comments with only one line of actual content should use the `//` syntax. |
||||
|
PhpCsFixer\Fixer\Comment\SingleLineCommentStyleFixer: |
||||
|
comment_types: ['hash'] |
||||
|
# Require comments with single-line content to be written as one-liners |
||||
|
SlevomatCodingStandard\Sniffs\Commenting\RequireOneLinePropertyDocCommentSniff: ~ |
||||
|
|
||||
|
|
||||
|
# Properties MUST not be explicitly initialized with `null`. |
||||
|
#PhpCsFixer\Fixer\ClassNotation\NoNullPropertyInitializationFixer: ~ |
||||
|
|
||||
|
PhpCsFixer\Fixer\ControlStructure\NoBreakCommentFixer: |
||||
|
comment_text: 'break omitted' |
||||
|
|
||||
|
# declare(strict_types=1); |
||||
|
PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer: ~ |
||||
|
# Enforces consistent formatting of return typehints: function foo(): ?int |
||||
|
SlevomatCodingStandard\Sniffs\TypeHints\ReturnTypeHintSpacingSniff: ~ |
||||
|
# Use `null` coalescing operator `??` where possible. |
||||
|
PhpCsFixer\Fixer\Operator\TernaryToNullCoalescingFixer: ~ |
||||
|
|
||||
|
Nette\CodingStandard\Fixer\ClassNotation\ClassAndTraitVisibilityRequiredFixer: |
||||
|
elements: ['const', 'property', 'method'] |
||||
|
|
||||
|
# short list() syntax [] |
||||
|
PhpCsFixer\Fixer\ListNotation\ListSyntaxFixer: |
||||
|
syntax: short |
@ -0,0 +1 @@ |
|||||
|
vendor |
@ -0,0 +1,44 @@ |
|||||
|
<?php |
||||
|
/* |
||||
|
* .php-cs-fixer.php |
||||
|
* Copyright (c) 2022 james@firefly-iii.org |
||||
|
* |
||||
|
* This file is part of Firefly III (https://github.com/firefly-iii). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Affero General Public License as |
||||
|
* published by the Free Software Foundation, either version 3 of the |
||||
|
* License, or (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU Affero General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Affero General Public License |
||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>. |
||||
|
*/ |
||||
|
|
||||
|
$current = __DIR__; |
||||
|
|
||||
|
$paths = [ |
||||
|
$current . '/../../app', |
||||
|
$current . '/../../config', |
||||
|
$current . '/../../database', |
||||
|
$current . '/../../routes', |
||||
|
$current . '/../../tests', |
||||
|
$current . '/../../resources/lang', |
||||
|
]; |
||||
|
|
||||
|
$finder = PhpCsFixer\Finder::create() |
||||
|
->in($paths); |
||||
|
|
||||
|
|
||||
|
$config = new PhpCsFixer\Config(); |
||||
|
return $config->setRules([ |
||||
|
'@PSR12' => true, |
||||
|
'strict_param' => true, |
||||
|
'array_syntax' => ['syntax' => 'short'], |
||||
|
]) |
||||
|
->setFinder($finder) |
||||
|
; |
@ -0,0 +1,5 @@ |
|||||
|
{ |
||||
|
"require": { |
||||
|
"friendsofphp/php-cs-fixer": "^3.12" |
||||
|
} |
||||
|
} |
2096
.ci/php-cs-fixer/composer.lock
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,37 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
|
||||
|
# |
||||
|
# phpstan.sh |
||||
|
# Copyright (c) 2021 james@firefly-iii.org |
||||
|
# |
||||
|
# This file is part of Firefly III (https://github.com/firefly-iii). |
||||
|
# |
||||
|
# This program is free software: you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU Affero General Public License as |
||||
|
# published by the Free Software Foundation, either version 3 of the |
||||
|
# License, or (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU Affero General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU Affero General Public License |
||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
|
||||
|
# Install composer packages |
||||
|
#composer install --no-scripts --no-ansi |
||||
|
|
||||
|
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" |
||||
|
|
||||
|
# enable test .env file. |
||||
|
# cp .ci/.env.ci .env |
||||
|
|
||||
|
# clean up php code |
||||
|
cd $SCRIPT_DIR/php-cs-fixer |
||||
|
composer update |
||||
|
./vendor/bin/php-cs-fixer fix --config $SCRIPT_DIR/php-cs-fixer/.php-cs-fixer.php --allow-risky=yes |
||||
|
cd $SCRIPT_DIR/.. |
||||
|
|
||||
|
exit 0 |
@ -0,0 +1,33 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
|
||||
|
# |
||||
|
# phpunit.sh |
||||
|
# Copyright (c) 2021 james@firefly-iii.org |
||||
|
# |
||||
|
# This file is part of Firefly III (https://github.com/firefly-iii). |
||||
|
# |
||||
|
# This program is free software: you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU Affero General Public License as |
||||
|
# published by the Free Software Foundation, either version 3 of the |
||||
|
# License, or (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU Affero General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU Affero General Public License |
||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
|
||||
|
# enable test .env file. |
||||
|
cp .ci/.env.ci ../.env |
||||
|
|
||||
|
# download test database |
||||
|
# TODO no longer exists |
||||
|
wget --quiet https://raw.githubusercontent.com/firefly-iii/test-data/main/test_db.sqlite -o storage/database/test_db.sqlite |
||||
|
|
||||
|
# run phpunit |
||||
|
./vendor/bin/phpunit --configuration phpunit.coverage.xml |
||||
|
|
||||
|
exit 0 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue