php(2 部分系列)1我用 50 行代码写了 twig2php的活动框架
docker-compose.yml此配置仅包含一个服务并公开一个端口以通过浏览器访问容器这个文件就不用多说了version: 3.7 services: server: build: context: ./docker/server/ volumes: - ./:/var/www/html ports: - "8888:80"。
/docker/server/Dockerfile以前的文件需要 /docker/server/ 文件夹中的 DockerfileDocker 文件在这里这是一个已经安装了 apache 的 php 图像。
此 Dockerfile 包括使用 php 和 zdebug 的最低要求git 和 zip 必须与 composer 一起工作实际上 zip 不是强制性的,.. 但是 composer 可以在安装时下载压缩的存储库。
FROM php:8.1-apache COPY 000-default.conf /etc/apache2/sites-available/000-default.conf COPY ./ /var/www/html COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer RUN apt-get update && \ apt-get upgrade && \ apt-get install -y git zip RUN pecl install xdebug && \ docker-php-ext-enable xdebug
/docker/server/000-deafult.conf这是一个非常简单的虚拟主机 ServerAdmin webmaster@localhost DocumentRoot /var/www/html/public ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined。
composer.json这个 composer.json 文件包含启动测试驱动开发的 phpunit 和两个基本配置首先,声明了 bin 文件夹,这样我们就可以运行 ./bin/command 而不是 ./vendor/bin/command。
第二个 psr-4 配置为文件自动加载第三,phpunit 安装在开发环境中{ "config": { "bin-dir": "bin" }, "autoload": { "psr-4": { "": ["src/"] } }, "require-dev": { "phpunit/phpunit": "^9.5" } }。
Makefile在我工作的每个项目中,都有一个 Makefile此文件中的主要目标是覆盖率,用于代码覆盖率重建、停止、擦除和重新启动容器作曲家,从主机运行作曲家php := server docker := docker-compose compose := $(docker) --file docker-compose.yml docker_exec := $(compose) exec args = $(filter-out $@,$(MAKECMDGOALS)) up: $(docker) up -d bash: $(docker_exec) $(php) bash test: $(docker_exec) $(php) bash -c "./bin/phpunit --testdox --color" coverage: $(docker_exec) $(php) bash -c "php -dxdebug.mode=coverage ./bin/phpunit --testdox --color --coverage-html coverage" .PHONY: coverage stop: $(docker) stop rm: $(docker) rm $(php) --force build: $(docker) up -d --build rebuild: stop rm build composer: $(docker_exec) $(php) composer $(args) 。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。