当前位置: 首页 > 软件库 > 开发工具 > PHP开发工具 >

phan

PHP 静态分析器
授权协议 MIT
开发语言 PHP
所属分类 开发工具、 PHP开发工具
软件类型 开源软件
地区 不详
投 递 者 尹冠宇
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

phan 是 PHP 的静态分析器。它需要加载 PHP-AST 扩展的 PHP7 。当然,你可以用于分析任何版本的PHP写的代码。不过,phan 不适合生产使用。

特性:

  • 检查所有方法,函数,类,特性,接口,常量,属性和变量是否已定义并且可访问。
  • 检查方法/功能/关闭调用中的类型安全性和关联性问题。
  • 检查PHP7 / PHP5向后兼容性。
  • 检查是否有没有在早期PHP 7.x的次要版本支持的功能(例如objectvoiditerable?T[$x] = ...;,负串偏移,多个异常捕获等)
  • 检查阵列访问是否合理。
  • 检查二进制操作的类型安全性。
  • 检查方法,函数和闭包上的有效返回值并键入安全返回值。
  • 检查数组,闭包,常量,属性,变量,一元运算符和二进制运算符是否无误。
  • ...

  • 使用composer安装 composer global require phan/phan 如果报ast错 安装php-ast扩展: pecl install ast 如果不能安装扩展,需要把pecl的路径加入到php配置里 查看pecl安装位置 pear config-get php_dir 把路径加入都php.ini都include_path里面 查看pear版本号 pear version

  • 由于在遇到的一个网站需要cookie才能访问成功,所以研究了一下如何给phantomjs设置cookie。既然能设置cookie,那么其余的头信息应该也能设置,下面就给大家说明如何实现。 下面是我们要附带给phantomjs浏览器的headers信息。 headers = {     'accept': "text/html,application/xhtml+xml,application/xm

  • PhantomJS其他语言调用 我本身是使用Java语言的,所以会考虑phantomjs如何与java交互。目前考虑方案有如下两种: 1. Java Process 抓取逻辑还是用Javascript,封装成JS脚本,用Java Process去调用和管理每个Phantomjs的进程,但是多开进程,估计对机器性能要求比较高。而且Java只能通过phantomjs的标准输出,来判断脚本执行情况。 2

  • selenium安装 pip install selenium 一、phantomjs安装 1、Mac环境 phantomjs下载:http://phantomjs.org/download.html 淘宝镜像:https://npm.taobao.org/mirrors/phantomjs 将 phantomjs bin 文件路径加入环境变量: vim ~/.bash_profile 内容

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

  • 问题内容: 熟悉Java世界的我一直在寻找一种静态分析工具,该工具也足够智能,可以解决它发现的问题。我使用CodePro工具运行,但是我还是Java社区的新手,不知道供应商。 根据上述标准,您可以推荐哪种工具? 问题答案: FindBugs,PMD和Checkstyle都是绝佳的选择,尤其是将它们集成到构建过程中时。 在上一家公司,我们还使用Fortify检查潜在的安全问题。我们很幸运获得了企业许

  • 本文向大家介绍thinkphp的静态缓存用法分析,包括了thinkphp的静态缓存用法分析的使用技巧和注意事项,需要的朋友参考一下 本文较为详细的分析了thinkphp的静态缓存用法。分享给大家供大家参考。具体分析如下: thinkphp里面内置了一个静态缓存功能,说静态缓存可能对我这种菜鸟而言不太好理解。其实静态缓存就是将THINKphp的某一个操作显示出来的页面生成一个HTML文件保存在设置的

  • 收集静态分析结果时,我在Jenkins从属节点上的作业失败。 相同的作业在Jenkins主节点上运行良好。我尝试使用ssh凭据或通过“执行命令”连接Jenkins,结果相同。 主服务器和从服务器使用相同的Java版本:OpenJDK Zulu 8.20.0.5-linux64。 我试图清理Maven repo、. jenkins/缓存和slave.jar-没有帮助。slave.jar是正确的文件,

  • iNalyzer允许我们查看类信息,执行运行时分析和其他一些事情。基本上它把解密应用、导出类信息这些事情自动化了,并且更好的展示了出来。我们也可以像Cycript那样挂钩运行的进程。iNalyzer由AppSec Labs开发和维护,它的官方地址在这。iNalyzer同时也已经开源了,gitub地址在这。 在用iNalyzer之前,有些依赖的软件需要先安装。请确保Graphviz 和Doxygen

  • 本文向大家介绍Java动态代理静态代理实例分析,包括了Java动态代理静态代理实例分析的使用技巧和注意事项,需要的朋友参考一下 代理模式:为其他对象提供一种代理以控制某个对象的访问。用在:在某些情况下,一个客户不想或者不能直接访问另一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用,代理对象还可以完成它附加的操作。 例子:就像房东、租客、中介的关系。中介(代理对象)为房东(真实对象)出租

  • 本文向大家介绍php延迟静态绑定实例分析,包括了php延迟静态绑定实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php延迟静态绑定的方法。分享给大家供大家参考。具体分析如下: php延迟静态绑定:指类的self,不是以定义时为准,而是以计算时的运行结果为准。先看一个实例   说明: (1)子类实例化对象 $stu 调用say方法时,是在父类Human内运行的,所以,say()里的

  • 我想知道是否有一个工具,它将我的代码库和一个jar文件作为输入,它将在代码库中搜索这个jar文件正在使用的任何地方,并给我输出。不应使用Eclispe IDE。(变得微不足道)。我已经搜索了一些静态代码分析工具,如PMD、Checkstyle、findbugs。但他们都没有我需要的选择。你能给我推荐一个能完成上述任务的工具吗?