php7推出了语法树,于是静态语法分析更方便了。(可以直接下载我配置好的,传送门百度网盘

1、先安装php7,到http://windows.php.net/下载php7带openssl的。

2、修改php.ini,

extension=php_openssl.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
extension=php_pdo_sqlite.dll

前面的分号去掉,这一步是为了安装composer。

3、安装composer,我安装失败,直接下载composer.phar

新建一个批处理composer.bat

@echo off
"%~dp0php.exe" "%~dp0composer.phar" %*

修改composer源为中国镜像,

composer config -g repo.packagist composer http://packagist.phpcomposer.com

4、安装php_ast模块,phan需要,把dll放到ext目录,

extension增加一行

extension=php_ast.dll

5、安装phan

打开命令行切换到php7的目录,运行

composer require --dev "etsy/phan:dev-master"

phan的详细使用可参考

https://github.com/etsy/phan

6、分析项目

新建一个批处理,比如,先分析F:\work\src下的php代码,再用sed删除没有用的提示。

@echo off
set src=F:\work\src
set phIn=%src%\phan_in.txt
set phOut=%src%\phan_out.txt
find %src% -type f -name "*.php" > %phIn%
phan -f %phIn% -o %phOut%
sed -i "/\Phalcon/d" %phOut%
sed -i "/redis/d" %phOut%
sed -i "/memcached/d" %phOut%
sed -i "/vendor/d" %phOut%
echo "语法检查已完成,请查看%phOut%"
@pause

find和sed在windows下没有,不过有native的port,不需要cygwin和mingw

下载http://sourceforge.net/projects/unxutils/files/latest/download

http://unxutils.sourceforge.net/UnxUpdates.zip

解压后,用UnxUpdates覆盖UnxUtils\usr\local\wbin,取出sed和find即可。

7、可以为phan新建批处理和phan目录平级,phan.bat

@echo off
"%~dp0php.exe" "%~dp0phan\phan" %*

把php.exe所在目录放入环境变量PATH里,这样可以配置一些ide,调用phan.bat检查当前代码。

phan—php语法静态检查在windows下的配置的更多相关文章

  1. (转)windows 下安装配置 Nginx 详解

    windows 下安装配置 Nginx 详解 本文转自https://blog.csdn.net/kingscoming/article/details/79042874 nginx功能之一可以启动一 ...

  2. 在windows下安装配置Ulipad

    在windows下安装配置Ulipad 今天推荐一款轻便的文本编辑器Ulipad,用来写一些小的Python脚本非常方便. Ulipad下载地址: https://github.com/limodou ...

  3. Windows下gvim配置

    Windows下gvim配置原作地:http://hi.baidu.com/leemoncc/blog/item/a6be15cf40d7ab31b600c806.html 0.准备软件及插件. (a ...

  4. Windows下MySQL配置及安全加固总结

    Windows下MySQL配置及安全加固总结 在网管的实际使用过程中,MySQL数据库在安装后的配置及安全加固内容,在客户中逐渐要求越来越高.从反馈的问题看,一般都是由第三方软件公司的软件扫描整个系统 ...

  5. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

  6. dpm-release3.1在windows下的配置

    dpm-release3.1在windows下的配置 dpm是做目标检测objecjt detection的经典方法.dpm系列代码默认是在linux和mac下运行测试过的,windows下默认是不能 ...

  7. Tomcat7.0.22在Windows下详细配置过程

    Tomcat7.0.22在Windows下详细配置过程 一.JDK1.7安装 1.下载jdk,下载地址:http://www.oracle.com/technetwork/java/javase/do ...

  8. Windows下安装配置MongoDB

    Windows下安装配置MongoDB 一,介绍 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB ...

  9. Oracle 11g即时客户端在windows下的配置

    Oracle 11g即时客户端在windows下的配置 by:授客QQ:1033553122 instantclient-basic-nt-11.2.0.3.0.zip客户端压缩包为例 步骤 1. 假 ...

随机推荐

  1. 利用kettle中的JS来完成ETL数据校验

    最近参与了一个信托行业的BI项目,由于信托业务系统设计的问题,很多都是用户手工录入的数据,也有一些是需要分析的但是用户没有录入的数据,针对这样的数据质量,我们就要在ETL抽取的过程中来对数据流进行校验 ...

  2. js实现可拉伸移动的div

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd&qu ...

  3. python获取系统时间代码解析

    import time     print time.time()    输出的结果是:    1279578704.6725271 但是这样是一连串的数字不是我们想要的结果,我们可以利用time模块 ...

  4. asp与aspx有什么区别

    asp与aspx哪个好? 最佳答案 你如果想知道哪个好,我想很多人第一个想法就是aspx好. 这很好理解,就像楼上的朋友说的,aspx是asp的升级版. 但是aspx相对于asp的升级可以说是从根本上 ...

  5. T-SQL 之 视图

    视图实际上就是一个存储查询,重点是可以筛选.组合和匹配来自基本表(或者其他视图)的数据,从而创建在很多方面像另一个基表那样起作用的对象.可以创建一个简单的查询,仅仅从一个表中选择几列,而忽略其他列:或 ...

  6. 算法笔记_029:约瑟夫斯问题(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 引用自<算法设计与分析基础>第三版: 约瑟夫斯问题,是以弗拉瓦斯.约瑟夫斯(Flavius Josephus)的名字命名的.约瑟夫斯是一 ...

  7. android判断服务是否是运行状态

    /** * 判断服务是否处于运行状态. * @param servicename * @param context * @return */ public static boolean isServi ...

  8. Python List+Tuple+Dict+Set小结

    创建List:L = ['Adam', 'Lisa', 'Bart', 'Gechong', 'Kongming'] 显示List:L[0] 遍历List:print (L)和for循环 更新List ...

  9. 执行次数最多的sql语句

    执行次数最多的sql语句 * FROM ( creation_time N'语句编译时间' ,DB_NAME(st.dbid) AS dbname ,OBJECT_NAME(st.objectid) ...

  10. 从头认识多线程-1.9 迫使线程停止的方法-return法

    这一章节我们来讨论一下还有一种停止线程的方法-return 1.在主线程上面return,是把全部在执行的线程都停掉 package com.ray.deepintothread.ch01.topic ...