From f29490ef0e809fd99615724ba666513d38f1f1f8 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 16 Mar 2023 17:26:22 +0100 Subject: [PATCH] Update and run CS fixer --- .gitignore | 6 +- .php_cs | 41 -- composer.json | 10 +- src/ContaoManager/Plugin.php | 9 +- src/DC_Multilingual.php | 7 +- .../Terminal42DcMultilingualExtension.php | 11 +- src/Model/Multilingual.php | 9 +- src/Model/MultilingualTrait.php | 42 +- src/Picker/MultilingualPickerProvider.php | 25 +- src/QueryBuilder/MultilingualQueryBuilder.php | 47 +-- .../MultilingualQueryBuilderFactory.php | 22 +- ...ltilingualQueryBuilderFactoryInterface.php | 19 +- .../MultilingualQueryBuilderInterface.php | 11 +- src/Terminal42DcMultilingualBundle.php | 9 +- tools/ecs/composer.json | 10 + tools/ecs/composer.lock | 370 ++++++++++++++++++ tools/ecs/config.php | 25 ++ 17 files changed, 467 insertions(+), 206 deletions(-) delete mode 100644 .php_cs create mode 100644 tools/ecs/composer.json create mode 100644 tools/ecs/composer.lock create mode 100644 tools/ecs/config.php diff --git a/.gitignore b/.gitignore index 0912968..2b2bb1a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -/vendor +/node_modules/ +/tools/**/vendor/ +/vendor/ /composer.lock -/.php_cs.cache -/node_modules diff --git a/.php_cs b/.php_cs deleted file mode 100644 index 3f5e14c..0000000 --- a/.php_cs +++ /dev/null @@ -1,41 +0,0 @@ - -@license http://opensource.org/licenses/lgpl-3.0.html LGPL -@link http://github.com/terminal42/contao-dc_multilingual -EOF; - -return PhpCsFixer\Config::create() - ->setRiskyAllowed(true) - ->setRules( - [ - '@Symfony' => true, - '@Symfony:risky' => true, - 'array_syntax' => ['syntax' => 'short'], - 'combine_consecutive_unsets' => true, - 'header_comment' => ['header' => $header], - 'heredoc_to_nowdoc' => true, - 'no_extra_consecutive_blank_lines' => ['break', 'continue', 'extra', 'return', 'throw', 'use', 'parenthesis_brace_block', 'square_brace_block', 'curly_brace_block'], - 'no_unreachable_default_argument_value' => true, - 'no_useless_else' => true, - 'no_useless_return' => true, - 'ordered_class_elements' => true, - 'ordered_imports' => true, - 'php_unit_strict' => true, - 'phpdoc_add_missing_param_annotation' => true, - 'phpdoc_order' => true, - 'psr4' => true, - 'strict_comparison' => true, - 'strict_param' => true, - ] - ) - ->setFinder( - PhpCsFixer\Finder::create()->in([__DIR__.'/src']) - ) -; diff --git a/composer.json b/composer.json index e7d2fb3..f8e90b1 100644 --- a/composer.json +++ b/composer.json @@ -35,8 +35,7 @@ "doctrine/dbal": "^2.11 || ^3.0" }, "require-dev": { - "contao/manager-plugin": "^2.0", - "friendsofphp/php-cs-fixer": "^2.1" + "contao/manager-plugin": "^2.0" }, "conflict": { "contao/manager-plugin": "<2.0 || >=3.0" @@ -52,10 +51,7 @@ "extra": { "contao-manager-plugin": "Terminal42\\DcMultilingualBundle\\ContaoManager\\Plugin" }, - "config": { - "allow-plugins": { - "composer/package-versions-deprecated": true, - "contao/manager-plugin": true - } + "scripts": { + "cs-fixer": "@php tools/ecs/vendor/bin/ecs check src --config tools/ecs/config.php --fix --ansi" } } diff --git a/src/ContaoManager/Plugin.php b/src/ContaoManager/Plugin.php index 8bfa28a..d808d02 100644 --- a/src/ContaoManager/Plugin.php +++ b/src/ContaoManager/Plugin.php @@ -1,13 +1,6 @@ - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * @link http://github.com/terminal42/contao-dc_multilingual - */ +declare(strict_types=1); namespace Terminal42\DcMultilingualBundle\ContaoManager; diff --git a/src/DC_Multilingual.php b/src/DC_Multilingual.php index 6b41ee1..5ebf3e5 100644 --- a/src/DC_Multilingual.php +++ b/src/DC_Multilingual.php @@ -1,11 +1,14 @@ + * @copyright Copyright (c) 2011-2017, terminal42 gmbh + * @author terminal42 gmbh * @license http://opensource.org/licenses/lgpl-3.0.html LGPL * @link http://github.com/terminal42/contao-dc_multilingual */ diff --git a/src/DependencyInjection/Terminal42DcMultilingualExtension.php b/src/DependencyInjection/Terminal42DcMultilingualExtension.php index bc233df..0ae127d 100644 --- a/src/DependencyInjection/Terminal42DcMultilingualExtension.php +++ b/src/DependencyInjection/Terminal42DcMultilingualExtension.php @@ -1,13 +1,6 @@ - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * @link http://github.com/terminal42/contao-dc_multilingual - */ +declare(strict_types=1); namespace Terminal42\DcMultilingualBundle\DependencyInjection; @@ -18,7 +11,7 @@ class Terminal42DcMultilingualExtension extends Extension { - public function load(array $configs, ContainerBuilder $container) + public function load(array $configs, ContainerBuilder $container): void { $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../../config')); diff --git a/src/Model/Multilingual.php b/src/Model/Multilingual.php index 267e851..00326dc 100644 --- a/src/Model/Multilingual.php +++ b/src/Model/Multilingual.php @@ -1,13 +1,6 @@ - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * @link http://github.com/terminal42/contao-dc_multilingual - */ +declare(strict_types=1); namespace Terminal42\DcMultilingualBundle\Model; diff --git a/src/Model/MultilingualTrait.php b/src/Model/MultilingualTrait.php index 9d0147f..7a8cce7 100644 --- a/src/Model/MultilingualTrait.php +++ b/src/Model/MultilingualTrait.php @@ -1,13 +1,6 @@ - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * @link http://github.com/terminal42/contao-dc_multilingual - */ +declare(strict_types=1); namespace Terminal42\DcMultilingualBundle\Model; @@ -19,6 +12,7 @@ use Contao\System; use Doctrine\DBAL\Query\QueryBuilder; use Terminal42\DcMultilingualBundle\QueryBuilder\MultilingualQueryBuilderFactoryInterface; +use Terminal42\DcMultilingualBundle\QueryBuilder\MultilingualQueryBuilderInterface; trait MultilingualTrait { @@ -86,8 +80,9 @@ public function getAlias($language, $aliasColumnName = 'alias') */ public static function findByAlias($alias, $aliasColumnName = 'alias', $options = []) { - $table = static::getTable(); - $options = array_merge([ + $table = static::getTable(); + $options = array_merge( + [ 'limit' => 1, 'column' => ["$table.$aliasColumnName=?"], 'value' => [$alias], @@ -110,8 +105,9 @@ public static function findByAlias($alias, $aliasColumnName = 'alias', $options */ public static function findByMultilingualAlias($alias, $aliasColumnName = 'alias', $options = []) { - $table = static::getTable(); - $options = array_merge([ + $table = static::getTable(); + $options = array_merge( + [ 'limit' => 1, 'column' => ["($table.$aliasColumnName=? OR translation.$aliasColumnName=?)"], 'value' => [$alias, $alias], @@ -169,6 +165,7 @@ protected static function buildFindQuery(array $options) // Consider the fallback language $fallbackLang = static::getFallbackLanguage(); + if (null !== $fallbackLang && $fallbackLang === $options['language']) { $options['language'] = ''; } @@ -206,7 +203,7 @@ protected static function buildCountQuery(array $options) } /** - * Prevent model from saving when creating a model from a database result. See #51 + * Prevent model from saving when creating a model from a database result. See #51. * * @param Result $objResult The database result object * @@ -221,7 +218,7 @@ protected static function createModelFromDbResult(Result $objResult) } /** - * Prevent new models from saving when creating a new collection from a database result. See #51 + * Prevent new models from saving when creating a new collection from a database result. See #51. * * @param Result $objResult The database result object * @param string $strTable The table name @@ -242,15 +239,12 @@ protected static function createCollectionFromDbResult(Result $objResult, $strTa /** * Apply the model options to the query builder. - * - * @param QueryBuilder $qb - * @param array $options */ - protected static function applyOptionsToQueryBuilder(QueryBuilder $qb, array $options) + protected static function applyOptionsToQueryBuilder(QueryBuilder $qb, array $options): void { // Columns if (!empty($options['column'])) { - if (is_array($options['column'])) { + if (\is_array($options['column'])) { foreach ($options['column'] as $column) { $qb->andWhere($column); } @@ -280,7 +274,7 @@ protected static function applyOptionsToQueryBuilder(QueryBuilder $qb, array $op /** * Get the MultilingualQueryBuilder. * - * @return \Terminal42\DcMultilingualBundle\QueryBuilder\MultilingualQueryBuilderInterface + * @return MultilingualQueryBuilderInterface */ protected static function getMultilingualQueryBuilder() { @@ -303,7 +297,7 @@ protected static function getMultilingualQueryBuilder() */ protected static function getRegularFields() { - $extractor = DcaExtractor::getInstance(static::getTable()); + $extractor = DcaExtractor::getInstance(static::getTable()); $tableColumns = Database::getInstance()->getFieldNames(static::getTable()); return array_intersect($tableColumns, array_keys($extractor->getFields())); @@ -318,11 +312,11 @@ protected static function getTranslatableFields() { static::ensureDataContainerIsLoaded(); - $fields = []; + $fields = []; $tableColumns = Database::getInstance()->getFieldNames(static::getTable()); foreach ($GLOBALS['TL_DCA'][static::getTable()]['fields'] as $field => $data) { - if (!isset($data['eval']['translatableFor']) || !in_array($field, $tableColumns, true)) { + if (!isset($data['eval']['translatableFor']) || !\in_array($field, $tableColumns, true)) { continue; } @@ -347,7 +341,7 @@ protected static function getPidColumn() /** * Ensure the data container is loaded. */ - protected static function ensureDataContainerIsLoaded() + protected static function ensureDataContainerIsLoaded(): void { if (!isset($GLOBALS['TL_DCA'][static::getTable()])) { $loader = new DcaLoader(static::getTable()); diff --git a/src/Picker/MultilingualPickerProvider.php b/src/Picker/MultilingualPickerProvider.php index 110aa0c..c9f1edb 100644 --- a/src/Picker/MultilingualPickerProvider.php +++ b/src/Picker/MultilingualPickerProvider.php @@ -2,27 +2,16 @@ declare(strict_types=1); -/* - * dc_multilingual Extension for Contao Open Source CMS - * - * @copyright  Copyright (c) 2011-2022, terminal42 gmbh - * @author     terminal42 gmbh - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * @link http://github.com/terminal42/contao-dc_multilingual - */ - namespace Terminal42\DcMultilingualBundle\Picker; use Contao\CoreBundle\Framework\ContaoFramework; use Contao\CoreBundle\Picker\AbstractTablePickerProvider; use Contao\DcaLoader; -use DC_Multilingual; use Doctrine\DBAL\Connection; use Knp\Menu\FactoryInterface; use Symfony\Component\Routing\RouterInterface; use Symfony\Contracts\Translation\TranslatorInterface; use Terminal42\DcMultilingualBundle\Driver; -use function strpos; final class MultilingualPickerProvider extends AbstractTablePickerProvider { @@ -45,17 +34,12 @@ public function getName(): string return 'multilingualPicker'; } - protected function getDataContainer(): string - { - return Driver::class; - } - /** * We have to reimplement whole method because we have to check two names of the data container driver. */ public function supportsContext($context): bool { - if (0 !== strpos($context, self::PREFIX)) { + if (0 !== \strpos($context, self::PREFIX)) { return false; } @@ -64,10 +48,15 @@ public function supportsContext($context): bool $this->framework->initialize(); $this->framework->createInstance(DcaLoader::class, [$table])->load(); - $drivers = ['Multilingual', Driver::class, DC_Multilingual::class]; + $drivers = ['Multilingual', Driver::class, \DC_Multilingual::class]; return isset($GLOBALS['TL_DCA'][$table]['config']['dataContainer']) && \in_array($GLOBALS['TL_DCA'][$table]['config']['dataContainer'], $drivers, true) && 0 !== \count($this->getModulesForTable($table)); } + + protected function getDataContainer(): string + { + return Driver::class; + } } diff --git a/src/QueryBuilder/MultilingualQueryBuilder.php b/src/QueryBuilder/MultilingualQueryBuilder.php index dab9058..20ecec4 100644 --- a/src/QueryBuilder/MultilingualQueryBuilder.php +++ b/src/QueryBuilder/MultilingualQueryBuilder.php @@ -1,18 +1,10 @@ - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * @link http://github.com/terminal42/contao-dc_multilingual - */ +declare(strict_types=1); namespace Terminal42\DcMultilingualBundle\QueryBuilder; use Doctrine\DBAL\Query\QueryBuilder; -use function array_intersect; class MultilingualQueryBuilder implements MultilingualQueryBuilderInterface { @@ -49,21 +41,12 @@ class MultilingualQueryBuilder implements MultilingualQueryBuilderInterface /** * MultilingualQueryBuilder constructor. * - * @param QueryBuilder $qb - * @param string $table - * @param string $pidColumnName - * @param string $langColumnName - * @param array $regularFields - * @param array $translatableFields + * @param string $table + * @param string $pidColumnName + * @param string $langColumnName */ - public function __construct( - QueryBuilder $qb, - $table, - $pidColumnName, - $langColumnName, - array $regularFields, - array $translatableFields - ) { + public function __construct(QueryBuilder $qb, $table, $pidColumnName, $langColumnName, array $regularFields, array $translatableFields) + { $this->qb = $qb; $this->table = $table; $this->langColumnName = $langColumnName; @@ -75,27 +58,26 @@ public function __construct( /** * Build the query for a simple count query. */ - public function buildQueryBuilderForCount() + public function buildQueryBuilderForCount(): void { $this->qb->resetQueryParts(); $this->qb->addSelect("COUNT({$this->table}.id) AS count") ->from($this->table, $this->table) - ->where("{$this->table}.{$this->pidColumnName}=0"); + ->where("{$this->table}.{$this->pidColumnName}=0") + ; } /** * Build the query for a simple count query with a subquery. - * - * @param QueryBuilder $queryBuilder */ - public function buildQueryBuilderForCountWithSubQuery(QueryBuilder $queryBuilder) + public function buildQueryBuilderForCountWithSubQuery(QueryBuilder $queryBuilder): void { $this->qb->resetQueryParts(); - $this->qb->addSelect("COUNT(t1.id) AS count") + $this->qb->addSelect('COUNT(t1.id) AS count') ->from($this->table, 't1') - ->join('t1', sprintf('(%s)', $queryBuilder->getSQL()), 't3', "t1.id = t3.id") + ->join('t1', sprintf('(%s)', $queryBuilder->getSQL()), 't3', 't1.id = t3.id') ; } @@ -104,12 +86,13 @@ public function buildQueryBuilderForCountWithSubQuery(QueryBuilder $queryBuilder * * @param string $language */ - public function buildQueryBuilderForFind($language) + public function buildQueryBuilderForFind($language): void { $this->qb->resetQueryParts(); // Always translate system columns $systemColumns = ['id', $this->langColumnName, $this->pidColumnName]; + foreach ($systemColumns as $field) { $this->qb->addSelect("IFNULL(translation.$field, {$this->table}.$field) AS $field"); } @@ -120,7 +103,7 @@ public function buildQueryBuilderForFind($language) } // Translatable fields - foreach (array_intersect($this->translatableFields, $this->regularFields) as $field) { + foreach (\array_intersect($this->translatableFields, $this->regularFields) as $field) { $this->qb->addSelect("IFNULL(translation.$field, {$this->table}.$field) AS $field"); } diff --git a/src/QueryBuilder/MultilingualQueryBuilderFactory.php b/src/QueryBuilder/MultilingualQueryBuilderFactory.php index f1ae422..165ee91 100644 --- a/src/QueryBuilder/MultilingualQueryBuilderFactory.php +++ b/src/QueryBuilder/MultilingualQueryBuilderFactory.php @@ -1,13 +1,6 @@ - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * @link http://github.com/terminal42/contao-dc_multilingual - */ +declare(strict_types=1); namespace Terminal42\DcMultilingualBundle\QueryBuilder; @@ -23,8 +16,6 @@ class MultilingualQueryBuilderFactory implements MultilingualQueryBuilderFactory /** * QueryBuilderFactory constructor. - * - * @param Connection $connection */ public function __construct(Connection $connection) { @@ -37,18 +28,11 @@ public function __construct(Connection $connection) * @param string $table * @param string $pidColumnName * @param string $langColumnName - * @param array $regularFields - * @param array $translatableFields * * @return MultilingualQueryBuilderInterface */ - public function build( - $table, - $pidColumnName, - $langColumnName, - array $regularFields, - array $translatableFields - ) { + public function build($table, $pidColumnName, $langColumnName, array $regularFields, array $translatableFields) + { return new MultilingualQueryBuilder( $this->createQueryBuilder(), $table, diff --git a/src/QueryBuilder/MultilingualQueryBuilderFactoryInterface.php b/src/QueryBuilder/MultilingualQueryBuilderFactoryInterface.php index 8c7c8b1..2e9a3bf 100644 --- a/src/QueryBuilder/MultilingualQueryBuilderFactoryInterface.php +++ b/src/QueryBuilder/MultilingualQueryBuilderFactoryInterface.php @@ -1,13 +1,6 @@ - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * @link http://github.com/terminal42/contao-dc_multilingual - */ +declare(strict_types=1); namespace Terminal42\DcMultilingualBundle\QueryBuilder; @@ -19,16 +12,8 @@ interface MultilingualQueryBuilderFactoryInterface * @param string $table * @param string $pidColumnName * @param string $langColumnName - * @param array $regularFields - * @param array $translatableFields * * @return MultilingualQueryBuilderInterface */ - public function build( - $table, - $pidColumnName, - $langColumnName, - array $regularFields, - array $translatableFields - ); + public function build($table, $pidColumnName, $langColumnName, array $regularFields, array $translatableFields); } diff --git a/src/QueryBuilder/MultilingualQueryBuilderInterface.php b/src/QueryBuilder/MultilingualQueryBuilderInterface.php index 90ee05f..2247017 100644 --- a/src/QueryBuilder/MultilingualQueryBuilderInterface.php +++ b/src/QueryBuilder/MultilingualQueryBuilderInterface.php @@ -1,13 +1,6 @@ - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * @link http://github.com/terminal42/contao-dc_multilingual - */ +declare(strict_types=1); namespace Terminal42\DcMultilingualBundle\QueryBuilder; @@ -22,8 +15,6 @@ public function buildQueryBuilderForCount(); /** * Build the query for a simple count query. - * - * @param QueryBuilder $queryBuilder */ public function buildQueryBuilderForCountWithSubQuery(QueryBuilder $queryBuilder); diff --git a/src/Terminal42DcMultilingualBundle.php b/src/Terminal42DcMultilingualBundle.php index d0bef9d..2f382ef 100644 --- a/src/Terminal42DcMultilingualBundle.php +++ b/src/Terminal42DcMultilingualBundle.php @@ -1,13 +1,6 @@ - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * @link http://github.com/terminal42/contao-dc_multilingual - */ +declare(strict_types=1); namespace Terminal42\DcMultilingualBundle; diff --git a/tools/ecs/composer.json b/tools/ecs/composer.json new file mode 100644 index 0000000..f57ffb7 --- /dev/null +++ b/tools/ecs/composer.json @@ -0,0 +1,10 @@ +{ + "require": { + "contao/easy-coding-standard": "^5.3" + }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } + } +} diff --git a/tools/ecs/composer.lock b/tools/ecs/composer.lock new file mode 100644 index 0000000..f23fa60 --- /dev/null +++ b/tools/ecs/composer.lock @@ -0,0 +1,370 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "6b94a27e98b2b92072464c8472617426", + "packages": [ + { + "name": "contao/easy-coding-standard", + "version": "5.4.2", + "source": { + "type": "git", + "url": "https://github.com/contao/easy-coding-standard.git", + "reference": "55d47f7b08e60199b32e9e9cbaffd5d1bd2bb620" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contao/easy-coding-standard/zipball/55d47f7b08e60199b32e9e9cbaffd5d1bd2bb620", + "reference": "55d47f7b08e60199b32e9e9cbaffd5d1bd2bb620", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "slevomat/coding-standard": "^7.0 || ^8.0", + "symplify/easy-coding-standard": "^10.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Contao\\EasyCodingStandard\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Leo Feyer", + "homepage": "https://github.com/leofeyer" + } + ], + "description": "EasyCodingStandard configurations for Contao", + "support": { + "issues": "https://github.com/contao/easy-coding-standard/issues", + "source": "https://github.com/contao/easy-coding-standard/tree/5.4.2" + }, + "funding": [ + { + "url": "https://to.contao.org/donate", + "type": "custom" + } + ], + "time": "2023-01-06T10:46:16+00:00" + }, + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/composer-installer.git", + "reference": "4be43904336affa5c2f70744a348312336afd0da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", + "reference": "4be43904336affa5c2f70744a348312336afd0da", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + }, + "require-dev": { + "composer/composer": "*", + "ext-json": "*", + "ext-zip": "*", + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpcompatibility/php-compatibility": "^9.0", + "yoast/phpunit-polyfills": "^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcbf", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "source": "https://github.com/PHPCSStandards/composer-installer" + }, + "time": "2023-01-05T11:28:13+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.15.3", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "61800f71a5526081d1b5633766aa88341f1ade76" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/61800f71a5526081d1b5633766aa88341f1ade76", + "reference": "61800f71a5526081d1b5633766aa88341f1ade76", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.15.3" + }, + "time": "2022-12-20T20:56:55+00:00" + }, + { + "name": "slevomat/coding-standard", + "version": "8.8.0", + "source": { + "type": "git", + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "59e25146a4ef0a7b194c5bc55b32dd414345db89" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/59e25146a4ef0a7b194c5bc55b32dd414345db89", + "reference": "59e25146a4ef0a7b194c5bc55b32dd414345db89", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", + "php": "^7.2 || ^8.0", + "phpstan/phpdoc-parser": ">=1.15.2 <1.16.0", + "squizlabs/php_codesniffer": "^3.7.1" + }, + "require-dev": { + "phing/phing": "2.17.4", + "php-parallel-lint/php-parallel-lint": "1.3.2", + "phpstan/phpstan": "1.4.10|1.9.6", + "phpstan/phpstan-deprecation-rules": "1.1.1", + "phpstan/phpstan-phpunit": "1.0.0|1.3.3", + "phpstan/phpstan-strict-rules": "1.4.4", + "phpunit/phpunit": "7.5.20|8.5.21|9.5.27" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "psr-4": { + "SlevomatCodingStandard\\": "SlevomatCodingStandard" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", + "keywords": [ + "dev", + "phpcs" + ], + "support": { + "issues": "https://github.com/slevomat/coding-standard/issues", + "source": "https://github.com/slevomat/coding-standard/tree/8.8.0" + }, + "funding": [ + { + "url": "https://github.com/kukulich", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", + "type": "tidelift" + } + ], + "time": "2023-01-09T10:46:13+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.7.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2023-02-22T23:07:41+00:00" + }, + { + "name": "symplify/easy-coding-standard", + "version": "10.3.3", + "source": { + "type": "git", + "url": "https://github.com/symplify/easy-coding-standard.git", + "reference": "c93878b3c052321231519b6540e227380f90be17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symplify/easy-coding-standard/zipball/c93878b3c052321231519b6540e227380f90be17", + "reference": "c93878b3c052321231519b6540e227380f90be17", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "conflict": { + "friendsofphp/php-cs-fixer": "<3.0", + "squizlabs/php_codesniffer": "<3.6" + }, + "bin": [ + "bin/ecs" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.3-dev" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Prefixed scoped version of ECS package", + "support": { + "source": "https://github.com/symplify/easy-coding-standard/tree/10.3.3" + }, + "funding": [ + { + "url": "https://www.paypal.me/rectorphp", + "type": "custom" + }, + { + "url": "https://github.com/tomasvotruba", + "type": "github" + } + ], + "time": "2022-06-13T14:03:37+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/tools/ecs/config.php b/tools/ecs/config.php new file mode 100644 index 0000000..c9b1294 --- /dev/null +++ b/tools/ecs/config.php @@ -0,0 +1,25 @@ +sets([__DIR__.'/vendor/contao/easy-coding-standard/config/contao.php']); + + $ecsConfig->skip([ + __DIR__.'/../../src/Driver.php', + TrailingCommaInMultilineFixer::class + ]); + + $ecsConfig->ruleWithConfiguration(HeaderCommentFixer::class, ['header' => '']); + + $ecsConfig->parallel(); + $ecsConfig->lineEnding("\n"); + + $parameters = $ecsConfig->parameters(); + $parameters->set(Option::CACHE_DIRECTORY, sys_get_temp_dir().'/ecs_default_cache'); +};