在PhpStrom中配置Docker作为本地开发环境

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在PhpStrom中配置Docker作为本地开发环境相关的知识,希望对你有一定的参考价值。

参考技术A 平时大家在开发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版本号,也就配置成功一半了。
我们执行下

配置就直接看图吧

写个单元测试一下,首先准备一个要测试的文件如下

然后点击 【使用覆盖率运行】,开始测试

phpstrom docker phpunit 配置webman单元测试

1、项目结构

2、Cli Interpreter 设置

这里的注意点就是映射目录的配置,是一个坑

 (1)Path mappings 目录配置

注意:Remote Path 是不需要配置的哦! 
注意:Remote Path 是不需要配置的哦! 
注意:Remote Path 是不需要配置的哦! 

(2)Docker Container 目录配置

注意:Container Path 是不需要配置的哦! 
注意:Container Path 是不需要配置的哦! 
注意:Container Path 是不需要配置的哦! 

3、设置 Test Framework

4、配置文件

(1)phpunit.xml:单元测试配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <phpunit backupGlobals="false"
 3          backupStaticAttributes="false"
 4          bootstrap="tests/bootstrap.php"
 5          colors="true"
 6          convertErrorsToExceptions="true"
 7          convertNoticesToExceptions="true"
 8          convertWarningsToExceptions="true"
 9          processIsolation="false"
10          stopOnFailure="false"
11          cacheResult="false">
12     <testsuites>
13         <testsuite name="tests">
14             <directory suffix="Test.php">./tests</directory>
15         </testsuite>
16     </testsuites>
17 </phpunit>

(2)tests:存放测试代码目录

(3)tests/bootstrap.php 脚手架入口

<?php
/**
 * @desc bootstrap.php 描述信息
 * @author Tinywan(ShaoBo Wan)
 * @date 2021/11/9 18:00
 */

use Webman\\Bootstrap;
use Webman\\Config;

require_once __DIR__ . \'/../vendor/autoload.php\';

Config::load(config_path(), [\'route\', \'container\']);
if ($timezone = config(\'app.default_timezone\')) {
    date_default_timezone_set($timezone);
}
foreach (config(\'autoload.files\', []) as $file) {
    include_once $file;
}
foreach (config(\'bootstrap\', []) as $class_name) {
    /** @var Bootstrap $class_name */
    $class_name::start(null);
}

(4)build:生成测试报告目录

5、开始调试.

 

 

作者:Tinywan

本文版权归作者和博客园共有。欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

欢迎关注个人微信公众号,一起进步!扫描左方二维码即可

以上是关于在PhpStrom中配置Docker作为本地开发环境的主要内容,如果未能解决你的问题,请参考以下文章

phpstrom docker phpunit 配置webman单元测试

phpstrom 开发 laravel 项目配置 (Windows)

phpstrom 开发 laravel 项目配置 (Windows)

微信开发使用webstorm&phpstrom 配置

用PhpStrom线上连接修改linux服务器上代码配置

如何清理Docker占用的磁盘空间?