php-5.3 – 为什么PHP CodeSniffer Freezing?

我是一名初级程序员,在那里工作.我们的网站是使用
PHP 4编写的.我们正在从
PHP 4迁移到PHP 5.3.大约595个目录中大约有5000个PHP文件.所以,正如你可以想象的那样,这个项目的范围非常巨大.

我们使用Subversion进行版本控制.我有两个单独的结账.我有两个虚拟机作为单独的虚拟主机 – 一个堆栈模拟我们的实际网络服务器(CentOS 4,PHP4等),另一个是PHP 5.3堆栈(Ubuntu 12.04 LTS).

我花时间使用以下命令检查文件中的基本语法错误:

编辑:我从网站的根目录运行了以下递归搜索.

find ./ -type f -name \*.php -exec php -l {} \; < ~/php5_basic_syntax_assessment.txt
find ./ -type f -name \*.inc -exec php -l {} \; < ~/php5_basic_syntax_inc_assessment.txt

我意识到使用php -l检查基本语法并不会泄露已弃用的代码结构/函数,也不会提供警告(IE:使用preg_slice()而不是slice()).因此,我决定安装PHP CodeSniffer.

首先,我安装了PEAR:[我接受了所有默认参数]

cd ~/
mkdir pear
cd pear
wget http://pear.php.net/go-pear.phar
php go-pear.phar

接下来,我安装了git:

cd ~/
sudo apt-get update
sudo apt-get install git

接下来,我安装了PHP Code Sniffer

pear install PHP_CodeSniffer

最后,我为PHP Code Sniffer安装了以下PHP 5.3兼容性标准:

git clone git://github.com/wimg/PHP53Compat_CodeSniffer.git PHP53Compatibility

我做了以上所有操作,以便以自动方式评估5K PHP文件.遍历每个文件以确保它们手动遵循PHP 5.3编码标准将是非常繁琐和耗时的.

最后,这是我用来运行PHP Code Sniffer的命令:

phpcs --standard=/home/my_user_name/PHP53Compatibility -p --report-file=/home/my_user_name/php53_assessment.txt /path/to/web/root

为了确保特定标准不是问题,我还使用默认标准运行PHP Code Sniffer:

phpcs -p --report-file=/home/my_user_name/php53_assessment.txt /path/to/web/root

无论哪种方式,报告都冻结在同一个地方.我已经醒了超过24小时.我在使用CTRL C停止第一次运行之前等了18个小时.第二次运行仍然运行了大约一个半小时.

那么,是什么原因导致我的PHP Code Sniffer冻结?

非常感谢所有帮助.

最佳答案 有点晚了,但我遇到了同样的问题.将文件限制为只有PHP文件才能解决这个问题:phpcs -p – ./**/*.php

点赞