From cc050ea4d4c1e28af111af309bdad477d2d45387 Mon Sep 17 00:00:00 2001 From: zonky Date: Wed, 26 Jul 2023 18:52:46 +0200 Subject: [PATCH] Add old PR and delete DCI --- .composer-require-checker.json | 6 + .github/workflows/diagnostics.yml | 72 ++++++++---- .phpcq.lock | 1 + .phpcq.yaml.dist | 106 ++++++++++++++++++ .phpmd.xml | 37 ++++++ build.xml | 12 -- composer.json | 14 ++- phpunit.xml.dist | 27 +++++ psalm.xml | 12 ++ .../MultiColumnWizardFrontendExtension.php | 80 ------------- src/MultiColumnWizardFrontendBundle.php | 25 +---- 11 files changed, 251 insertions(+), 141 deletions(-) create mode 100644 .composer-require-checker.json create mode 100644 .phpcq.lock create mode 100644 .phpcq.yaml.dist create mode 100644 .phpmd.xml delete mode 100644 build.xml create mode 100644 phpunit.xml.dist create mode 100644 psalm.xml delete mode 100644 src/DependencyInjection/MultiColumnWizardFrontendExtension.php diff --git a/.composer-require-checker.json b/.composer-require-checker.json new file mode 100644 index 0000000..3a1632a --- /dev/null +++ b/.composer-require-checker.json @@ -0,0 +1,6 @@ +{ + "symbol-whitelist": [ + "array", "bool", "false", "int", "null", "self", "static", "parent", "string", "true", "void", + "ampersand", "array_insert", "array_is_assoc", "nl2br_html5", "TL_ERROR" + ] +} diff --git a/.github/workflows/diagnostics.yml b/.github/workflows/diagnostics.yml index 0a599e6..bddb943 100644 --- a/.github/workflows/diagnostics.yml +++ b/.github/workflows/diagnostics.yml @@ -1,49 +1,75 @@ -name: DC General +name: Code Quality Diagnostics on: - push: pull_request: + push: + branches: jobs: build: runs-on: ubuntu-latest + name: 'PHP: ${{ matrix.php }} Contao: ${{ matrix.contao }}' strategy: + fail-fast: false matrix: - php: [7.4] - contao: [~4.9.0] + php: [ '8.1', '8.2' ] + contao: [ '~4.13.0' ] + phpcq_install: [ 'update' ] + output: [ '-o github-action -o default' ] steps: - - name: PHP ${{ matrix.php }} ${{ matrix.contao }} Pull source - uses: actions/checkout@v2 - with: - fetch-depth: 0 + - name: Pull source + uses: actions/checkout@v3 - # see https://github.com/shivammathur/setup-php - - name: PHP ${{ matrix.php }} ${{ matrix.contao }} Setup PHP. + - name: Setup PHP with PECL extension uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} - coverage: none - - name: PHP ${{ matrix.php }} ${{ matrix.contao }} Cache composer cache directory - uses: actions/cache@v1 + # setup caches + - name: Cache composer cache directory + uses: actions/cache@v3 env: cache-name: composer-cache-dir with: path: ~/.cache/composer - key: ${{ runner.os }}-build-${{ env.cache-name }} + key: ${{ runner.os }}-${{ matrix.php }}-build-${{ env.cache-name }} - - name: PHP ${{ matrix.php }} ${{ matrix.contao }} Cache vendor directory - uses: actions/cache@v1 + - name: Cache vendor directory + uses: actions/cache@v3 env: - cache-name: composer-vendor + cache-name: vendor with: path: vendor - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/composer.lock') }} + key: ${{ runner.os }}-${{ matrix.php }}-${{ matrix.contao }}-build-${{ env.cache-name }}-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.php }}-${{ matrix.contao }}-build-${{ env.cache-name }}- + + - name: Cache phpcq directory + uses: actions/cache@v3 + env: + cache-name: phpcq + with: + path: .phpcq + key: ${{ runner.os }}-${{ matrix.php }}-build-${{ env.cache-name }}-${{ hashFiles('**/.phpcq.lock') }} restore-keys: | - ${{ runner.os }}-build-${{ env.cache-name }}- - - name: PHP ${{ matrix.php }} ${{ matrix.contao }} Install composer dependencies - run: composer update --prefer-dist --no-interaction --no-suggest + ${{ runner.os }}-${{ matrix.php }}-build-${{ env.cache-name }}- + + # install dependencies and tools + - name: Install composer dependencies + run: | + composer require contao/core-bundle ${{ matrix.contao }} --no-update + composer install + - name: Install phpcq toolchain + run: ./vendor/bin/phpcq ${{ matrix.phpcq_install }} -v - - name: PHP ${{ matrix.php }} ${{ matrix.contao }} Run tests - run: ant -keep-going + # run tests + - name: Run tests + run: ./vendor/bin/phpcq run -v ${{ matrix.output }} + + - name: Upload build directory to artifact + uses: actions/upload-artifact@v3 + if: ${{ success() }} || ${{ failure() }} + with: + name: phpcq-builds-php-${{ matrix.php }}-${{ matrix.contao }} + path: .phpcq/build/ diff --git a/.phpcq.lock b/.phpcq.lock new file mode 100644 index 0000000..21bdc05 --- /dev/null +++ b/.phpcq.lock @@ -0,0 +1 @@ +{"plugins":{"phpunit":{"api-version":"1.0.0","version":"1.0.0.0","type":"php-file","url":"https://phpcq.github.io/repository/phpunit-1.0.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0"},"tool":{"phpunit":"^6.0 || ^7.0 || ^8.0 || ^9.0"}},"checksum":{"type":"sha-512","value":"c73f15658e3ba62665f09492ec91c3a6a715760bfaa88473a987538439fff442540148e086e46a6aa18ce55a3ea2fbf76caaa581384cb84a38859fcc609ae7e4"},"tools":{"phpunit":{"version":"9.5.26","url":"https://phar.phpunit.de/phpunit-9.5.26.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*","ext-json":"*","ext-libxml":"*","ext-mbstring":"*","ext-xml":"*","ext-xmlwriter":"*"}},"checksum":{"type":"sha-256","value":"e36595f47bb81f244e03fc437328cfaa123e99ffd183c3217235926ff0978397"},"signature":"https://phar.phpunit.de/phpunit-9.5.26.phar.asc"}},"composerLock":null},"psalm":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/psalm-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"psalm":"^3.0 || ^4.0"}},"checksum":{"type":"sha-512","value":"4a550c9226d7bca582d7c10bd87cce01190c96398936b1613421640c83df62ed1c6e0d44c1b39635414ea8cf4a892a6458d27590793238add24e7cb5547e6ffd"},"tools":{"psalm":{"version":"4.29.0","url":"https://github.com/vimeo/psalm/releases/download/4.29.0/psalm.phar","requirements":{"php":{"php":"^7.1|^8","ext-SimpleXML":"*","ext-ctype":"*","ext-dom":"*","ext-json":"*","ext-libxml":"*","ext-mbstring":"*","ext-tokenizer":"*"}},"checksum":null,"signature":"https://github.com/vimeo/psalm/releases/download/4.29.0/psalm.phar.asc"}},"composerLock":null},"composer-require-checker":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/composer-require-checker-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.4 || ^8.0"},"tool":{"composer-require-checker":"^3.8 || ^4.0"}},"checksum":{"type":"sha-512","value":"d5415bddfe024c5749d894034583882aee4e5c3e1087815d9fdd81cb5e71630f631a0e35de0ff84b97fbbf738c16ece5f83bd8c00695913eb846aa6f04577dc2"},"tools":{"composer-require-checker":{"version":"3.8.0","url":"https://github.com/maglnet/ComposerRequireChecker/releases/download/3.8.0/composer-require-checker.phar","requirements":{"php":{"php":"^7.4 || ^8.0","ext-json":"*","ext-phar":"*"}},"checksum":null,"signature":"https://github.com/maglnet/ComposerRequireChecker/releases/download/3.8.0/composer-require-checker.phar.asc"}},"composerLock":null},"phpmd":{"api-version":"1.0.0","version":"1.0.2.0","type":"php-file","url":"https://phpcq.github.io/repository/phpmd-1.0.2.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpmd":"^2.6.1"}},"checksum":{"type":"sha-512","value":"f22280a6dec8dbdd2ec1d83b294f23237fe32c34f4a298e52038e0a7a0074d541635b2b488b1a6098a42d8418a6cd8eb804406ea82b91e362be2b5d11a0915b0"},"tools":{"phpmd":{"version":"2.13.0","url":"https://github.com/phpmd/phpmd/releases/download/2.13.0/phpmd.phar","requirements":{"php":{"php":">=5.3.9","ext-xml":"*"}},"checksum":null,"signature":"https://github.com/phpmd/phpmd/releases/download/2.13.0/phpmd.phar.asc"}},"composerLock":null},"phpcpd":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/phpcpd-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpcpd":"^6.0"}},"checksum":{"type":"sha-512","value":"1189ce0bf3fade4cb4241f1d96f915ef8fc7651f4450dc79fdf464ee3d6be3009316f0d423ce2d4af9d76ad50807b7fdf4d77bfa6d9ee2c91d6eda32ea214433"},"tools":{"phpcpd":{"version":"6.0.3","url":"https://phar.phpunit.de/phpcpd-6.0.3.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*"}},"checksum":{"type":"sha-256","value":"2cbaea7cfda1bb4299d863eb075e977c3f49055dd16d88529fae5150d48a84cb"},"signature":"https://phar.phpunit.de/phpcpd-6.0.3.phar.asc"}},"composerLock":null},"phploc":{"api-version":"1.0.0","version":"1.0.0.0","type":"php-file","url":"https://phpcq.github.io/repository/phploc-1.0.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*","ext-json":"*"},"tool":{"phploc":"^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"}},"checksum":{"type":"sha-512","value":"f67b02d494796adf553cb3dd13ec06c1cb8e53c799954061749424251379541637538199afb3afa3c7a01cabd1cb6f1c53eb621f015dff9644c6c7cbf10c56d1"},"tools":{"phploc":{"version":"7.0.2","url":"https://phar.phpunit.de/phploc-7.0.2.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*","ext-json":"*"}},"checksum":{"type":"sha-256","value":"3d59778ec86faf25fd00e3a329b2f9ad4a3c751ca91601ea7dab70f887b0bf46"},"signature":"https://phar.phpunit.de/phploc-7.0.2.phar.asc"}},"composerLock":null},"phpcs":{"api-version":"1.0.0","version":"1.1.0.0","type":"php-file","url":"https://phpcq.github.io/repository/phpcs-1.1.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpcs":"^3.0 || ^2.0","phpcbf":"^3.0 || ^2.0"}},"checksum":{"type":"sha-512","value":"2737022369da1318cc4e0ea194e8a81019f7b079080d869aab878b7486052fdbe68fee3f28131f35573226def1aabd4bd005e038ee7b767c137b1107c1492a83"},"tools":{"phpcs":{"version":"3.7.1","url":"https://github.com/squizlabs/PHP_CodeSniffer/releases/download/3.7.1/phpcs.phar","requirements":{"php":{"php":">=5.4.0","ext-tokenizer":"*","ext-xmlwriter":"*","ext-simplexml":"*"}},"checksum":null,"signature":"https://github.com/squizlabs/PHP_CodeSniffer/releases/download/3.7.1/phpcs.phar.asc"},"phpcbf":{"version":"3.7.1","url":"https://github.com/squizlabs/PHP_CodeSniffer/releases/download/3.7.1/phpcbf.phar","requirements":{"php":{"php":">=5.4.0","ext-tokenizer":"*","ext-xmlwriter":"*","ext-simplexml":"*"}},"checksum":null,"signature":"https://github.com/squizlabs/PHP_CodeSniffer/releases/download/3.7.1/phpcbf.phar.asc"}},"composerLock":null},"composer-normalize":{"api-version":"1.0.0","version":"1.1.0.0","type":"php-file","url":"https://phpcq.github.io/repository/composer-normalize-1.1.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-json":"*"},"tool":{"composer-normalize":"^2.1"}},"checksum":{"type":"sha-512","value":"d59d3557cb20630734878a9115df5dd32d5aff815e5b15be36f6fb5d6e9d83dd36efd84215ab6529edcc924f600946f739a0d9e67723deff95c88346ab502498"},"tools":{"composer-normalize":{"version":"2.28.3","url":"https://github.com/ergebnis/composer-normalize/releases/download/2.28.3/composer-normalize.phar","requirements":{"php":{"php":"^7.4 || ^8.0"}},"checksum":null,"signature":"https://github.com/ergebnis/composer-normalize/releases/download/2.28.3/composer-normalize.phar.asc"}},"composerLock":null}},"tools":[]} \ No newline at end of file diff --git a/.phpcq.yaml.dist b/.phpcq.yaml.dist new file mode 100644 index 0000000..ed969b0 --- /dev/null +++ b/.phpcq.yaml.dist @@ -0,0 +1,106 @@ +phpcq: + repositories: + - https://phpcq.github.io/repository/repository.json + directories: + - src + - tests + artifact: .phpcq/build + + plugins: + phpunit: + version: ^1.0 + signed: false + psalm: + version: ^1.1 + signed: false + composer-require-checker: + version: ^1.0 + signed: false + requirements: + composer-require-checker: + signed: false + version: ^3.3 + phpmd: + version: ^1.0 + signed: false + requirements: + phpmd: + signed: false + phpcpd: + version: ^1.0 + signed: false + requirements: + phpcpd: + version: ^6.0 + phploc: + version: ^1.0 + signed: false + phpcs: + version: ^1.0 + signed: false + composer-normalize: + version: ^1.0 + signed: false + trusted-keys: + # sb@sebastian-bergmann.de + - 4AA394086372C20A + # psalm + - 8A03EA3B385DBAA1 + - 12CE0F1D262429A5 + # magl@magll.net + - D2CCAC42F6295E7D + # PHP_CodeSniffer + - 31C7E470E2138192 + # Composer normalize + - C00543248C87FB13 + # phpmd + - 0F9684B8B16B7AB0 + - A4E55EA12C7C085C + # composer-require-checker + - 033E5F8D801A2F8D + +tasks: + fix: + - composer-normalize-fix + - phpcbf + verify: + - composer-require-checker + - composer-normalize + analyze: + - phploc + - phpcpd + - phpmd + - phpcs + - psalm + - phpunit + default: + - verify + - analyze + + phpmd: + plugin: phpmd + config: + ruleset: + - ./.phpmd.xml + + composer-normalize-fix: + plugin: composer-normalize + config: + dry_run: false + + composer-require-checker: + plugin: composer-require-checker + config: + config_file: '.composer-require-checker.json' + + phpcs: + plugin: phpcs + config: &phpcs-config + standard: PSR12 + custom_flags: + - '--extensions=php' + + phpcbf: + plugin: phpcs + config: + <<: *phpcs-config diff --git a/.phpmd.xml b/.phpmd.xml new file mode 100644 index 0000000..70c17ee --- /dev/null +++ b/.phpmd.xml @@ -0,0 +1,37 @@ + + + + PHPMD rule set + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build.xml b/build.xml deleted file mode 100644 index b059102..0000000 --- a/build.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/composer.json b/composer.json index 5fc5bcd..6a8c51d 100644 --- a/composer.json +++ b/composer.json @@ -25,13 +25,15 @@ "source": "https://github.com/contao-community-alliance/contao-multicolumnwizard-frontend" }, "require": { - "php": "^7.4 || ^8.0", + "php": "^8.1", + "ext-json": "*", "contao/core-bundle": "^4.13.0, <5.0", "menatwork/contao-multicolumnwizard-bundle": "^3.4.7" }, "require-dev": { - "phpcq/all-tasks": "~1.2", - "contao/manager-bundle": "^4.13.0, <5.0" + "contao/manager-bundle": "^4.13.0, <5.0", + "phpcq/runner-bootstrap": "^1.0@dev" + }, "autoload": { "psr-4": { @@ -43,6 +45,12 @@ "ContaoCommunityAlliance\\MultiColumnWizardFrontendBundle\\Test\\": "tests/" } }, + "config": { + "allow-plugins": { + "contao-components/installer": false, + "contao/manager-plugin": true + } + }, "extra": { "contao-manager-plugin": "ContaoCommunityAlliance\\MultiColumnWizardFrontendBundle\\ContaoManager\\Plugin", "branch-alias": { diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 0000000..3a8d53a --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,27 @@ + + + + + + + ./tests/ + + + + + + ./src/ + + + diff --git a/psalm.xml b/psalm.xml new file mode 100644 index 0000000..ceb6754 --- /dev/null +++ b/psalm.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/src/DependencyInjection/MultiColumnWizardFrontendExtension.php b/src/DependencyInjection/MultiColumnWizardFrontendExtension.php deleted file mode 100644 index f3d3ead..0000000 --- a/src/DependencyInjection/MultiColumnWizardFrontendExtension.php +++ /dev/null @@ -1,80 +0,0 @@ - - * @author Ingolf Steinhardt - * @copyright 2020 - 2022 Contao Community Alliance. - * @license https://github.com/contao-community-alliance/contao-multicolumnwizard-frontend-bundle/blob/master/LICENSE - * LGPL-3.0-or-later - * @filesource - */ - -namespace ContaoCommunityAlliance\MultiColumnWizardFrontendBundle\DependencyInjection; - -use Symfony\Component\Config\FileLocator; -use Contao\CoreBundle\DependencyInjection\Configuration; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; -use Symfony\Component\HttpKernel\DependencyInjection\ConfigurableExtension; - -class MultiColumnWizardFrontendExtension extends ConfigurableExtension -{ - /** - * The config files. - * - * @var array - */ - private $files = [ - // 'listener.yml', - // 'services.yml', - ]; - - /** - * {@inheritdoc} - */ - public function getAlias() - { - return 'multicolumnwizard-frontend-bundle'; - } - - /** - * {@inheritdoc} - */ - public function getConfiguration(array $config, ContainerBuilder $container) - { - // Add the resource to the container - parent::getConfiguration($config, $container); - - return new Configuration( - $container->getParameter('kernel.debug'), - $container->getParameter('kernel.project_dir'), - $container->getParameter('kernel.root_dir'), - $container->getParameter('kernel.default_locale') - ); - } - - /** - * {@inheritdoc} - */ - protected function loadInternal(array $mergedConfig, ContainerBuilder $container) - { - $loader = new YamlFileLoader( - $container, - new FileLocator(__DIR__ . '/../Resources/config') - ); - - foreach ($this->files as $file) { - $loader->load($file); - } - } -} diff --git a/src/MultiColumnWizardFrontendBundle.php b/src/MultiColumnWizardFrontendBundle.php index b6fca84..0b1a33f 100644 --- a/src/MultiColumnWizardFrontendBundle.php +++ b/src/MultiColumnWizardFrontendBundle.php @@ -3,7 +3,7 @@ /** * This file is part of contao-community-alliance/contao-multicolumnwizard-frontend-bundle. * - * (c) 2020 - 2022 Contao Community Alliance. + * (c) 2020-2023 Contao Community Alliance. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -13,7 +13,7 @@ * @package contao-community-alliance/contao-multicolumnwizard-frontend * @author Stefan Heimes * @author Ingolf Steinhardt - * @copyright 2020 - 2022 Contao Community Alliance. + * @copyright 2020-2023 Contao Community Alliance. * @license https://github.com/contao-community-alliance/contao-multicolumnwizard-frontend-bundle/blob/master/LICENSE * LGPL-3.0-or-later * @filesource @@ -21,29 +21,8 @@ namespace ContaoCommunityAlliance\MultiColumnWizardFrontendBundle; -use MenAtWork\MultiColumnWizardBundle\DependencyInjection\MultiColumnWizardExtension; -use ContaoCommunityAlliance\MultiColumnWizardFrontendBundle\DependencyInjection\MultiColumnWizardFrontendExtension; -use Symfony\Component\Console\Application; use Symfony\Component\HttpKernel\Bundle\Bundle; class MultiColumnWizardFrontendBundle extends Bundle { - const SCOPE_BACKEND = 'backend'; - const SCOPE_FRONTEND = 'frontend'; - - /** - * {@inheritdoc} - */ - public function getContainerExtension() - { - return new MultiColumnWizardFrontendExtension(); - } - - /** - * {@inheritdoc} - */ - public function registerCommands(Application $application) - { - // disable automatic command registration - } }