soderlind / coding-standard
PHP CodeSniffer 检查器,用于检查所有全局 PHP 函数是否完全限定。
Requires
README
嗅探器
FullyQualifiedGlobalFunctions,一个 PHP CodeSniffer 检查器,用于检查全局 PHP 函数是否缺少反斜杠。
为什么?
没有反斜杠的函数解析强制 PHP 全局变量在每次函数调用时验证函数是否属于当前命名空间或全局命名空间。使用反斜杠时,PHP 不检查当前命名空间,因此执行速度更快。
安装
使用以下命令安装: composer require --dev soderlind/coding-standard
使用
在项目根目录中创建一个 phpcs.xml.dist 文件。例如:
<?xml version="1.0"?> <ruleset name="MyProject"> <arg name="extensions" value="php" /> <exclude-pattern>/vendor/*</exclude-pattern> <rule ref="WordPress" /> <!-- Here's the rule for my sniff --> <rule name="FullyQualifiedGlobalFunctions"> <description>Checks if global PHP functions are fully qualified.</description> <properties> <!-- whether to add backslash to all gobal functions or only optimized global funtions --> <property name="onlyOptimizedFunctions" value="true"/> </properties> </rule> </ruleset>
如果将 onlyOptimizedFunctions 设置为 true,则反斜杠只会添加到 优化函数。
注意,
<property name="onlyOptimizedFunctions" value="true"/> 目前不起作用。如果您只想将反斜杠添加到优化函数中,请使用命令行
检查
./vendor/bin/phpcs -p test.php
FILE: test.php
--------------------------------------------------------------------------------
FOUND 2 ERRORS AFFECTING 2 LINES
--------------------------------------------------------------------------------
5 | ERROR | [x] Function array_diff() should be referenced via a fully
| | qualified name, e.g.: \array_diff()
7 | ERROR | [x] Function in_array() should be referenced via a fully qualified
| | name, e.g.: \in_array()
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------
修复
./vendor/bin/phpcbf -p test.php
PHPCBF RESULT SUMMARY
----------------------------------------------------------------------
FILE FIXED REMAINING
----------------------------------------------------------------------
test.php 2 0
----------------------------------------------------------------------
A TOTAL OF 2 ERRORS WERE FIXED IN 1 FILE
----------------------------------------------------------------------
命令行
您可以从命令行运行它,例如:
./vendor/bin/phpcbf -p test.php --standard=FullyQualifiedGlobalFunctions --runtime-set onlyOptimizedFunctions true
许可
MIT 许可证
版权所有 © 2020 Per Søderlind
特此授予任何人免费获得此软件及其相关文档文件(以下简称“软件”)的副本(以下简称“软件”),在不受任何限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许获得该软件的人进行此类处理,但受以下条件约束
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是根据合同、侵权或其他行为产生的,与该软件或该软件的使用或其他交易有关。