当前位置: 代码迷 >> PHP >> 在vim中调试php, 装配php code_sniffer,php-md. phpqa.vim
  详细解决方案

在vim中调试php, 装配php code_sniffer,php-md. phpqa.vim

热度:397   发布时间:2016-04-28 21:42:24.0
在vim中调试php, 安装php code_sniffer,php-md. phpqa.vim

1:安装php code sniffer 和 php md

php code sniffer

a: centos系的 

#yum install php-pear

#yum install ImageMagick-devel

#pear install PHP_CodeSniffer

#pear channel-discover pear.phpmd.org

#pear channel-discover pear.pdepend.org

#pear install --alldeps phpmd/PHP_PMD 

修改php.ini文件,加入extension=imagick.so


debian系的 

#apt-get install php-pear

#apt-get install php5-imagick imagemagick

后面和上面centos的一样,

只是不需要修改php.ini 加入imagick 扩展.


2:vim 里面

:!php -l % 这个是检查当前php文件语法参数

:phpcs 这个就是code sniffer了

:phpmd  这个是mess detector , 需要一个XML规则文件如果没有设置

:phpcc  这个显示code coverage. 也需要一个XML规则文件如果没有设置


3:安装phpqa.vim 

https://github.com/rainysia/vimrc/commits/master

去clone下来,放到$~.vim里面, 注意是user下面的.vim 

在.vimrc里面加上

let g:phpqa_codesniffer_args = "--standard=Zend"let g:phpqa_codesniffer_cmd  = '/usr/bin/phpcs' let g:phpqa_codesniffer_autorun = 1        "  default =1 on savelet g:phpqa_messdetector_ruleset = ''let g:phpqa_messdetector_cmd = '/usr/bin/phpmd'let g:phpqa_messdetector_autorun = 0
其中cmd 这两个是上面第一步安装后 type出来的路径, 

#type phpcs

/usr/bin/phpcs

autorun = 1是自动开启 ,当你保存的时候就会自动运行提示了

<?xml version="1.0"?><ruleset name="Sebastian"         xmlns="http://pmd.sf.net/ruleset/1.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">  <description>Sebastian Bergmann's ruleset</description>  <rule ref="rulesets/codesize.xml/CyclomaticComplexity" />  <rule ref="rulesets/codesize.xml/NPathComplexity" />  <rule ref="rulesets/codesize.xml/ExcessiveClassComplexity" />  <rule ref="rulesets/codesize.xml/ExcessiveClassLength" />  <rule ref="rulesets/codesize.xml/ExcessiveMethodLength" />  <rule ref="rulesets/codesize.xml/ExcessiveParameterList" />  <rule ref="rulesets/design.xml/EvalExpression" />  <rule ref="rulesets/design.xml/ExitExpression" />  <rule ref="rulesets/design.xml/GotoStatement" />  <rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass" />  <rule ref="rulesets/unusedcode.xml/UnusedFormalParameter" />  <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable" />  <rule ref="rulesets/unusedcode.xml/UnusedPrivateField" />  <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod" /></ruleset>

现在做下测试,打开vim 输入<?php ?>  然后:w保存,提示错误,说php不能关闭..看来语法要求很严格. 去掉?> 然后保存就没错误提示了.

<?php?>



具体的可以在shell里面 -h 查看使用

参考网址

http://phpmd.org/download/index.html 安装phpmd

http://pear.php.net/package/PHP_CodeSniffer/redirected php code sniffer

http://blog.csdn.net/xinhaozheng/article/details/3324796 php code sniffer的使用

http://developer.51cto.com/art/201105/261292.htm    php mess detor的使用

http://coreymaynard.com/blog/finding-what-stinks-and-cleaning-up-the-mess/ 相关xml声明

http://joncairns.com/2012/05/using-vim-as-a-php-ide/#comment-133 phpqa的文章

https://github.com/joonty/vim-phpqa     还是phpqa的