PsySH——PHP交互式控制台
[导读] 今天在Github上发现了一个挺有意思的PHP项目:PsySH。 百度了一番,发现没有任何关于它的中文文章,经过研究,决定写本篇博文来讲述一下。 如果对你有所帮助,请留下你的回复
PsySH is a runtime developer console, interactive debugger and REPL for PHP.
PsySH是一个PHP的运行时开发平台,交互式调试器和Read-Eval-Print Loop (REPL)。
说的简单点,就像你用firebug的console调试你的JavaScript代码一样。
PsySH官网
安装
官网介绍了3种安装方式:
- 直接下载
- Composer安装
- 直接cloneGitHub仓库的代码
我比较建议选择Composer安装,因为这个项目还有其他的依赖项目,用Composer很好解决这个问题。
以下教程以OS X和Windows 10为例,假定已经安装php
和Composer
并已经将它们设置为系统环境变量:
OS X
先用Composer下载PsySH,这里用的是全局安装: $ composer global require psy/psysh
安装完毕后,PsySH已经安装到/Users/{用户名}/.composer/vendor/psy/psysh
目录下
此时,你可以直接运行: $ /Users/{用户名}/.composer/vendor/psy/psysh/bin/psysh 为了使用方便,建议将它加入到环境变量: $ echo 'export PATH="/Users/{用户名}/.composer/vendor/psy/psysh/bin:$PATH"' >>~/.bashrc $ source ~/.bashrc
Windows
同样地,使用Composer安装,按win键+R键,输入cmd,打开windows控制台,然后:
composer global require psy/psysh
安装完成后,PsySH被安装到C:Users{用户名}AppDataRoamingComposervendorpsypsysh
因为bin/psysh文件并不是windows的可执行文件,所以需要使用以下命令运行PsySH
php C:Users{用户名}AppDataRoamingComposervendorpsypsyshbinpsysh
为了使用方便,在C:Users{用户名}AppDataRoamingComposervendorpsypsyshbin
目录下新建一个名为psysh.bat
的文件,其内容如下:
@ECHO OFF
php "%~dp0psysh" %*
此时,把C:Users{用户名}AppDataRoamingComposervendorpsypsyshbin
加入到系统的环境变量PATH,以后可以直接在cmd下运行psysh
了:
C:UsersVergil>psysh
Psy Shell v0.6.1 (PHP 5.6.8 — cli) by Justin Hileman
>>>
特性
上面说过,PsySH是一个交互式的PHP运行控制台,在这里,你可以写php代码运行,并且可以清楚看到每次的返回值:
并且,它很智能地知道你的代码是否已经结束
自动完成
PsySH可以像控制台那样,按下两次[tab]
键自动补全,帮你自动完成变量名,函数,类,方法,属性,甚至是文件:
文档
在运行时忘记参数怎么办?PsySH的文档功能可以让你即时查看文档。
PsySH的文档存放在~/.local/share/psysh/
。(windows系统存放在C:Users{用户名}AppDataRoamingPsySH
)
文档下载地址:
- English
- Brazilian Portuguese
- Chinese (Simplified)
- French
- German
- Italian
- Japanese
- Polish
- Romanian
- Russian
- Persian
- Spanish
- Turkish
下载中文文档:
$ cd ~/.local/share $ mkdir psysh $ cd psydh $ wget http://psysh.org/manual/zh/php_manual.sqlite
OK,完成后重新打开PsySH
而且还自带分页功能(和more
命令一样)
当然,自定义的对象也可以有相关功能:
比如,test.php
这个文件有如下内容:
运行PsySH:
查看源代码
轻松展现任何用户级的对象,类,接口,特质,常数,方法或属性的源代码:
接着上一个例子:
查看show的帮助,使用help show
命令:
反射列表
list
命令知道所有关于你的代码 - 和其他人的。轻松地列出并搜索所有的变量,常量,类,接口,特点,功能,方法和属性。
更多用法,可以输入help list
命令查看。
获取最后的异常信息
如果忘记catch异常,可以使用wtf
命令(wtf是what the fuck的意思么?)查看异常的信息:
历史记录
可以像类Unix系统的history
命令一样,在PsySH可以查看你运行过的PHP代码或命令。详情运行help history
命令查看。
退出
使用exit
命令退出你的PsySH
help
最好用的命令,help
或者?
,它能帮助你了解一切的命令
在内置web server中调试
本来想用Laravel做示例,但debugging的内容经常过多要分页查看。 而且说好的中文文章,好吧,那就用ThinkPHP为例:
首先,安装一下ThinkPHP
然后,用Composer局部安装一下PsySH:
因为ThinkPHP的dump()
函数和symfony/var-dumper
的dump()
函数有重名冲突,所以需要把其中一个重命名。个人建议把TP的改掉。为啥?因为symfony的好用多了。。。
在入口文件index.php
添加如下3句代码:
在项目根目录下,用PHP的内置web服务器启动: php -S localhost:8080
然后即可在浏览器访问你的应用: http://localhost:8080
你将会看到以下画面,PsySH启动了
其他操作,和CLI操作差不多。例如:ls
ls -al ThinkModel
show ThinkModel::find
doc ThinkModel::save
当然,那句PsyShell::debug()
不一定要放在入口文件,它可以放在你一切想要debug的地方 例如,我放在默认的首页控制器:
重新运行php内置server并访问页面,然后输入命令: ls -al
打开PsySH后,输入get_defined_vars()试试?
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 硬核!IDEA 中使用 Git 完整入门教程!
- 神器你值得拥有——CoolFormat代码一键自动格式化工具,支持Verilog
- 一个简单现实案例挑战 PowerBI 水平测试 - 深度解析
- [译]使用DOT语言和GraphvizOnline来可视化你的ASP.NETCore3.0终结点01
- 探索 React 内核:深入 Fiber 架构和协调算法
- [经验]使用Keil MDK+Jlink-OB下载失败的解决办法
- ESP8266两种工作模式数据传输测试
- 『真香警告』这33个超级好用的CSS选择器,你可能见都没见过。
- [踩坑]STM32外部8M晶体不起振会有什么现象?
- 干掉 GuavaCache:Caffeine 才是本地缓存的王
- 美团数据怎么爬,看看这个文章吧!
- [硬件]关于SPI Flash那些你不知道的事儿
- 「新特性」Spring Boot 全局懒加载机制了解一下
- 做olap一定要要了解的Druid存储结构
- 【ST开发板评测】使用Python来开发STM32F411