使用PHPStorm之後只可以減少手動執行的步驟,PHPStorm可以自動將變更的檔案佈署到遠端伺服器上(或者是多台的伺服器群組),在透過遠端的Docker執行單元測試
使用Docker來做單元測試是可以保持環境的一致姓,因為平時開發環境可能會安裝多個版本的PHP或者調整php.ini的關係造成與實際佈署環境不一致的情況,每次執行單元測試的容器都是一次性使用的,執行完單元測試後就會自動銷毀
PHPStorm with remote Docker 架構圖
1.設定Docker主機
新增Docker主機,輸入遠端的 Restful api 即可,輸入後會自動檢查是否可用
預設Restful API是沒有開啟的,如果要開啟可參考上一篇
2.設定佈署(Deployment)
2.1 新增一個SFTP主機
2.2 輸入主機名稱
2.3 輸入主機名稱、帳號、密碼,輸入後可點選Test進行測試
2.4 設定要佈署的目的路徑(Deployment path)
2.5 點選瀏覽資料夾,可使用滑鼠右鍵建立新的資料夾
3.設定PHP遠端直譯器
3.1 新增直譯器,先選擇PHP版本再點選直譯器路徑後面的「...」選擇
3.2 點選左上角的「+」新增直譯器,再選擇「From Docker」
3.3 遠端直譯器設定,先選類型為 Docker,再選要使用的映象擋
3.4 新增完畢後,會自動偵測環境如PHP版本、是否有安裝Xdebug等等
3.5 完成後回到一開始的3.1可以看到剛剛新增的直譯器已經出現在選單中了
3.6 新增一個test.php測試一下直譯器與佈署設定
再新增的test.php上按右鍵可執行佈署(Deployment)
3.7 佈署完畢後,點選 Run 執行 php
3.8 會得到一個錯誤 「Could not open input file: /opt/project/test.php」
3.9 這個問題出在 「3.5」這個步驟預設 Docker -v 參數使用的路徑是phpstorm主機的Project路徑,這個設定在Docker運行在同一台機器上時是沒有問題,但是如果Docker是執行在遠端則需要修改成佈署遠端主機的路徑
開啟PHP直譯器設定 Docker Container,在Volume bindings選項中,將Host path修改成佈署路徑即可(需要選擇項目後右側的編輯圖示才會出現)
4.0 測試完成
Refense
https://www.jetbrains.com/help/phpstorm/configuring-remote-interpreters.html
沒有留言:
張貼留言