vladyslavstartsev / laravel-strict-coding-standard
Laravel的PHP_CodeSniffer规则,强制应用采用“正确”的设计
0.6.0
2023-04-29 14:28 UTC
Requires
- php: ^7.2 || ^8
- laravel/framework: ^7.30 || ^8.40.0 || ^9 || ^10
- slevomat/coding-standard: ^7.0
- squizlabs/php_codesniffer: ^3.6.0
Requires (Dev)
- doctrine/coding-standard: ^8.0
- ergebnis/composer-normalize: ^2.2
- php-parallel-lint/php-parallel-lint: ^1.2
- phpstan/phpstan: ^0.12.32
- phpstan/phpstan-phpunit: ^0.12.11
- phpstan/phpstan-strict-rules: 0.12.2
- phpunit/phpunit: ^9
- vimeo/psalm: ^3.8
README
PHP_CodeSniffer编码规范用于Laravel,强制开发者不要使用Laravel支持的“坏”设计决策
安装
composer require --dev vladyslavstartsev/laravel-strict-coding-standard
本标准包含的Sniffs
LaravelStrictCodingStandard.Laravel.DisallowUseOfGlobalFunctions
-
检查在以下位置声明的函数:
vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
vendor/laravel/framework/src/Illuminate/Support/helpers.php
LaravelStrictCodingStandard.Laravel.DisallowUseOfFacades
- 检查Laravel Facades的使用(包括实时Facades)
- 如果没有配置,它将使用默认路径在
bootstrap/app.php
中为Illuminate\Foundation\Application
实例
因此,对于默认的Illuminate\Foundation\Application
实例,使用:
<rule ref="LaravelStrictCodingStandard.Laravel.DisallowUseOfFacades"/>
要覆盖,执行以下操作
<rule ref="LaravelStrictCodingStandard.Laravel.DisallowUseOfFacades"> <properties> <property name="laravelApplicationInstancePath" type="string" value=".nonDefaultFolder/application.php"/> </properties> </rule>
我们需要这个实例,这样我们就可以获取应用中可能使用的所有Facades和别名(是的,这看起来像是动态代码分析,但这是唯一找到所有Facades的方法,如果您有静态做的想法,请随意提交PR)