有些同学可能还没听过这东西,大概介绍一下:
PHP_CodeSniffer
是一个代码风格检测工具。它包含两类脚本,phpcs
和 phpcbf
(GitHub地址)。
phpcs
脚本对 PHP
、JavaScript
、CSS
文件定义了一系列的代码规范(通常使用官方的代码规范标准,比如 PHP
的 PSR2
),能够检测出不符合代码规范的代码并发出警告或报错(可设置报错等级)。
phpcbf
脚本能自动修正代码格式上不符合规范的部分。比如 PSR2
规范中对每一个 PHP
文件的结尾都需要有一行空行,那么运行这个脚本后就能自动在结尾处加上一行空行。
安装
推荐使用 composer
来安装:
composer global require "squizlabs/php_codesniffer=*"
安装完后就会在全局的 Vendor
目录下的 bin
中生成两个软链接:
phpcbf -> ../squizlabs/php_codesniffer/bin/phpcbf phpcs -> ../squizlabs/php_codesniffer/bin/phpcs
如果你不知道全局 Vendor
目录在哪,用下这个命令吧:
composer global config bin-dir --absolute
命令行使用
到这一步,其实你就可以愉快的使用这两个命令了:
哦,不过如果要全局使用这两个命令那还是做个软链接放在 /usr/local/bin
下吧~
$ phpcs test.php FILE: /Users/stephen/Develop/Code/test.php -------------------------------------------------------------------------------------------- FOUND 2 ERRORS AFFECTING 2 LINES -------------------------------------------------------------------------------------------- 2 | ERROR | [ ] Missing file doc comment 3 | ERROR | [x] TRUE, FALSE and NULL must be lowercase; expected "false" but found "FALSE" -------------------------------------------------------------------------------------------- PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY -------------------------------------------------------------------------------------------- Time: 45ms; Memory: 4Mb $ phpcbf test.php PHPCBF RESULT SUMMARY ---------------------------------------------------------------------- FILE FIXED REMAINING ---------------------------------------------------------------------- /Users/stephen/Develop/Code/test.php 1 1 ---------------------------------------------------------------------- A TOTAL OF 1 ERROR WERE FIXED IN 1 FILE ---------------------------------------------------------------------- Time: 49ms; Memory: 4Mb
Sublime Text 中集成
安装插件
前提 Package Control
要安装好,这个你肯定没问题的(莫名的自信,逃)
安装 phpcs
这个插件,然后打开这个插件的 Settings - User
和 Settings - Default
,将后者的内容全部复制到前者。
配置插件
将以下这几个配置项配置一下:
当前环境中 php
的执行路径
"phpcs_php_prefix_path": "/usr/bin/php",
当前环境中 phpcs
的执行路径
"phpcs_executable_path": "~/.composer/vendor/bin/phpcs",
执行脚本时额外添加的参数,一般以 PSR2
代码规范作为标准,你也可以选择 PSR1
、PEAR
等
"phpcs_additional_args": { "--standard": "PSR2", "-n": "" },
当前环境中 phpcbf
的执行路径
"phpcbf_executable_path": "/Users/stephen/.composer/vendor/bin/phpcbf",
开启保存就执行 cbf
脚本功能
"phpcbf_on_save": true,
现在就可以愉快的玩耍了,编辑完 .php
后缀的文件保存后就会自动回复修正代码不规范的地方。
这个插件还有其他代码规范可以设置的地方,比如 PHP Mess Detector settings
、PHP Linter settings
、PHP Scheck settings
下次在研究其他几个,目前是够我用了,逃)
PhpStrom 中集成
配置 Code Sniffer
在 Settings -> Languages & Frameworks -> PHP -> Code Sniffer 中对 phpcs
进行配置
点击 Configuration: Local
旁边的 ...
,将当前环境的 phpcs
执行脚本所在路径配置进去,旁边有一个 Validate
按钮可以进行验证,其他两个参数默认就好,这里也稍微说一下吧。
Maxumum number of messages per file[1...100]
:每个文件最多显示不符合代码规范的条数,一般出现50个了那你有很多工作可以做了,其实10个就够了,尤其对我这种代码洁癖和强迫症晚期的人来说一个足矣 。。。
Tool process timeout, sec[1...30]
:脚本执行的超时时间
开启验证
在 Settings -> Editor -> Inspections 中进行开启
找到 PHP -> PHP Code Sniffer validation 选项,对其打钩,在右侧进行详细配置
我是将 Options -> Show warnings as: Error 开启了,当然你也可以选择 Warnning,提示级别高一点能够强迫自己,没啥不好的吧~
Coding standard 依旧是选择 PSR2,如果找不到这个选项,记得点一下紧挨着的刷新按钮。
自动修复
我找了半天没发现 PhpStrom
有支持 phpcbf
的可用选项,所以只能通过 External Tools
来实现了。
在 Settings -> Tools -> External Tools 中进行添加,下面是我的一个示例,基本可以照搬 :)
Parameter | Value |
---|---|
Name | phpcbf |
Description | Automatically correct coding standard violations. |
Program | phpcbf |
Parameters | --standard=PSR2 "$FileDir$/$FileName$" |
现在就可以在菜单栏上的 Tools -> External Tools 中找到它并愉快的使用了。
亮哥,这样很不方便诶。。。
那就加一个快捷键把。。。
在 Settings -> Keymap -> External Tools -> phpcbf 中进行添加快捷键操作,我设置的是 Option + F
,或者 Windows 上的 Alt + F
。
蜜汁延伸
之前没用 phpcbf
,代码自动修复使用的是 php-cs-fixer
,但后来发现两者功能差不多,所以秉着能少一个包就少一个包的原则,放弃了 php-cs-fixer
。
有兴趣的自行拓展了解~
推荐:《PHP视频教程》
以上是如何使用PHP_CodeSniffer检查代码规范(详解)的详细内容。更多信息请关注PHP中文网其他相关文章!

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

你应该关心DependencyInjection(DI),因为它能让你的代码更清晰、更易维护。1)DI通过解耦类,使其更模块化,2)提高了测试的便捷性和代码的灵活性,3)使用DI容器可以管理复杂的依赖关系,但要注意性能影响和循环依赖问题,4)最佳实践是依赖于抽象接口,实现松散耦合。

是的,优化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)优化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,并避免使用

theKeyStrategiestosiminificallyBoostphpapplicationPermenCeare:1)useOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)优化AtabaseInteractionswithPreparedStateTemtStatementStatementSandProperIndexing,3)配置

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver Mac版
视觉化网页开发工具

Atom编辑器mac版下载
最流行的的开源编辑器