smile / magento2-smilelab-quality-suite
适用于Magento项目的完整质量工具套件。
3.0.1
2022-10-13 13:37 UTC
README
此库提供了可在Magento项目中使用的编码标准/规则集。
它包括以下包
目录表
安装
composer require --dev smile/magento2-smilelab-quality-suite
配置
在项目目录根目录创建三个文件
使用
# Check registered vulnerabilities composer audit # Analyse php syntax vendor/bin/parallel-lint --exclude vendor [src path] # Analyse code style vendor/bin/phpcs # Analyse code complexity vendor/bin/phpmd [src path] text phpmd.xml.dist # Analyse code logic vendor/bin/phpstan analyse
修复您的代码
通过运行此命令,许多样式错误可以自动修复
vendor/bin/phpcbf --extensions=php,phtml
Ci
GitHub 工作流程
.github/workflows/static-analysis.yaml
文件的示例
name: 'Static Analysis' on: pull_request: ~ push: branches: - 'master' jobs: tests: runs-on: 'ubuntu-latest' steps: - name: 'Checkout' uses: 'actions/checkout@v3' - name: 'Install PHP' uses: 'shivammathur/setup-php@v2' with: php-version: '8.1' coverage: 'none' tools: 'composer:v2' env: COMPOSER_AUTH_JSON: | { "http-basic": { "repo.magento.com": { "username": "${{ secrets.MAGENTO_USERNAME }}", "password": "${{ secrets.MAGENTO_PASSWORD }}" } } } - name: 'Get composer cache directory' id: 'composer-cache' run: 'echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT' - name: 'Cache dependencies' uses: 'actions/cache@v3' with: path: '${{ steps.composer-cache.outputs.dir }}' key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: '${{ runner.os }}-composer-' - name: 'Install dependencies' run: 'composer install --prefer-dist' - name: 'Run composer audit' run: 'composer audit --format=plain' - name: 'Run Parallel Lint' run: 'vendor/bin/parallel-lint --exclude vendor [src path]' - name: 'Run PHP CodeSniffer' run: 'vendor/bin/phpcs --extensions=php,phtml' - name: 'Run PHPMD' run: 'vendor/bin/phpmd [src path] xml phpmd.xml.dist' - name: 'Run PHPStan' run: 'vendor/bin/phpstan analyse'
GitLab Runner
.gitlab-ci.yml
文件的示例
before_script: - 'composer install' sniffers: variables: COMPOSER_AUTH: $COMPOSER_AUTH script: - 'composer audit --format=plain' - 'vendor/bin/parallel-lint --exclude vendor [src path]' - 'vendor/bin/phpcs --extensions=php,phtml' - 'vendor/bin/phpmd [src path] text phpmd.xml.dist' - 'vendor/bin/phpstan analyse' tags: - 'php81'
基线
如果您想将此编码标准添加到现有项目,修复所有问题可能很复杂。基线是一种机制,允许您保留现有的代码不变,并对您未来添加的代码进行质量分析。
❗ 总是修复所有问题更好。基线是一种帮助您从新开始的小技巧。但请记住,所有错误(在基线或不在基线中)最终都必须得到纠正。
要生成基线,运行以下命令
# PHPCS composer require --dev digitalrevolution/php-codesniffer-baseline vendor/bin/phpcs --report=\\DR\\CodeSnifferBaseline\\Reports\\Baseline --report-file=phpcs.baseline.xml --extensions=php,phtml # PHPMD vendor/bin/phpmd app ansi phpmd.xml.dist --generate-baseline # PHPSTAN vendor/bin/phpstan analyse --generate-baseline
对于phpstan,您需要在phpstan.neon.dist
文件的include
部分添加文件phpstan-baseline.neon
,并将配置reportUnmatchedIgnoredErrors: false
添加到同一文件的parameters
部分。
必须将基线文件添加到git中。