diff --git a/.Build/composer.json b/.Build/composer.json new file mode 100644 index 0000000..02502bf --- /dev/null +++ b/.Build/composer.json @@ -0,0 +1,48 @@ +{ + "name": "derhansen/plain-faq_build", + "description": "composer.json for builds", + "repositories": [ + { + "type": "path", + "url": "../" + } + ], + "require": { + "derhansen/plain-faq": "@dev", + "typo3/cms-core": "^12.4", + "php": ">=8.1" + }, + "require-dev": { + "typo3/cms-composer-installers": "^5.0", + "typo3/cms-backend": "^12.4", + "typo3/cms-frontend": "^12.4", + "typo3/cms-extbase": "^12.4", + "typo3/cms-felogin": "^12.4", + "typo3/cms-fluid-styled-content": "^12.4", + "typo3/cms-fluid": "^12.4", + "typo3/cms-tstemplate": "^12.4", + "typo3/cms-install": "^12.4", + "typo3/cms-extensionmanager": "^12.4", + "typo3/testing-framework": "^8.0", + "friendsofphp/php-cs-fixer": "^3.12.0", + "saschaegerer/phpstan-typo3": "^1.8.3", + "phpstan/extension-installer": "^1.1" + }, + "config": { + "allow-plugins": { + "typo3/class-alias-loader": true, + "typo3/cms-composer-installers": true, + "phpstan/extension-installer": true + } + }, + "autoload": { + "psr-4": { + "Derhansen\\PlainFaq\\": "Classes" + } + }, + "autoload-dev": { + "psr-4": { + "Derhansen\\PlainFaq\\Tests\\": "Tests" + } + } +} diff --git a/.Build/php-cs-fixer/.php-cs-fixer.php b/.Build/php-cs-fixer/.php-cs-fixer.php new file mode 100644 index 0000000..e157a2d --- /dev/null +++ b/.Build/php-cs-fixer/.php-cs-fixer.php @@ -0,0 +1,70 @@ + + +For the full copyright and license information, please view the LICENSE +file that was distributed with this source code. +EOF; + +return (new \PhpCsFixer\Config()) + ->setRiskyAllowed(true) + ->setRules([ + '@DoctrineAnnotation' => true, + '@PER' => true, + 'array_syntax' => ['syntax' => 'short'], + 'cast_spaces' => ['space' => 'none'], + 'concat_space' => ['spacing' => 'one'], + 'declare_equal_normalize' => ['space' => 'none'], + 'declare_parentheses' => true, + 'dir_constant' => true, + 'function_to_constant' => ['functions' => ['get_called_class', 'get_class', 'get_class_this', 'php_sapi_name', 'phpversion', 'pi']], + 'list_syntax' => ['syntax' => 'short'], + 'type_declaration_spaces' => true, + 'modernize_strpos' => true, + 'modernize_types_casting' => true, + 'native_function_casing' => true, + 'no_alias_functions' => true, + 'no_blank_lines_after_phpdoc' => true, + 'no_empty_phpdoc' => true, + 'no_empty_statement' => true, + 'no_extra_blank_lines' => true, + 'no_leading_namespace_whitespace' => true, + 'no_null_property_initialization' => true, + 'no_short_bool_cast' => true, + 'no_singleline_whitespace_before_semicolons' => true, + 'no_superfluous_elseif' => true, + 'no_trailing_comma_in_singleline' => true, + 'no_unneeded_control_parentheses' => true, + 'no_unused_imports' => true, + 'no_useless_else' => true, + 'no_useless_nullsafe_operator' => true, + 'ordered_imports' => ['imports_order' => ['class', 'function', 'const'], 'sort_algorithm' => 'alpha'], + 'php_unit_construct' => ['assertions' => ['assertEquals', 'assertSame', 'assertNotEquals', 'assertNotSame']], + 'php_unit_mock_short_will_return' => true, + 'php_unit_test_case_static_method_calls' => ['call_type' => 'self'], + 'phpdoc_no_access' => true, + 'phpdoc_no_empty_return' => true, + 'phpdoc_no_package' => true, + 'phpdoc_scalar' => true, + 'phpdoc_trim' => true, + 'phpdoc_types' => true, + 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], + 'return_type_declaration' => ['space_before' => 'none'], + 'single_quote' => true, + 'single_space_around_construct' => true, + 'single_line_comment_style' => ['comment_types' => ['hash']], + 'trailing_comma_in_multiline' => ['elements' => ['arrays']], + 'single_line_empty_body' => false, + 'whitespace_after_comma_in_array' => ['ensure_single_space' => true], + 'yoda_style' => ['equal' => false, 'identical' => false, 'less_and_greater' => false], + ]) + ->setFinder( + PhpCsFixer\Finder::create() + ->in(dirname(__DIR__ . '/../../../')) + ->exclude(['.Build', 'Documentation', 'Resources']) + ->notName('ext_emconf.php') + ); diff --git a/.Build/phpstan/phpstan-baseline.neon b/.Build/phpstan/phpstan-baseline.neon new file mode 100644 index 0000000..e69de29 diff --git a/.Build/phpstan/phpstan.neon b/.Build/phpstan/phpstan.neon new file mode 100644 index 0000000..68d0201 --- /dev/null +++ b/.Build/phpstan/phpstan.neon @@ -0,0 +1,12 @@ +includes: + - phpstan-baseline.neon + +parameters: + level: 5 + paths: + - ../../Classes/ + - ../../Configuration/ + + checkMissingIterableValueType: false + reportUnmatchedIgnoredErrors: true + checkGenericClassInNonGenericObjectType: false diff --git a/.Build/phpunit/FunctionalTests.xml b/.Build/phpunit/FunctionalTests.xml new file mode 100644 index 0000000..56618c7 --- /dev/null +++ b/.Build/phpunit/FunctionalTests.xml @@ -0,0 +1,28 @@ + + + + + + ../../Tests/Functional/ + + + + + ./Classes + + + diff --git a/.Build/phpunit/UnitTests.xml b/.Build/phpunit/UnitTests.xml new file mode 100644 index 0000000..bc59252 --- /dev/null +++ b/.Build/phpunit/UnitTests.xml @@ -0,0 +1,30 @@ + + + + + + ../../Tests/Unit/ + + + + + ./Classes + + + diff --git a/.gitignore b/.gitignore index 1660d24..cdd625f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ -.idea/ -.DS_Store -.Build/ +# PHP Storm, other java IDE's +.idea +.Build/public +.Build/vendor +.Build/var/ composer.lock .php-cs-fixer.cache -/var/ -/Tests/Build/.phpunit.result.cache -/Tests/Build/.phpunit.cache +.phpunit.cache