PsySH——PHP交互式控制檯

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

PsySHlaravel

PsySH是一個PHP的運行時開發平臺,交互式調試器和Read-Eval-Print Loop (REPL)。git

說的簡單點,就像你用firebug的console調試你的JavaScript代碼同樣。程序員

安裝

官網介紹了3種安裝方式:github

  • 直接下載
  • Composer安裝
  • 直接cloneGitHub倉庫的代碼

我比較建議選擇Composer安裝,由於這個項目還有其餘的依賴項目,用Composer很好解決這個問題。web

如下教程以OS X和Windows 10爲例,假定已經安裝phpComposer並已經將它們設置爲系統環境變量:面試

OS X

先用Composer下載PsySH,這裏用的是全局安裝:sql

安裝完畢後,PsySH已經安裝到/Users/{用戶名}/.composer/vendor/psy/psysh目錄下windows

此時,你能夠直接運行:瀏覽器

爲了使用方便,建議將它加入到環境變量:

 

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 評論
 

   

直接登陸 
最新評論
相關文章
相關標籤/搜索