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
贊