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/ 文件夹中的 Dockerfile。Docker 文件在这里。这是一个已经安装了 apache 的 php 图像。此 Dockerfile 包括使用 php 和 zdebug 的最低要求。git 和 zip 必须与 composer 一起工作。实际上 zip 不是强制性的,.. 但是 composer 可以在安装时下载压缩的存储库。
FROM php:8.1-apacheCOPY 000-default.conf /etc/apache2/sites-available/000-default.confCOPY ./ /var/www/htmlCOPY –from=composer:latest /usr/bin/composer /usr/local/bin/composerRUN apt-get update && apt-get upgrade && apt-get install -y git zipRUN pecl install xdebug && docker-php-ext-enable xdebug
/docker/server/000-deafult.conf
这是一个非常简单的虚拟主机。
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/public ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>
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 := serverdocker := docker-composecompose := $(docker) –file docker-compose.ymldocker_exec := $(compose) execargs = $(filter-out $@,$(MAKECMDGOALS))up: $(docker) up -dbash: $(docker_exec) $(php) bashtest: $(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: coveragestop: $(docker) stoprm: $(docker) rm $(php) –forcebuild: $(docker) up -d –buildrebuild: stop rm buildcomposer: $(docker_exec) $(php) composer $(args)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!