vladyslavstartsev/laravel-strict-coding-standard

Laravel的PHP_CodeSniffer规则,强制应用采用“正确”的设计

0.6.0 2023-04-29 14:28 UTC

This package is auto-updated.

Last update: 2024-08-29 17:08:14 UTC


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)