zoukankan      html  css  js  c++  java
  • PsySH——PHP交互式控制台

    http://blog.jobbole.com/99110/

    PsySH

    PsySH是一个PHP的运行时开发平台,交互式调试器和Read-Eval-Print Loop (REPL)。

    说的简单点,就像你用firebug的console调试你的JavaScript代码一样。

    安装

    官网介绍了3种安装方式:

    • 直接下载
    • Composer安装
    • 直接cloneGitHub仓库的代码

    我比较建议选择Composer安装,因为这个项目还有其他的依赖项目,用Composer很好解决这个问题。

    以下教程以OS X和Windows 10为例,假定已经安装phpComposer并已经将它们设置为系统环境变量:

    OS X

    先用Composer下载PsySH,这里用的是全局安装:

    安装完毕后,PsySH已经安装到/Users/{用户名}/.composer/vendor/psy/psysh目录下

    此时,你可以直接运行:

    为了使用方便,建议将它加入到环境变量:

    Windows

    同样地,使用Composer安装,按win键+R键,输入cmd,打开windows控制台,然后:

    安装完成后,PsySH被安装到C:Users{用户名}AppDataRoamingComposervendorpsypsysh

    因为bin/psysh文件并不是windows的可执行文件,所以需要使用以下命令运行PsySH

    为了使用方便,在C:Users{用户名}AppDataRoamingComposervendorpsypsyshbin目录下新建一个名为psysh.bat的文件,其内容如下:

    此时,把C:Users{用户名}AppDataRoamingComposervendorpsypsyshbin加入到系统的环境变量PATH,以后可以直接在cmd下运行psysh了:

    特性

    上面说过,PsySH是一个交互式的PHP运行控制台,在这里,你可以写php代码运行,并且可以清楚看到每次的返回值:

    并且,它很智能地知道你的代码是否已经结束

    自动完成

    PsySH可以像控制台那样,按下两次键自动补全,帮你自动完成变量名,函数,类,方法,属性,甚至是文件:

    文档

    在运行时忘记参数怎么办?PsySH的文档功能可以让你即时查看文档。

    PsySH的文档存放在~/.local/share/psysh/。(windows系统存放在C:Users{用户名}AppDataRoamingPsySH

    文档下载地址:

    下载中文文档:

    OK,完成后重新打开PsySH

    而且还自带分页功能(和more命令一样)

    当然,自定义的对象也可以有相关功能:

    比如,test.php这个文件有如下内容:

    查看源代码

    轻松展现任何用户级的对象,类,接口,特质,常数,方法或属性的源代码:

    接着上一个例子:

    查看show的帮助,使用help show命令:

    反射列表

    list命令知道所有关于你的代码 – 和其他人的。轻松地列出并搜索所有的变量,常量,类,接口,特点,功能,方法和属性。

    更多用法,可以输入help list命令查看。

    获取最后的异常信息

    如果忘记catch异常,可以使用wtf命令(wtf是what the fuck的意思么?)查看异常的信息:

    历史记录

    可以像类Unix系统的history命令一样,在PsySH可以查看你运行过的PHP代码或命令。详情运行help history命令查看。

    退出

    使用exit命令退出你的PsySH

    help

    最好用的命令,help或者?,它能帮助你了解一切的命令

    28.png

    在内置web server中调试

    本来想用Laravel做示例,但debugging的内容经常过多要分页查看。
    而且说好的中文文章,好吧,那就用ThinkPHP为例:

    首先,安装一下ThinkPHP

    16.png

    然后,用Composer局部安装一下PsySH:

    17.png

    因为ThinkPHP的dump()函数和symfony/var-dumperdump()函数有重名冲突,所以需要把其中一个重命名。个人建议把TP的改掉。为啥?因为symfony的好用多了。。。

    19.png

    在入口文件index.php添加如下3句代码:

    20.png

    在项目根目录下,用PHP的内置web服务器启动:

    然后即可在浏览器访问你的应用: http://localhost:8080

    你将会看到以下画面,PsySH启动了

    21.png

    其他操作,和CLI操作差不多。例如:

    22.png

    23.png

    24.png

    当然,那句PsyShell::debug()不一定要放在入口文件,它可以放在你一切想要debug的地方
    例如,我放在默认的首页控制器:

    25.png

    重新运行php内置server并访问页面,然后输入命令:

    26.png

    打开PsySH后,输入get_defined_vars()试试?

    27.png

     3 赞  5 收藏  3 评论
     

      

    直接登录 
    最新评论
  • 相关阅读:
    【树状数组套权值线段树】bzoj1901 Zju2112 Dynamic Rankings
    【权值线段树】bzoj3224 Tyvj 1728 普通平衡树
    【转载】【树形DP】【数学期望】Codeforces Round #362 (Div. 2) D.Puzzles
    ReStart
    Good-Bye
    【分块打表】bzoj1662 [Usaco2006 Nov]Round Numbers 圆环数
    【分块打表】bzoj1026 [SCOI2009]windy数
    【分块打表】bzoj3798 特殊的质数
    【分块打表】bzoj3758 数数
    【线段树】bzoj3995 [SDOI2015]道路修建
  • 原文地址:https://www.cnblogs.com/zhq--blog/p/10209429.html
Copyright © 2011-2022 走看看