ce安全网绿色资源分享

教程资讯|常用软件|安卓下载|下载排行|最近更新

软件
软件
文章
当前位置:首页网络安全安全工具 → Phan – PHP静态分析器(暂无资源)
Phan – PHP静态分析器(暂无资源)

Phan – PHP静态分析器(暂无资源)

评分:0.0
下载地址
  • 软件介绍
  • 软件截图
  • 同类推荐
  • 相关文章

软件Tags: [db:tag]

Phan是一个PHP的静态分析器,它倾向于最小化误报。它试图证明错误而不是正确。

Phan - PHP静态分析器

它会查找常见问题,并在类型信息可用或可以推断时验证各种操作的类型兼容性。Phan对流量控制有很好的(但不是全面的)理解,并且不会试图追踪价值。

项目地址:Phan

特征:

  • 检查所有方法,函数,类,特征,接口,常量,属性和变量是否定义和可访问。
  • 检查方法/函数/关闭调用中的类型安全性和参数问题。
  • 检查PHP7 / PHP5向后兼容性。
  • 检查旧版PHP 7.x次要版本中不支持的功能(例如object,void,iterable,?T,[$ x] = ...等)
  • 检查数组访问是否完整。
  • 检查二进制操作的类型安全性。
  • 检查方法,函数和闭包的有效和类型安全的返回值。
  • 检查数组,闭包,常量,属性,变量,一元运算符和二元运算符的否操作。
  • 检查未使用/死/无法访问的代码。(通过 - 代码检测)
  • 检查未使用的使用语句。
  • 检查重新定义的类,函数和方法。
  • 用类继承来检查是否完整(例如检查方法签名兼容性)。Phan还检查最终的类/方法被覆盖,抽象方法被实现,并且实现的接口实际上是一个接口(等等)。
  • 支持命名空间,特征和可变参数。
  • 支持联盟类型。
  • 支持泛型数组,如int [],UserObject [],数组<int,UserObject>等。
  • 从Phan> = 0.12.0开始,支持数组形状,如数组{key:string,otherKey:?stdClass}等等(内部和PHPDoc标签中)。
  • 即将发布的0.12.3版本将支持通过array {requiredKey:string,optionalKey?:string}指示数组形状的字段是可选的(对于@param有用)
  • 支持phpdoc类型注释。
  • 支持继承phpdoc类型注释。
  • 支持检查phpdoc类型注释是实际类型签名的缩小形式(例如子类/子类型)
  • 支持在元素/循环中从assert()语句和条件推断类型。
  • 支持弃用类,方法和函数的@deprecated注解
  • 支持元素(如常量,函数,类,类常量,属性或方法)的@internal注释作为其定义的包的内部。
  • 支持用于抑制问题的@suppress <ISSUE_TYPE>注释。
  • 支持神奇的@property注释(部分)(@property <union_type> <variable_name>)
  • 支持magic @method注释(@method <union_type> <method_name>(<union_type> <param1_name>))
  • 支持class_alias注释(实验性,默认关闭)
  • 支持通过@ phan-closure-scope(示例)指示闭包将被绑定到的类,
  • 支持分析传递给array_map,array_filter和其他内部数组函数的闭包和返回类型。(从Phan 0.10.1 + / 0.8.9 +开始)
  • 提供广泛的配置以减弱分析,使其在大型草率代码库上非常有用
  • 可以在许多内核上运行。(需要pcntl)
  • 可以在后台运行(守护进程模式),然后快速响应请求来分析最新版本的文件。这也可以充当语​​言服务器协议中的一个linter。语言服务器实现的一部分基于felixfbecker / php-language-server。在后台运行时,Phan可以从各种编辑器中使用。
  • 输出以文本,checkstyle,json,pylint,csv或代码气味格式发送。
  • 可以在源代码上运行用户插件以检查特定于您的代码的内容。Phan包含了您可能希望为您的项目启用的各种插件。

用法:

 
  1. 用法:./phan [选项] [文件...]
  2.  -f,--file-list <filename>
  3.   包含要分析的PHP文件列表的文件
  4.  
  5.  -l, -  directory <directory>
  6.   应该针对类和类别进行解析的目录
  7.   方法信息。排除目录后
  8.   在--exclude-directory-list中定义,剩下的
  9.   文件将静态分析错误。
  10.  
  11.   因此,正在使用的第一方和第三方代码
  12.   你的应用程序应该包含在这个列表中。
  13.  
  14.   你可以包含多个` -  directory DIR`选项。
  15.  
  16.  --exclude-file <file>
  17.   不应被解析或分析(或读取)的文件
  18.   完全)。这对排除无望是有用的
  19.   不可分析的文件。
  20.  
  21.  -3,--exclude-directory-list <dir_list>
  22.   用逗号分隔的定义文件的目录列表
  23.   这将被排除在静态分析之外,但是谁的
  24.   应该包括类和方法信息。
  25.  
  26.   一般来说,你会想要包含目录
  27.   第三方代码(例如“vendor /”)。
  28.  
  29.  --include-analysis-file-list <file_list>
  30.   将包含在文件中的逗号分隔列表
  31.   静态分析。所有其他人将不会被分析。
  32.  
  33.   这主要用于独立执行
  34.   增量分析。
  35.  
  36.  -d,--project-root-directory </ path / to / project>
  37.   在提供的目录中搜索名为.phan的目录
  38.   并从该路径读取配置文件.phan / config.php。
  39.  
  40.  -r, - 仅文件列表
  41.   包含要分析的PHP文件列表的文件
  42.   排除传入的任何其他目录或文件
  43.   不太可能有用。
  44.  
  45.  -k,--config-file
  46.   加载配置文件的路径(而不是默认值)
  47.   .phan / config.php中)。
  48.  
  49.  -m <mode>,--output-mode
  50.   'text','json','csv','codeclimate','checkstyle'或'pylint'的输出模式
  51.  
  52.  -o,--output <filename>
  53.   输出文件名
  54.  
  55.  - 在里面
  56.    [--init级别= 3]
  57.    [--init-分析-DIR =路径/到/ SRC]
  58.    [--init-分析文件=路径/到/ file.php]
  59.    [--init-NO-作曲家]
  60.  
  61.   在当前目录中生成一个.phan / config.php
  62.   基于该项目的composer.json。
  63.   用于生成配置文件的逻辑目前非常简单。
  64.   一些第三方类(例如在供应商/中)
  65.   将需要手动添加到'directory_list'或排除,
  66.   并且最终可能会有大量问题被手动压制。
  67.   见https://github.com/phan/phan/wiki/Tutorial-for-Analyzing-a-Large-Sloppy-Code-Base
  68.  
  69.   [--init-level]会影响`.phan / config.php`中的生成设置
  70.     (例如null_casts_as_array)。
  71.     `--init-level`可以设置为1(最严格)至5(最不严格)
  72.   [--init-analyze-dir]可以用作目录旁边的相对路径
  73.     Phan推断composer.json的“自动加载”设置
  74.   [--init-analyze-file]可以用作文件旁边的相对路径
  75.     Phan推断composer.json的“bin”设置
  76.   [--init-no-composer]可以用来告诉Phan该项目
  77.     不是一个作曲家项目。
  78.     Phan不会检查composer.json或vendor /,
  79.     并且不会在生成的配置中包含这些路径。
  80.   [--init-overwrite]将允许'phan --init'覆盖.phan / config.php。
  81.  
  82.  - 颜色
  83.   为输出的问题添加颜色。在Unix中测试。
  84.   这建议只用于默认 - 输出模式('文本')
  85.  
  86.  -p,--progress-bar
  87.   显示进度条
  88.  
  89.  -q, - 快
  90.   快速模式 - 不会递归到所有函数调用中
  91.  
  92.  -b, - 后向兼容性检查
  93.   检查潜在的PHP 5  - > PHP 7 BC问题
  94.  
  95.  --target-php-version {7.0,7.1,7.2native}
  96.   代码库将被检查兼容性的PHP版本。
  97.   为了获得最佳结果,用于运行Phan的PHP二进制文件应该具有相同的PHP版本。
  98.   (Phan依赖Reflection来完成一些参数
  99.    并检查未定义的类/方法/函数)
  100.  
  101.  -i,--ignore-undeclared
  102.   忽略未声明的函数和类
  103.  
  104.  -y,--minimum-severity <level在{0,5,10}>中
  105.   要报告的最低严重性级别(低= 0,正常= 5,严重= 10)。
  106.   默认为0
  107.  
  108.  -c,--parent-constructor-required
  109.   逗号分隔的需要的类列表
  110.   parent :: __ construct()被调用
  111.  
  112.  -x,--dead-code-detection
  113.   发布类,方法,函数,常量和类的问题
  114.   属性可能从未被引用并且可以
  115.   可能会被删除。
  116.  
  117.  -j,--processes <int>
  118.   分析过程中运行的并行进程的数量
  119.   相。默认为1
  120.  
  121.  -z, - 签名兼容性
  122.   分析要覆盖的方法的签名以确保
  123.   与他们重写的内容的兼容性。
  124.  
  125.  - 禁用插件
  126.   不要运行任何插件。稍快。
  127.  
  128.  --plugin <pluginName | path / to / Plugin.php>
  129.   添加一个额外的插件来运行。这个标志可以重复。
  130.   (可以将插件的名称或相对/绝对路径传递给插件)
  131.  
  132.  --strict-PARAM检查
  133.   启用配置选项`strict_param_checking`。
  134.  
  135.  --strict属性检查
  136.   启用配置选项`strict_property_checking`。
  137.  
  138.  --strict回检查
  139.   启用config选项`strict_return_checking`。
  140.  
  141.  --strict-类型检查
  142.   相当于
  143.   ` - 严格参数检查 - 严格 - 属性检查 - 严格 - 返回检查`。
  144.  
  145.  --use-回退解析器
  146.   如果要分析的文件在语法上无效
  147.   (即“php --syntax-check path / to / file”会发出语法错误),
  148.   然后重试,使用不同的较慢容错解析器来解析它。
  149.   (然后phan会分析可能被解析的内容)。
  150.   此标志是实验性的,可能会导致意外的异常或错误。
  151.   该标志不影响排除的文件和目录。
  152.  
  153.  --allow-填充工具解析器
  154.   如果`php-ast`扩展名不可用或者是过时的版本,
  155.   然后使用较慢的解析器(基于tolerant-php-parser)。
  156.   请注意,https://github.com/Microsoft/tolerant-php-parser
  157.   有一些已知的错误可能导致错误的正解析错误。
  158.  
  159.  --force-填充工具解析器
  160.   使用较慢的解析器(基于tolerant-php-parser)而不是本机解析器,
  161.   即使原生解析器可用。
  162.   主要用于调试。
  163.  
  164.  -s,--daemonize-socket </path/to/file.sock>
  165.   用于Phan的Unix套接字以守护进程模式监听请求。
  166.  
  167.  --daemonize-tcp-port <default | 1024-65535>
  168.   用于Phan的TCP端口以守护进程模式监听JSON请求。
  169.   (例如'默认',这是4846端口的别名。)
  170.   `phan_client`可用于与Phan守护进程通信。
  171.  
  172.  -v,--version
  173.   打印phan的版本号
  174.  
  175.  -h, - 帮助
  176.   这帮助信息
  177.  
  178.  --extended-帮助
  179.   这帮助信息,加上不太常用的标志
  180.   (例如守护进程模式)
展开内容

软件截图

下载地址

  • PC版

相关文章

用户评论

验证码:

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

最新评论

已有人参与,点击查看更多精彩评论

本类推荐

关于CE安全网 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2019-2029 cesafe.com 【CE安全网】 版权所有 琼ICP备2021004244号-1| 琼ICP备2021004244号-1

声明: 本站为非赢利性网站 不接受任何赞助和广告 所有软件和文章来自互联网 如有异议 请与本站联系 技术支持:ce安全网