有没有一种方法可以测试php代码是否是php<;5.3.2兼容


Is there a way to test if php code is php < 5.3.2 compatible

所以我正在运行安装了php5.6.3的XAMPP。然而,我正在为一个使用php5.2在服务器上运行的网站写一些东西。

是否有类似PHPUnit或PHPCodesniffer(或在线工具)的东西可以告诉我我的部分代码是否无法在特定版本的php上工作(如php<5.3.2)?

感谢

CodeSniffer将执行以下操作:

在下载最新版本http://github.com/wimg/PHP53Compat_CodeSniffer/downloads–确保将PHP53Compat_CodeSniffer目录重命名为PHP53Compatibilit y如果你有git,请使用:

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

Copy the PHP53Compatibility directory to {your pear path}/PHP/CodeSniffer/Standards

如何运行

像这样启动PHPCodeSniffer:

phpcs --standard=PHP53Compatibility <path-to-your-PHP-source-directory>

样本输出

FILE: C:'temp'bla.php
--------------------------------------------------------------------------------

FOUND 15 ERROR(S) AND 2 WARNING(S) AFFECTING 12 LINE(S)
--------------------------------------------------------------------------------

  4 | ERROR   | Function name, class name, namespace name or constant name can
    |         | not be reserved keyword 'goto' (since version 5.3)
  6 | ERROR   | Extension 'dbase' is not available in PHP 5.3 anymore
 12 | ERROR   | Function name, class name, namespace name or constant name can
    |         | not be reserved keyword 'const' (since version all)
 12 | ERROR   | Function name, class name, namespace name or constant name can
    |         | not be reserved keyword 'const' (since version all)

等等。。。

SRC:http://techblog.wimgodden.be/2010/06/24/automated-php-5-3-compatibility-testing-for-your-old-code/

好的。因此,在研究了上述所有建议后,我决定由Wim Godden提出PHPCompatibility。https://github.com/wimg/PHPCompatibility

我选择这个而不是PHP53Compat_CodeSniffer的两个原因是:

  1. 它专门为我想要的东西提供了一个新功能。摘自Wim的博客:

您还可以通过指定5.2这样的版本来测试代码的向后兼容性,这样可以检查您是否使用了旧版本不知道的函数或关键字。如果你在PHP 5.5上编码,这很好,但你的系统工程师告诉你项目进行到一半时,项目必须部署在5.2上。

这正是我的情况。和

  1. 它使用composer,使用起来比PHP53Compat_CodeSniffer简单得多