您的位置:首页 > 编程语言 > PHP开发

sublime phpcs

2015-06-12 13:30 651 查看
http://benmatselby.github.io/sublime-phpcs/#configuration

andy@AndyMacBookPro:/usr/local/src/sublime-phpcs$ pear install php_codesniffer
downloading PHP_CodeSniffer-2.3.2.tgz ...
Starting to download PHP_CodeSniffer-2.3.2.tgz (467,423 bytes)
..............................done: 467,423 bytes
install ok: channel://pear.php.net/PHP_CodeSniffer-2.3.2


安装phpcs一直提示:

phpcs: command not found

找了半天,我自己觉得是,我本地有两个php:

Last login: Fri Jun 12 14:16:48 on ttys003
andy@AndyMacBookPro:~$ which php
/usr/bin/php
andy@AndyMacBookPro:~$ /usr/bin/php -v
PHP 5.4.38 (cli) (built: Mar 19 2015 14:49:15)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
andy@AndyMacBookPro:~$ /usr/local/bin/php -v
PHP 5.4.30 (cli) (built: Jul  1 2014 13:03:42)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
andy@AndyMacBookPro:~$


所以我需要把bin_dir目录设置为/usr/local/bin目录下:

andy@AndyMacBookPro:/usr/local/webdata/union$ sudo pear uninstall php_codesniffer
Password:
uninstall ok: channel://pear.php.net/PHP_CodeSniffer-2.3.2
andy@AndyMacBookPro:/usr/local/webdata/union$ pear config-set bin_dir /usr/local/bin/
config-set succeeded
andy@AndyMacBookPro:/usr/local/webdata/union$ pear install php_codesniffer
downloading PHP_CodeSniffer-2.3.2.tgz ...
Starting to download PHP_CodeSniffer-2.3.2.tgz (467,423 bytes)
....................................................................done: 467,423 bytes
install ok: channel://pear.php.net/PHP_CodeSniffer-2.3.2
andy@AndyMacBookPro:/usr/local/webdata/union$ which phpcs
/usr/local/bin/phpcs


终于安装phpcs成功了:

andy@AndyMacBookPro:/usr/local/webdata/union$ phpcs -i
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz and Zend
andy@AndyMacBookPro:/usr/local/webdata/union$


但是运行phpcs还是报错:

andy@AndyMacBookPro:/usr/local/webdata/union$ phpcs
PHP Warning:  include_once(PHP/CodeSniffer/CLI.php): failed to open stream: No such file or directory in /usr/local/bin/phpcs on line 21
PHP Stack trace:
PHP   1. {main}() /usr/local/bin/phpcs:0
PHP Warning:  include_once(): Failed opening 'PHP/CodeSniffer/CLI.php' for inclusion (include_path='.:') in /usr/local/bin/phpcs on line 21
PHP Stack trace:
PHP   1. {main}() /usr/local/bin/phpcs:0
PHP Fatal error:  Class 'PHP_CodeSniffer_CLI' not found in /usr/local/bin/phpcs on line 24
PHP Stack trace:
PHP   1. {main}() /usr/local/bin/phpcs:0
andy@AndyMacBookPro:/usr/local/webdata/union$


我直接去查看这个phpcs,vi /usr/local/bin/phpcs,将第一行:

#!/usr/bin/php

修改为:

#!/usr/local/bin/php

之后运行phpcs成功:

andy@AndyMacBookPro:/usr/local/webdata/union$ phpcs -i
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz and Zend
andy@AndyMacBookPro:/usr/local/webdata/union$


andy@AndyMacBookPro:/usr/local/webdata/union$ phpcs index.php

FILE: /usr/local/webdata/union_branches/index.php
----------------------------------------------------------------------
FOUND 6 ERRORS AND 1 WARNING AFFECTING 2 LINES
----------------------------------------------------------------------
8 | WARNING | [ ] PHP version not specified
8 | ERROR   | [ ] Missing @category tag in file comment
8 | ERROR   | [ ] Missing @package tag in file comment
8 | ERROR   | [ ] Missing @author tag in file comment
8 | ERROR   | [ ] Missing @license tag in file comment
8 | ERROR   | [ ] Missing @link tag in file comment
12 | ERROR   | [x] "require" is a statement not a function; no
|         |     parentheses are required
----------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------

Time: 18ms; Memory: 3.5Mb

andy@AndyMacBookPro:/usr/local/webdata/union$


基于上面的努力,我们已经在本机安装phpcs成功,下一步是配置到sublime中,首先我们通过:

preference —> Package Setting —> PHP Code Sniffer —> Settings - Default 中的内容copy到Settings - User中,然后修改其中的:

"phpcs_executable_path": "/usr/bin/phpcs",


配置为我们本地which phpcs的目录,这样我们保存之后,就可以在发现在我们保存php文件之后,就会有出错提示悬浮在编辑器顶部了~~~。

另外我们还可以安装php-cs-fixer和phpcbf。

我们安装phpmd(也就是php mess detector,可参考:http://phpmd.org/):

andy@AndyMacBookPro:/usr/local/webdata/union$ pear install php-cs-fixer
parsePackageName(): only one version/state delimiter "-" is allowed in "php-cs-fixer"
invalid package name/package file "php-cs-fixer"
install failed
andy@AndyMacBookPro:/usr/local/webdata/union$ pear channel-discover pear.phpmd.org
could not create lock file: fopen(/usr/local/Cellar/php54/5.4.30/lib/php/.lock): failed to open stream: Permission denied
andy@AndyMacBookPro:/usr/local/webdata/union$ sudo pear channel-discover pear.phpmd.org
Password:
Adding Channel "pear.phpmd.org" succeeded
Discovery of channel "pear.phpmd.org" succeeded
andy@AndyMacBookPro:/usr/local/webdata/union$ sudo pear channel-discover pear.pdepend.org
Adding Channel "pear.pdepend.org" succeeded
Discovery of channel "pear.pdepend.org" succeeded
andy@AndyMacBookPro:/usr/local/webdata/union$ sudo pear install pdepend/PHP_Depend
Did not download optional dependencies: pecl/imagick, use --alldeps to download automatically
pdepend/PHP_Depend can optionally use package "pecl/imagick" (version >= 2.2.0b2)
downloading PHP_Depend-1.1.4.tgz ...
Starting to download PHP_Depend-1.1.4.tgz (179,584 bytes)
......................................done: 179,584 bytes
install ok: channel://pear.pdepend.org/PHP_Depend-1.1.4
andy@AndyMacBookPro:/usr/local/webdata/union$ pear install --alldeps phpmd/PHP_PMD
downloading PHP_PMD-1.5.0.tgz ...
Starting to download PHP_PMD-1.5.0.tgz (49,534 bytes)
.............done: 49,534 bytes
ERROR: failed to create /usr/bin/.tmpphpmd: fopen(/usr/bin/.tmpphpmd): failed to open stream: Permission denied
andy@AndyMacBookPro:/usr/local/webdata/union$ sudo pear install --alldeps phpmd/PHP_PMD
downloading PHP_PMD-1.5.0.tgz ...
Starting to download PHP_PMD-1.5.0.tgz (49,534 bytes)
.............done: 49,534 bytes
install ok: channel://pear.phpmd.org/PHP_PMD-1.5.0
andy@AndyMacBookPro:/usr/local/webdata/union$ which phpmd
/usr/bin/phpmd


之后我们就可以配置phpmd到配置文件中:

"phpmd_executable_path": "/usr/bin/phpmd",


参考:

http://benmatselby.github.io/sublime-phpcs/#configuration

http://stackoverflow.com/questions/24840924/how-do-i-use-phpcs-in-sublime-to-learn-coding-standards

http://phpmd.org/

http://cs.sensiolabs.org/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  phpcs