有没有办法测试PHP代码是否是php< 5.3.2兼容

时间:2015-02-24 14:19:43

标签: php unit-testing testing version

所以我正在运行安装了php5.6.3的XAMPP。但是,我正在为使用php 5.2在服务器上运行的网站写一些东西。

有没有类似PHPUnit或PHPCodesniffer(或在线工具)的东西会告诉我我的部分代码是否不适用于特定版本的php(例如php< 5.3.2)?

由于

2 个答案:

答案 0 :(得分:1)

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

如何投放

像这样启动PHP_CodeSniffer:

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/

答案 1 :(得分:1)

确定。因此,在研究了上述所有建议之后,我已经确定了Wim Godden的PHPC兼容性。 https://github.com/wimg/PHPCompatibility

我选择PHP53Compat_CodeSniffer的两个原因是:

  1. 它特别为我想要的东西提供了一个新功能。取自Wim的博客:
  2.   

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

    这完全是我的理由。和...

    1. 它使用composer,比PHP53Compat_CodeSniffer更易于使用。