当前位置: 首页 > 面试题库 >

如何在php中执行静态代码分析?

笪健
2023-03-14
问题内容

是否有用于PHP源文件的静态分析工具?二进制本身可以检查语法错误,但是我正在寻找功能更多的东西,例如:

  • 未使用的变量分配
  • 未先初始化就分配给的数组
  • 以及可能的代码样式警告

问题答案:

从命令行以lint-mode运行php来验证语法而不执行:

php -l FILENAME

更高级别的静态分析器包括:

  • php-sat - Requires http://strategoxt.org/
  • PHP_Depend
  • PHP_CodeSniffer
  • PHP Mess Detector
  • PHPStan
  • PHP-CS-Fixer
  • phan

低层分析器包括:

  • PHP_Parser
  • token_get_all(原始函数)

运行时分析器由于PHP的动态特性而在某些方面更有用,包括:

  • Xdebug具有代码覆盖范围和功能跟踪。
  • 我的PHP Tracer Tool在Xdebug的函数跟踪上使用了静态/动态组合方法。

文档库phpdoc和doxygen执行一种代码分析。例如,可以将Doxygen配置为使用graphviz呈现漂亮的继承图。

另一个选择是xhprof,它类似于xdebug,但更轻巧,使其适合生产服务器。该工具包括基于PHP的界面。



 类似资料:
  • 代码静态分析可以在不运行代码的情况下,提前检测代码。 主要可以做两点 语法检测 编码规范检测 作为开发人员,在日常编码中,难免会范一些低级错误,比如少个括号,少个逗号,使用了未定义变量等等,我们往往会使用编辑器的 lint 插件来检测此类错误。 对于我们 OpenResty 开发中,日常开发的都是 Lua 代码,所以我们可以使用 luacheck 这款静态代码检测工具来帮助我们检查,比较好的一点是

  • 问题内容: 由于某些原因,我必须运行一个php脚本才能从Python获取图像。因为php脚本很大,而且不是我的,所以我需要几天的时间才能找到所使用的正确算法并将其转换为python。 我想知道是否有任何方法可以运行带有少量参数的php脚本,以返回python中的图像。 问题答案: 示例代码:

  • 问题内容: 我想直接在命令行执行单个php语句,而不必使用单独的php文件。 这怎么可能 ? 问题答案: 如果您要在命令行中使用PHP,建议您安装 phpsh,这是一个不错的PHP shell。这很有趣。 无论如何,php命令提供了 两个开关来从命令行执行代码 : 您可以这样使用php的 -r开关 : 上面的PHP命令应该 输出 并 返回, 如您所见: 另一个有趣的开关是 php -a : 与 p

  • 问题内容: 我将页面内容保存在数据库中,并希望执行字符串中的任何php代码。因此,如果我的字符串是: 我只想执行。使用eval()将尝试执行。 有什么办法吗? 问题答案: 不用说,您应该尽快找到另一个解决方案。同时,您可以像这样评估代码: 演示:http://codepad.org/ao2PPHN7 我不能足够强调:eval是危险的,应用程序代码不应位于数据库中。尝试使用模板解析器,例如Smart

  • 问题内容: 到目前为止,我已经看到了这些问题的答案2,)建议使用GCD的这样: 输出: 等一下 是一个变量,因此我可以轻松做到这一点: 输出: 所以,是没有用的,如果我们我可以改变的价值!转换成常量并非易事,因为它需要类型化。 那么我们应该放弃Swift吗?有没有一种安全的方法可以只执行一次代码? 问题答案: 由闭包初始化的静态属性是延迟运行的,最多只能运行一次,因此尽管被调用了两次,但它仅打印一

  • 我已经编写了以下代码,并为这个超类创建了对象。 当我检查输出时,如下所示: 我知道只有在初始化类的对象或进行任何静态引用时,才会执行静态块。但在这里,我并没有把这些都带到课堂上。那么为什么我会看到“sub”即sub类的静态块输出?