A. 在phpStrom中配置Docker作為本地開發環境
平時大家在開發php項目的時候,本地都要裝php程序和composer,做單元測試的時候還需要phpunit,如果需要單測覆蓋率的話還要開啟debug,本文將使用一個docker鏡像搞定這些。
下面是一個php7.3+composer2.1+phpunit9.5的dockerfile,大家也可以根據自己的需要進行修改,然後自己構建為鏡像
我把構建的鏡像打個標簽phpstorm:7.3-composer,方便下邊使用
也可以拉取我已經構建好的鏡像
本地要先啟動docker desktop
2.1點擊配置 》PHP 》CLI解釋器
2.2 點擊+ 》Form docker 》 docker 》選擇第一步構建的鏡像
2.3 添加成功後如下圖,我們可以看到php版本號和xdebug的版本,然後點擊應用,確定
2.4 這時已經配置成功了,phpstorm會自動生成路徑映射,把項目根目錄映射到容器中/opt/project
3.1 這步配置比較簡單,看圖就可以了
3.2 安裝一個包測試一下
新建一個composer.json文件,點擊 【工具】 》【composer】》【管理依賴項】》在composer.json文件里隨便寫一個包名,然後點擊安裝,如果執行成功,這步就完成了。如果失敗,可以查看事件日誌是否缺少某些php擴展,然後在dockerfile里安裝擴展,重新構建鏡像,再次點擊composer安裝,重新構建鏡像不用再重新配置phpstorm。
添加命令行工具,選擇composer
看到輸出composer版本號,也就配置成功一半了。
我們執行下
配置就直接看圖吧
寫個單元測試一下,首先准備一個要測試的文件如下
然後點擊 【使用覆蓋率運行】,開始測試
B. 請問下php如何進入CLI模式
開始-運行-cmd-找到你的php.exe所在的目錄
比如我的php.exe所在的目錄就是E:wampinphpphp5.3.10
C. Php cli是守護進程的嗎
php_cli模式簡介
php-cli是php Command Line Interface的簡稱,如同它名字的意思,就是php在命令行運行的介面,區別於在Web伺服器上運行的php環境(php-cgi, isapi等) 也就是說,php不單可以寫前台網頁,它還可以用來寫後台的程序。 PHP的CLI shell腳本適用於所有的PHP優勢,使創建要麼支持腳本或系統甚至與GUI應用程序的服務端!——註:windows和linux下都支持php_cli模式
PHP-cli應用場景:
1.多線程應用
這方面的好處,引用鳥哥的話:
優點:
1. 使用多進程, 子進程結束以後, 內核會負責回收資源
2. 使用多進程,子進程異常退出不會導致整個進程Thread退出. 父進程還有機會重建流程.
3. 一個常駐主進程, 只負責任務分發, 邏輯更清楚.
php的多線程—沒錯就是php多線程應用,雖然大家都普遍認為php沒有多線程(curl屬於模擬多線程而不是真實的),但是在php_cli模式下的php徹底的是屬於多線程。這個時候php屬於linux的一個守護進程。 在本人之前寫過的《PHP多線程批量採集下載美女圖片(續)》的時候在採集程序里雖然使用curl來模擬多線程,但是在瀏覽器執行的時候也是會遇到執行超時或內存abort而導致程序中斷,(要嘗試幾次才可以徹底成功),但是如果在php-cli模式下執行,你就會發現這個程序執行的很快,php多線程執行的優勢被徹底表現出來了.
備注:這種多線程方式不是很成熟,不適合大規模的生成應用,偶爾使用還是可以的
2.定時執行php程序
利用linux的cron方式,那麼這個方式是如何定時執行php程序?請看下文
3.開發桌面程序
你可以做您的Windows或Linux中使用PHP的圖形用戶界面(GUI)應用!所有你需要的是PHP的命令行介面和一包GTK。這將允許建立真正的攜帶型圖形用戶界面應用程序(呵呵,之前只是知道php可以做桌面程序,現在才知道是使用php_cli模式),並且不需要學習別的。
4.編寫PHP的shell腳本
如果你不會bash shell或者Perl等的使用,但是你又需要一些腳本去執行的時候,怎麼辦?這個時候你完全可以使用你熟悉的php編寫shell腳本,這個時候你是不是突然感覺PHP是不是太強大了!—–真正做到一種語言,到處開發!
PHP_CLI使用方法
win下面的執行方法:
假設php.exe 在D:xamppphp在dos命令在可以這個執行:
復制代碼 代碼如下:D:xamppphpphp.exe D:xampphtdocstest.php
就可以執行test.php這個文件了 。這里推薦win平台下xampp集成環境,真正比wamp強大N倍,這個集成包可以直接進入dos模式。
linux下php_cli使用
首先找到你安裝php的路徑,以我為例:
當然實現的方法不止一個,大家可以嘗試其他方法實現!
例外關於php的cli還有很多參數可以加入:具體可以參考:http://php.net/manual/en/features.commandline.php
關於定時執行
cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業,周期性作業,比如備份數據 打開/etc/crontab,添加:
復制代碼 代碼如下:
/usr/bin/php -f /data/htdocs/test.php
D. PHP 怎麼運行CLI模式
windows 配置php環境變數
然後打開cmd 運行php ****.php
Linux 打開超級終端
有環境變數直接用php ***.php
沒有環境變數 進入php的編譯目錄運行 php ***.php