PsySHlaravel
PsySH是一个PHP的运行时开发平台,交互式调试器和Read-Eval-Print Loop (REPL)。git
说的简单点,就像你用firebug的console调试你的JavaScript代码同样。程序员
安装
官网介绍了3种安装方式:github
- 直接下载
- Composer安装
- 直接cloneGitHub仓库的代码
我比较建议选择Composer安装,由于这个项目还有其余的依赖项目,用Composer很好解决这个问题。web
如下教程以OS X和Windows 10为例,假定已经安装php
和Composer
并已经将它们设置为系统环境变量:面试
OS X
先用Composer下载PsySH,这里用的是全局安装:sql
1
|
$ composer global require psy/psysh
|
安装完毕后,PsySH已经安装到/Users/{用户名}/.composer/vendor/psy/psysh
目录下windows
此时,你能够直接运行:浏览器
1
|
$ /Users/{用户名}/.composer/vendor/psy/psysh/bin/psysh
|
为了使用方便,建议将它加入到环境变量:
1
2
|
$ echo 'export PATH="/Users/{用户名}/.composer/vendor/psy/psysh/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc
|
Windows
一样地,使用Composer安装,按win键+R键,输入cmd,打开windows控制台,而后:
1
|
composer global require psy/psysh
|
安装完成后,PsySH被安装到C:Users{用户名}AppDataRoamingComposervendorpsypsysh
由于bin/psysh文件并非windows的可执行文件,因此须要使用如下命令运行PsySH
1
|
php C:Users{用户名}AppDataRoamingComposervendorpsypsyshbinpsysh
|
为了使用方便,在C:Users{用户名}AppDataRoamingComposervendorpsypsyshbin
目录下新建一个名为psysh.bat
的文件,其内容以下:
1
2
|
<a href="http://www.jobbole.com/members/echo">@ECHO</a> OFF
php "%~dp0psysh" %*
|
此时,把C:Users{用户名}AppDataRoamingComposervendorpsypsyshbin
加入到系统的环境变量PATH,之后能够直接在cmd下运行psysh
了:
1
2
3
|
C:UsersVergil>psysh
Psy Shell v0.6.1 (PHP 5.6.8 — cli) by Justin Hileman
>>>
|
特性
上面说过,PsySH是一个交互式的PHP运行控制台,在这里,你能够写php代码运行,而且能够清楚看到每次的返回值:
而且,它很智能地知道你的代码是否已经结束
自动完成
PsySH能够像控制台那样,按下两次键自动补全,帮你自动完成变量名,函数,类,方法,属性,甚至是文件:
文档
在运行时忘记参数怎么办?PsySH的文档功能可让你即时查看文档。
PsySH的文档存放在~/.local/share/psysh/
。(windows系统存放在C:Users{用户名}AppDataRoamingPsySH
)
文档下载地址:
- English
- Brazilian Portuguese
- Chinese (Simplified)
- French
- German
- Italian
- Japanese
- Polish
- Romanian
- Russian
- Persian
- Spanish
- Turkish
下载中文文档:
1
2
3
4
|
$ cd ~/.local/share
$ mkdir psysh
$ cd psydh
$ wget http://psysh.org/manual/zh/php_manual.sqlite
|
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
或者?
,它能帮助你了解一切的命令
在内置web server中调试
原本想用Laravel作示例,但debugging的内容常常过多要分页查看。
并且说好的中文文章,好吧,那就用ThinkPHP为例:
首先,安装一下ThinkPHP
而后,用Composer局部安装一下PsySH:
由于ThinkPHP的dump()
函数和symfony/var-dumper
的dump()
函数有重名冲突,因此须要把其中一个重命名。我的建议把TP的改掉。为啥?由于symfony的好用多了。。。
在入口文件index.php
添加以下3句代码:
在项目根目录下,用PHP的内置web服务器启动:
1
|
php -S localhost:8080
|
而后便可在浏览器访问你的应用: http://localhost:8080
你将会看到如下画面,PsySH启动了
其余操做,和CLI操做差很少。例如:
1
|
ls -al ThinkModel
|
1
|
show \Think\Model::find
|
1
|
doc \Think\Model::save
|
固然,那句PsyShell::debug()
不必定要放在入口文件,它能够放在你一切想要debug的地方
例如,我放在默认的首页控制器:
从新运行php内置server并访问页面,而后输入命令:
1
|
ls -al
|
打开PsySH后,输入get_defined_vars()试试?
最新评论
你好在laravel中使用需在入口文件中加什么呢?
赞
我是在某个laravel项目中composer require psy/psysh,
使用:
ErrorException in Configuration.php line 814:
赞
哎哟 我滴哥
disable_functions中去掉了exec后重启php-fpm后仍是不行 一直超时504
赞