在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、开始调试.
以上是关于在PhpStrom中配置Docker作为本地开发环境的主要内容,如果未能解决你的问题,请参考以下文章
phpstrom docker phpunit 配置webman单元测试
phpstrom 开发 laravel 项目配置 (Windows)