在PhpStrom中配置Docker作為本地開發(fā)環(huán)境

平時(shí)大家在開發(fā)php項(xiàng)目的時(shí)候,本地都要裝php程序和composer,做單元測(cè)試的時(shí)候還需要phpunit,如果需要單測(cè)覆蓋率的話還要開啟debug,本文將使用一個(gè)docker鏡像搞定這些。

先說下使用docker的優(yōu)點(diǎn)

  • 團(tuán)隊(duì)開發(fā)環(huán)境統(tǒng)一,新人容易上手
  • 便于管理各種php擴(kuò)展,也可以很方便的與測(cè)試生產(chǎn)環(huán)境保持一致

1,先準(zhǔn)備一個(gè)docker鏡像

下面是一個(gè)php7.3+composer2.1+phpunit9.5的dockerfile,大家也可以根據(jù)自己的需要進(jìn)行修改,然后自己構(gòu)建為鏡像

FROM composer:2.2.6 as composer
FROM registry.cn-shenzhen.aliyuncs.com/nyg_base/phpunit:9.5.9 as phpunit
FROM php:7.3-cli
LABEL maintainer="nyg1991@aliyun.com"

# 更改為阿里云鏡像
RUN  sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
    && sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
    && apt-get clean

#安裝zip pdo_mysql擴(kuò)展
RUN apt-get update \
    && apt-get install -y zlib1g-dev \
    && apt-get install -y libzip-dev \
    && docker-php-ext-install -j$(nproc) zip \
    && docker-php-ext-install -j$(nproc) pdo_mysql

#安裝debug,單測(cè)覆蓋率必須
RUN pecl install xdebug-2.8.1 && docker-php-ext-enable  xdebug

#安裝composer
COPY --from=composer /usr/bin/composer /usr/local/bin/composer

#安裝phpunit
COPY --from=phpunit /usr/local/bin/phpunit /usr/local/bin/phpunit

RUN chmod +x /usr/local/bin/composer && chmod +x /usr/local/bin/phpunit

我把構(gòu)建的鏡像打個(gè)標(biāo)簽phpstorm:7.3-composer,方便下邊使用
也可以拉取我已經(jīng)構(gòu)建好的鏡像

docker pull registry.cn-shenzhen.aliyuncs.com/nyg/phpstorm:php-73-base

2,配置php解釋器

本地要先啟動(dòng)docker desktop
2.1點(diǎn)擊配置 》PHP 》CLI解釋器


配置php解釋器1

2.2 點(diǎn)擊+ 》Form docker 》 docker 》選擇第一步構(gòu)建的鏡像


配置php解釋器2

2.3 添加成功后如下圖,我們可以看到php版本號(hào)和xdebug的版本,然后點(diǎn)擊應(yīng)用,確定


配置php解釋器3

2.4 這時(shí)已經(jīng)配置成功了,phpstorm會(huì)自動(dòng)生成路徑映射,把項(xiàng)目根目錄映射到容器中/opt/project


配置php解釋器4

2.5 返回到編輯器,創(chuàng)建一個(gè)test.php文件,Crtl+Shift+F10 選擇剛才配置的解釋器,然后運(yùn)行,我們可以看到運(yùn)行成功,php解釋器的配置就算完成了
配置php解釋器5

3,配置composer

3.1 這步配置比較簡單,看圖就可以了


配置php解釋器3.1

3.2 安裝一個(gè)包測(cè)試一下
新建一個(gè)composer.json文件,點(diǎn)擊 【工具】 》【composer】》【管理依賴項(xiàng)】》在composer.json文件里隨便寫一個(gè)包名,然后點(diǎn)擊安裝,如果執(zhí)行成功,這步就完成了。如果失敗,可以查看事件日志是否缺少某些php擴(kuò)展,然后在dockerfile里安裝擴(kuò)展,重新構(gòu)建鏡像,再次點(diǎn)擊composer安裝,重新構(gòu)建鏡像不用再重新配置phpstorm。


配置php解釋器3.2

3.3 配置composer命令行工具
使用phpstorm的composer工具只有幾個(gè)常用命令,我們?nèi)绻胍獔?zhí)行一些特殊的composer命令,比如composer -V,就需要再配置一個(gè)命令行工具

添加命令行工具,選擇composer


配置php解釋器3.3

配置php解釋器3.3

配置php解釋器3.3

確定,返回到編輯器,測(cè)試下是否配置成功
Ctrl+Shift+X 運(yùn)行命令,輸入

c -V

配置php解釋器3.3

看到輸出composer版本號(hào),也就配置成功一半了。
我們執(zhí)行下

c install

c install

這時(shí)就發(fā)現(xiàn)執(zhí)行失敗,composer找不到composer.json,因?yàn)閏omposer當(dāng)前的工作路徑是/usr/local/bin,并不是項(xiàng)目所在的目錄。然而phpstorm對(duì)這部分并不友好,找不到地方設(shè)置,只能用一個(gè)取巧的方法,配置--working-dir指定composer的工作路徑。
回到上一步的設(shè)置,點(diǎn)擊【在編輯器中定義】
working-dir

然后在編輯器中,找到命令執(zhí)行這里,增加--working-dir=\opt\project,然后直接關(guān)閉
working-dir

這里我們?cè)俅螆?zhí)行c install,就可以執(zhí)行成功了
composer install

composer的配置就到此了

配置測(cè)試框架(phpunit,覆蓋率)

配置就直接看圖吧


phpunit

寫個(gè)單元測(cè)試一下,首先準(zhǔn)備一個(gè)要測(cè)試的文件如下


a.php

單元測(cè)試文件
test.php

然后點(diǎn)擊 【使用覆蓋率運(yùn)行】,開始測(cè)試


run.php

運(yùn)行的結(jié)果如下,可以看到測(cè)試結(jié)果,以及覆蓋率,打開原文件能看到覆蓋了哪幾行代碼,綠色的是覆蓋過的,紅色為未覆蓋。
覆蓋率

到此為止就配置完了,需要說明一點(diǎn),這個(gè)鏡像只是phpstorm執(zhí)行一些命令行用的,是cli模式,不是項(xiàng)目運(yùn)行鏡像。項(xiàng)目運(yùn)行鏡像,可以和測(cè)試環(huán)境、生產(chǎn)環(huán)境用同一個(gè)鏡像,基于php-fpm的鏡像構(gòu)建。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容