# php 开发


构建开发镜像:

包含 composer + xdebug 
```bash
cd php\php74xc\
docker build --pull --rm -f "Dockerfile" -t jianboy/php74xc:latest
cd php\php8xc\
docker build --pull --rm -f "Dockerfile" -t jianboy/php8xc:latest

# 切换 php 版本
cd workspace
chmod -R 777 .
docker run --rm -it -w /var/www/html -v $(pwd):/var/www/html -p 8000:8000 jianboy/php74xc:latest /bin/bash
docker run --rm -it -w /var/www/html -v $(pwd):/var/www/html -p 8000:8000 jianboy/php8xc:latest /bin/bash

composer install
```

php基础镜像:
```bash

chmod -R 777 .
docker run --rm -it -v $(pwd):/var/www/html -p 9000:80 php:8.3.6-apache

docker run --rm -it -w /var/www/html -v $(pwd):/var/www/html -v $(pwd)/Downloads:/root/Downloads/MusicDL/ -p 9000:80 php:8.1.8-apache /bin/bash

thinkphp new demo
thinkphp serve

# 其他版本
docker run --rm -it -v $(pwd):/var/www/html -p 9000:80 php:7.4.27-apache
docker run --rm -it -v $(pwd):/var/www/html -p 9000:80 php:5.6.38-apache
```

开发环境需要 composer,启动下面容器即可:
```bash
# php8+xdebug+composer
docker run --rm -it -w /var/www/html -v $(pwd):/var/www/html -p 8000:8000 sineverba/php8xc:1.18.0 /bin/bash
docker run --rm -it -w /var/www/html -v $(pwd):/var/www/html -p 8000:8000 sineverba/php74xc:1.11.0 /bin/bash
```

laravel 项目使用下面容器,可以添加 `docker-compose.yaml` 配置一并启动数据库:
```
# https://hub.docker.com/r/bitnami/laravel
docker run --rm -it -v $(pwd):/app -p 8000:8000 bitnami/laravel:latest


docker run -d --name laravel \
  -p 8000:8000 \
  --env DB_HOST=mariadb \
  --env DB_PORT=3306 \
  --env DB_USERNAME=bn_myapp \
  --env DB_DATABASE=bitnami_myapp \
  --network laravel-network \
  --volume ${PWD}/my-project:/app \
  bitnami/laravel:latest

```

### 额外配置

- 安装 composer

```bash
docker run --rm -it -v /workspace:/app composer:latest /bin/bash
```

### 数据库

基于 docker-compose,启动 mysql, adminer, redis等等

```bash
docker-compose up -d
```

参考 template 代码即可

### 基于 swoole

```bash
docker run --rm -it -v /workspace:/app swoole:latest /bin/bash
```

### 基于 laravel

```bash
docker run --rm -it -v /workspace:/app composer:latest /bin/bash

composer create-project --prefer-dist laravel/laravel blog
```

### 基于 thinkphp

```bash

docker run --rm -it -v /workspace:/app composer:latest /bin/bash

composer create-project topthink/think demo
```

### 基于 yii

```bash

docker run --rm -it -v /workspace:/app composer:latest /bin/bash

composer create-project --prefer-dist yiisoft/yii2-app-basic demo
```

## 数据库

通过docker快速启动一个测试数据库:

```

```

## Rust


## Reference

- [sineverba/php74xc](https://github.com/sineverba/php74xc)