为什么PHP CodeSniffer Freezing?

时间:2013-11-26 14:22:55

标签: php-5.3 php4 codesniffer

我是一名初级程序员,在那里工作。我们的网站是使用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冻结?

非常感谢所有帮助。

1 个答案:

答案 0 :(得分:2)

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