图文详解PHPStorm实现自动执行代码格式化

简介在我们日常开发中,一定少不了PHPCSFixer来帮我们统一代码风格,但是PHPCSFixer不像ESLint一样,可以在PHPStorm中在保存时自动执行。PHPStorm并没有为我们提供可执行PHPCSFixer的选项,「重新格式化代码」大部分时都不能满足我们的需求。为此我们需要在PHPStorm中添加一个「FileWatcher」来自动执行代码格式化。1、首先全局安装PHPCSFixerco

  

在我们日常开发中,一定少不了 PHP CS Fixer 来帮我们统一代码风格,但是PHP CS Fixer 不像 ESLint 一样,可以在 PHPStorm 中在保存时自动执行。

图文详解PHPStorm实现自动执行代码格式化

PHPStorm 并没有为我们提供可执行 PHP CS Fixer 的选项,「重新格式化代码」大部分时都不能满足我们的需求。

为此我们需要在 PHPStorm 中添加一个 「File Watcher」来自动执行代码格式化

1、首先全局安装 PHP CS Fixer

composerglobalrequirefriendsofphp/php-cs-fixer

2、执行

php-cs-fixer

图文详解PHPStorm实现自动执行代码格式化

代表安装成功了,如果提示命令未找到,那么你需要将全局 composer vendor 目录添加到全局变量,我用的是 zsh,这里改成你自己的。

echo'exportPATH="$HOME/.composer/vendor/bin:$PATH"'>>~/.zshrc

3、打开 PHPStorm,添加自定义文件

图文详解PHPStorm实现自动执行代码格式化

程序文件地址,命令行输入,并填入

whichphp-cs-fixer

图文详解PHPStorm实现自动执行代码格式化

参数栏:

fix$FileDir$/$FileName$

到这就搞定了,现在每当我们保存时就会自动执行 php-cs-fixer,现在还有一个问题,是可能每个项目有不同的.php-cs.dist格式化配置文件,以上的配置是使用了全局 php-cs-fixer 配置文件,如果要使用单独的配置文件,需要修改配置如下:

fix--config=$ProjectFileDir$/.php-cs.dist$FileDir$/$FileName$

.php-cs.dist通常放在项目根目录。

最后附上.php-cs.dist配置文件

<?php$header=<<<'EOF'EOF;$finder=PhpCsFixerFinder::create()->exclude('tests/Fixtures')//排除文件->in(__DIR__);returnPhpCsFixerConfig::create()->setRiskyAllowed(true)->setRules(['@PSR2'=>true,'@Symfony:risky'=>true,'array_syntax'=>['syntax'=>'short'],'combine_consecutive_unsets'=>true,//多个unset,合并成一个//oneshouldusePHPUnitmethodstosetupexpectedexceptioninsteadofannotations'general_phpdoc_annotation_remove'=>['expectedException','expectedExceptionMessage','expectedExceptionMessageRegExp'],//phpdocs中应该省略已经配置的注释//'header_comment'=>array('header'=>$header),//添加,替换或者删除header注释。'heredoc_to_nowdoc'=>true,//删除配置中多余的空行和/或者空行。'no_extra_consecutive_blank_lines'=>['break','continue','extra','return','throw','use','parenthesis_brace_block','square_brace_block','curly_brace_block'],'no_unreachable_default_argument_value'=>false,//在函数参数中,不能有默认值在非缺省值之前的参数。有风险'no_useless_else'=>true,//删除无用的eles'no_useless_return'=>true,//删除函数末尾无用的return'no_empty_phpdoc'=>true,//删除空注释'no_empty_statement'=>true,//删除多余的分号'no_leading_namespace_whitespace'=>true,//删除namespace声明行包含前导空格'no_spaces_inside_parenthesis'=>true,//删除括号后内两端的空格'no_trailing_whitespace'=>true,//删除非空白行末尾的空白'no_unused_imports'=>true,//删除未使用的use语句'no_whitespace_before_comma_in_array'=>true,//删除数组声明中,每个逗号前的空格'no_whitespace_in_blank_line'=>true,//删除空白行末尾的空白'ordered_class_elements'=>false,//classelements排序'ordered_imports'=>false,//use排序'phpdoc_add_missing_param_annotation'=>true,//添加缺少的Phpdoc@param参数'phpdoc_trim'=>true,//'phpdoc_trim_consecutive_blank_line_separation'=>true,//删除在摘要之后和PHPDoc中的描述之后,多余的空行。'phpdoc_order'=>true,'psr4'=>true,//'strict_comparison'=>true,//严格比较,会修改代码有风险//'strict_param'=>true,'ternary_operator_spaces'=>true,//标准化三元运算的格式'ternary_to_null_coalescing'=>true,//尽可能使用null合并运算符??。需要PHP>=7.0。'whitespace_after_comma_in_array'=>true,//在数组声明中,每个逗号后必须有一个空格'trim_array_spaces'=>true,//删除数组首或尾随单行空格'align_multiline_comment'=>[//每行多行DocComments必须有一个星号(PSR-5),并且必须与第一行对齐。'comment_type'=>'phpdocs_only'],'array_indentation'=>true,//数组的每个元素必须缩进一次])->setFinder($finder);

下载链接:网站源码/小程序源码/网站模板下载

版权声明

   站内部分内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供网络资源分享服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请 联系我们 一经核实,立即删除。并对发布账号进行永久封禁处理。在为用户提供最好的产品同时,保证优秀的服务质量。


本站仅提供信息存储空间,不拥有所有权,不承担相关法律责任。

给TA打赏
共{{data.count}}人
人已打赏
网站技巧

【苹果cmsv10】萌芽采集插件安装卸载教程

2024-9-27 11:02:50

网站技巧

WordPress在删除文章后如何清理图片附件呢?

2025-2-13 21:37:48

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索