玩转 PhpStorm 系列(十一):使用 PHP CS Fixer 统一团队编码风格 | 玩转 PhpStorm 系列教程


本站和网页 https://laravelacademy.org/post/21908 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

玩转 PhpStorm 系列(十一):使用 PHP CS Fixer 统一团队编码风格 | 玩转 PhpStorm 系列教程
Laravel 学院
文档
Laravel 8.x 中文文档
Laravel 7.x 中文文档
Laravel 6.x 中文文档
Laravel 5.8 中文文档
Laravel 5.7 中文文档
Laravel 5.6 中文文档
Laravel 5.5 中文文档
Laravel 5.4 中文文档
Laravel 5.3 中文文档
Laravel 5.2 中文文档
Laravel 5.1 中文文档
Lumen 中文文档
全栈教程
PHP 全栈工程师指南
PHP 入门到实战
Laravel 入门到精通
Vue.js 入门到实战
玩转 PhpStorm 教程
Laravel 博客入门项目
Laravel 微信小程序项目
Laravel 前后端分离项目
Swoole 入门到实战
Eloquent 性能优化实战
Redis 高性能实战系列
Laravel 新版本特性
PHP 新特性与最佳实践
Golang
Go 入门教程
Go Web 编程
Gin 使用教程
微服务开发
内功修炼
数据结构与算法
网络协议
微服务从入门到实践
高性能 MySQL 实战
高性能 Redis 实战
Laravel 消息队列实战
Laravel 从学徒到工匠
PHP 设计模式系列
名企面试指南
资源库
Laravel 资源大全
Laravel 开源项目
Laravel 扩展包
Laravel 资源下载
更多
博客 & 新闻
问答 & 讨论
Leetcode 题解
学院君读书笔记系列
关于 Laravel 学院
Laravel 互助学习群
Golang 互助学习群
更多
Laravel 中文文档
Laravel 全栈教程
Laravel 学习路径
Go 入门教程
程序员内功修炼
博客
问答
搜索
注册
登录
Info
Content
章节导航
玩转 PhpStorm 系列教程
目录索引
玩转 PhpStorm 系列(一):主题切换、自定义和第三方主题安装
玩转 PhpStorm 系列(二):通过快捷键实现代码全局导航和上下文导航
玩转 PhpStorm 系列(三):第三方插件的安装、使用和卸载
玩转 PhpStorm 系列(四):快捷键预览、切换和自定义
玩转 PhpStorm 系列(五):灵活使用代码模板功能提高编码效率
玩转 PhpStorm 系列(六):通过代码重构提高代码复用性
玩转 PhpStorm 系列(七):一些提高工作效率的小技巧
玩转 PhpStorm 系列(八):基于 IdeaVim 插件模拟 Vim 编辑器进行编码
玩转 PhpStorm 系列(九):基于 Xdebug 进行代码调试(上)—— PHP CLI 应用
玩转 PhpStorm 系列(十):基于 Xdebug 进行代码调试(下)—— PHP Web 应用
玩转 PhpStorm 系列(十一):使用 PHP CS Fixer 统一团队编码风格
玩转 PhpStorm 系列(十二):基于 PHPUnit 进行单元测试
图书
玩转 PhpStorm 系列教程
玩转 PhpStorm 系列(十一):使用 PHP CS Fixer 统一团队编码风格
玩转 PhpStorm 系列(十一):使用 PHP CS Fixer 统一团队编码风格
由 学院君 创建于2年前, 最后更新于 2年前
版本号 #2
5090 views
0 likes
0 collects
我们知道 Laravel 遵循 PSR-2 编码风格和 PSR-4 自动载入标准。
在 PhpStorm 中,我们可以通过配置实现根命名空间与指定目录的映射,进而在创建 PHP 类时通过 PSR-4 自动载入标准根据类所在的目录路径生成对应的命名空间;还可以通过外部 PHP Code Sniffer 工具对代码进行自动修复从而使其遵循 PSR-2 编码风格,提升工作效率。
下面我们以一个 Laravel 项目为例进行演示。
PSR-4
在 Laravel 项目中,默认 \App 命名空间对应的是根目录下的 app 子目录,这可以通过 composer.json 进行配置:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
},
在 PhpStorm 中,还可以通过 Preferences | Directories 进行配置(Windows 下 Preferences 对应的是 Settings):
选中要设置命令空间的 app 目录,可以看到当前它与 \App 根命名空间映射,你可以点击右侧小红框内的铅笔按钮进行编辑,在包前缀输入框中将其调整为你自己的应用名称:
点击「OK」按钮保存,接下来,应用该更改,再到 app 目录下新建类,可以看到根命名空间已经变成了 Xueyuanjun,而不再是 App:
通过这种方式,我们可以很方便地在 PhpStorm 中修改命名空间并且基于 PSR-4 自动载入标准新建 PHP 类。
PSR-2
代码嗅探工具
与 PSR-4 不同,PSR-2 是 PHP-FIG 组织为 PHP 制定的编码风格标准,它涉及的范围远大于类的自动载入,包含 PHP 编码风格的边边角角,如果要让自己的 PHP 项目遵循 PSR-2 标准,可以通过 PHP Code Sniffer、PHP-CS-Fixer 之类的第三方扩展对 PHP 项目代码进行自动检测,我们可以将这些代码风格检测逻辑放到提交代码到代码仓库的钩子函数中,如果不符合指定编码风格(不限于 PSR-2,还可以是 PSR-1 或者公司自定义的编码风格等),则拒绝提交代码,这样,就可以保证代码仓库中维护的代码都是符合特定编码风格的。
在 PhpStorm 中,可以通过集成外部安装的这些代码嗅探工具非常方便的对代码进行自动检测和修复,从而让最终交付的代码都是符合特定编码风格的。
这里我们以 php-cs-fixer 作为代码嗅探工具(使用它的好处是不仅能够嗅探到「坏代码」还可以自动对其进行修复),将编码风格设置为遵循 PSR-2 标准。
你可以通过 which 命令检测系统是否已经安装过该工具以及对应的安装路径:
注:如果没有安装的话,使用 Composer 全局安装即可。
在 PhpStorm 中配置 php-cs-fixer
接下来,在 PhpStorm 的 Preferences | Languages & Frameworks | PHP | Quality Tools 配置界面中,目前还没有配置任何 PHP CS Fixer 路径:
点击配置下拉框右侧的「...」按钮,在弹出的窗口输入框输入上面运行 which php-cs-fixer 命令返回的路径,点击「Validate」按钮进行验证:
下面会出现包含 OK 和 PHP CS Fixer 版本的提示文本,表示该路径有效,点击「Apply」按钮应用更改,点击「OK」关闭该窗口。
接下来,在 PHP | Quality Tools 界面点击「PHP CS Fixer inspection」:
在弹出界面勾选「PHP CS Fixer validation」:
可以看到这里默认使用的是 PSR-2 编码规则(你还可以通过下拉框选择使用其他编码风格)。点击「Apply」应用更改,点击「OK」关闭窗口。
通过 PHP CS Fixer 修正代码风格
接下来,我们就可以在 PhpStorm 中通过上面配置的 PHP CS Fixer 对代码进行嗅探和自动修正了。
单个文件
我们打开一个 PHP 文件,将类和方法后面的花括号调整为不换行:
此时,可以看到代码下面出现波浪线,这意味着 PHP CS Fixer 嗅探到不符合系统设置编码风格的代码(这里是 PSR-2),将光标移动到出现问题的代码位置,停留片刻会出现提示框,提示类定义、方法定义的括号不符合指定编码风格:
你可以通过点击下面的蓝色小字「PHP CS Fixer:fix the whole file」自动修复这个文件(对应的快捷键是 Option + Shift + Enter)。
批量修正
当然,对于整个项目来说,如果一个个这样嗅探和修复是不现实的,我们可以在 PhpStorm 中通过配置外部工具来实现批量修正指定目录的代码风格。在 Preferences | Tools | External Tools 界面点击「+」新建一个外部工具:
在弹出窗口表单填写内容如下:
我们将这个外部工具命名为 PHP CS Fixer,然后在 Paragam 输入 php-cs-fixer,参数中输入修复指令,这里我们指定路径为当前目录,验证规则为 PSR-2。点击「OK」保存。
接下来,就可以在 PhpStorm 的 Project 区域选中某个目录,点击右键,在下拉菜单看到 External Tools->PHP CS Fixer 选项:
点击 PHP CS Fixer 就可以对选中目录进行进行代码嗅探和修复了,实际上指定的是我们前面配置的 php-cs-fixer fix 指令,执行结果会输入到 PhpStorm 下方 Run 区域:
如果有代码被修正,会列在控制台输出日志中。怎么样,是不是很方便?当然,你也可以直接在指定目录下执行对应 fix 指令,只不过,在 PhpStorm 中,我觉得通过这种配置外部工具的方式更加直观更加便捷,你还可以为这个 PHP CS Fixer 外部工具配置一个快捷键,这样就更加方便了。
下篇教程,学院君将给大家演示如何在 PhpStorm 中进行代码测试作为 PhpStorm 系列教程的收尾。
PHPStorm
PHP
开发工具
编码风格
PSR-4
命名空间
php-cs-fixer
代码嗅探
代码修正
PSR-2
全栈工程师
点赞
取消点赞
收藏
取消收藏
赞赏
分享到以下平台:
<< 上一篇:
玩转 PhpStorm 系列(十):基于 Xdebug 进行代码调试(下)—— PHP Web 应用
>> 下一篇:
玩转 PhpStorm 系列(十二):基于 PHPUnit 进行单元测试
无评论
登录后即可添加评论
升级为学院君订阅用户(新年优惠🎁)
内容导航
PSR-4
PSR-2
代码嗅探工具
在 PhpStorm 中配置 php-cs-fixer
通过 PHP CS Fixer 修正代码风格
相关推荐
目录索引
玩转 PhpStorm 系列教程
玩转 PhpStorm 系列(四):快捷键预览、切换和自定义
玩转 PhpStorm 系列教程
玩转 PhpStorm 系列(五):灵活使用代码模板功能提高编码效率
玩转 PhpStorm 系列教程
玩转 PhpStorm 系列(七):一些提高工作效率的小技巧
玩转 PhpStorm 系列教程
玩转 PhpStorm 系列(八):基于 IdeaVim 插件模拟 Vim 编辑器进行编码
玩转 PhpStorm 系列教程
回到顶部
2022 基于 Laravel 6 构建
关于学院
订阅服务
友情链接
站点地图
本站 CDN 加速服务由又拍云赞助