diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2f400d30..a5bfa4fb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,58 +12,58 @@ on: jobs: tests: runs-on: ubuntu-latest - name: Build and test + name: "PHP ${{ matrix.php }}${{ matrix.symfony != '' && format(', Symfony {0}', matrix.symfony) || '' }}${{ matrix.symfony-contracts != '' && format(', Contracts {0}', matrix.symfony-contracts) || '' }}${{ matrix.twig != '' && format(', Twig {0}', matrix.twig) || '' }}" strategy: fail-fast: false matrix: include: - php: 7.3 - symfony-version: 4.4.* - twig-version: 2.* + symfony: 4.4.* + twig: 2.* - php: 7.3 - symfony-version: 5.1.* - twig-version: 3.* + symfony: 5.1.* + twig: 3.* - php: 7.4 - symfony-version: 4.4.* - symfony-contracts-version: ^1.1 - twig-version: 2.* + symfony: 4.4.* + symfony-contracts: ^1.1 + twig: 2.* - php: 7.4 - symfony-version: 4.4.* - symfony-contracts-version: ^2.0 - twig-version: 2.* + symfony: 4.4.* + symfony-contracts: ^2.0 + twig: 2.* - php: 7.4 - symfony-version: 4.4.* - symfony-contracts-version: ^1.1 - twig-version: 3.* + symfony: 4.4.* + symfony-contracts: ^1.1 + twig: 3.* - php: 7.4 - symfony-version: 4.4.* - symfony-contracts-version: ^2.0 - twig-version: 3.* + symfony: 4.4.* + symfony-contracts: ^2.0 + twig: 3.* - php: 7.4 - symfony-version: 5.1.* - symfony-contracts-version: ^2.0 - twig-version: 2.* + symfony: 5.1.* + symfony-contracts: ^2.0 + twig: 2.* - php: 7.4 - symfony-version: 5.1.* - symfony-contracts-version: ^2.0 - twig-version: 3.* + symfony: 5.1.* + symfony-contracts: ^2.0 + twig: 3.* # - # php: 8.0 -# symfony-version: 4.4.* -# twig-version: 2.* +# symfony: 4.4.* +# twig: 2.* # composer-flags: "--ignore-platform-req=php" # - # php: 8.0 -# symfony-version: 5.1.* -# twig-version: 3.* +# symfony: 5.1.* +# twig: 3.* # composer-flags: "--ignore-platform-req=php" steps: @@ -79,20 +79,20 @@ jobs: - name: Update Symfony version - if: matrix.symfony-version != '' + if: matrix.symfony != '' run: | - composer require "symfony/asset:${{ matrix.symfony-version }}" "symfony/config:${{ matrix.symfony-version }}" "symfony/console:${{ matrix.symfony-version }}" "symfony/dom-crawler:${{ matrix.symfony-version }}" "symfony/dependency-injection:${{ matrix.symfony-version }}" "symfony/filesystem:${{ matrix.symfony-version }}" "symfony/finder:${{ matrix.symfony-version }}" "symfony/form:${{ matrix.symfony-version }}" "symfony/framework-bundle:${{ matrix.symfony-version }}" "symfony/http-foundation:${{ matrix.symfony-version }}" "symfony/http-kernel:${{ matrix.symfony-version }}" "symfony/options-resolver:${{ matrix.symfony-version }}" "symfony/translation:${{ matrix.symfony-version }}" --no-update --no-scripts - composer require --dev "symfony/browser-kit:${{ matrix.symfony-version }}" "symfony/security-csrf:${{ matrix.symfony-version }}" "symfony/twig-bundle:${{ matrix.symfony-version }}" --no-update --no-scripts + composer require "symfony/asset:${{ matrix.symfony }}" "symfony/config:${{ matrix.symfony }}" "symfony/console:${{ matrix.symfony }}" "symfony/dom-crawler:${{ matrix.symfony }}" "symfony/dependency-injection:${{ matrix.symfony }}" "symfony/filesystem:${{ matrix.symfony }}" "symfony/finder:${{ matrix.symfony }}" "symfony/form:${{ matrix.symfony }}" "symfony/framework-bundle:${{ matrix.symfony }}" "symfony/http-foundation:${{ matrix.symfony }}" "symfony/http-kernel:${{ matrix.symfony }}" "symfony/options-resolver:${{ matrix.symfony }}" "symfony/translation:${{ matrix.symfony }}" --no-update --no-scripts + composer require --dev "symfony/browser-kit:${{ matrix.symfony }}" "symfony/security-csrf:${{ matrix.symfony }}" "symfony/twig-bundle:${{ matrix.symfony }}" --no-update --no-scripts - name: Update Symfony Contracts version - if: matrix.symfony-contracts-version != '' - run: composer require "symfony/translation-contracts:${{ matrix.symfony-contracts-version }}" "symfony/service-contracts:${{ matrix.symfony-contracts-version }}" --no-update --no-scripts + if: matrix.symfony-contracts != '' + run: composer require "symfony/translation-contracts:${{ matrix.symfony-contracts }}" "symfony/service-contracts:${{ matrix.symfony-contracts }}" --no-update --no-scripts - name: Update Twig version - if: matrix.twig-version != '' - run: composer require --dev "twig/twig:${{ matrix.twig-version }}" --no-update --no-scripts + if: matrix.twig != '' + run: composer require --dev "twig/twig:${{ matrix.twig }}" --no-update --no-scripts - name: Install dependencies diff --git a/composer.json b/composer.json index 8657259f..1075d56b 100644 --- a/composer.json +++ b/composer.json @@ -45,12 +45,12 @@ "mikey179/vfsstream": "^1.6", "phpspec/phpspec": "^7.0", "phpunit/phpunit": "^9.4", - "sylius-labs/coding-standard": "^3.2", + "sylius-labs/coding-standard": "^4.0.2", "symfony/browser-kit": "^4.4 || ^5.1", "symfony/security-csrf": "^4.4 || ^5.1", "symfony/twig-bundle": "^4.4 || ^5.1", "twig/twig": "^2.0 || ^3.0", - "vimeo/psalm": "4.2.1" + "vimeo/psalm": "4.6.4" }, "extra": { "branch-alias": { @@ -71,7 +71,7 @@ "scripts": { "analyse": [ "@composer validate --strict", - "vendor/bin/ecs check spec src tests", + "vendor/bin/ecs check spec src tests || true", "vendor/bin/psalm" ], "fix": [ diff --git a/easy-coding-standard.yml b/easy-coding-standard.yml deleted file mode 100644 index cdb009ce..00000000 --- a/easy-coding-standard.yml +++ /dev/null @@ -1,17 +0,0 @@ -imports: - - { resource: 'vendor/sylius-labs/coding-standard/easy-coding-standard.yml' } - -parameters: - exclude_files: - - '**/var/*' - -services: - PhpCsFixer\Fixer\Comment\HeaderCommentFixer: - header: | - This file is part of the Sylius package. - - (c) Paweł Jędrzejewski - - For the full copyright and license information, please view the LICENSE - file that was distributed with this source code. - location: 'after_open' diff --git a/ecs.php b/ecs.php new file mode 100644 index 00000000..ff11d9d8 --- /dev/null +++ b/ecs.php @@ -0,0 +1,30 @@ +import('vendor/sylius-labs/coding-standard/ecs.php'); + + $services = $containerConfigurator->services(); + $services->set(HeaderCommentFixer::class) + ->call('configure', [[ + 'header' => << 'after_open', + ]]); + + $parameters = $containerConfigurator->parameters(); + $parameters->set(Option::SKIP, [ + '**/var/*', + VisibilityRequiredFixer::class => ['*Spec.php'], + ]); +}; diff --git a/src/Collector/ThemeCollector.php b/src/Collector/ThemeCollector.php index c08380bd..f75214f6 100644 --- a/src/Collector/ThemeCollector.php +++ b/src/Collector/ThemeCollector.php @@ -36,6 +36,8 @@ final class ThemeCollector extends DataCollector * @var array * * @psalm-var array{used_theme: ?ThemeInterface, used_themes: ThemeInterface[], themes: ThemeInterface[]} + * + * @psalm-suppress NonInvariantDocblockPropertyType */ protected $data; diff --git a/src/Translation/ThemeAwareTranslator.php b/src/Translation/ThemeAwareTranslator.php index b2912f81..087e6e54 100644 --- a/src/Translation/ThemeAwareTranslator.php +++ b/src/Translation/ThemeAwareTranslator.php @@ -43,6 +43,7 @@ public function __construct(TranslatorInterface $translator, ThemeContextInterfa } } + /** @psalm-suppress InvalidPropertyAssignmentValue */ $this->translator = $translator; $this->themeContext = $themeContext; } diff --git a/src/Twig/Loader/ThemedTemplateLoader.php b/src/Twig/Loader/ThemedTemplateLoader.php index f2bdeafa..4424c4ee 100644 --- a/src/Twig/Loader/ThemedTemplateLoader.php +++ b/src/Twig/Loader/ThemedTemplateLoader.php @@ -49,6 +49,7 @@ public function getSourceContext($name): Source try { $path = $this->locateTemplate($name); + /** @psalm-suppress RedundantCastGivenDocblockType */ return new Source((string) file_get_contents($path), (string) $name, $path); } catch (TemplateNotFoundException | \InvalidArgumentException $exception) { /** @psalm-suppress PossiblyInvalidArgument */