테스트 주도 개발: PHP 스타터 키트

3135 단어 dockerphp

docker-compose.yml



이 구성에는 서비스만 포함되며 브라우저를 통해 컨테이너에 도달하기 위한 포트를 노출합니다. 이 파일에 대해 더 이상 이야기할 것이 없습니다.

version: '3.7'
services:
  server:
    build:
      context: ./docker/server/
    volumes:
      - ./:/var/www/html
    ports:
      - "8888:80"


/도커/서버/도커파일



이전 파일에는/docker/server/폴더에 Dockerfile이 필요합니다. Docker 파일은 여기에 있습니다. Apache가 이미 설치된 PHP 이미지입니다. 이 Dockerfile에는 php 및 zdebug와 함께 작동하기 위한 최소 요구 사항이 포함되어 있습니다. git과 zip은 컴포저와 함께 작업하기 위해 필수입니다. 사실 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-default.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>


작곡가.json



이 composer.json 파일에는 테스트 기반 개발을 시작하는 phpunit과 두 가지 기본 구성이 포함되어 있습니다.

먼저 bin 폴더가 선언되어 있으므로 ./vendor/bin/command 대신 ./bin/command를 실행할 수 있습니다.

두 번째 psr-4는 파일 자동 로딩을 위해 구성됩니다.

셋째, phpunit은 dev 환경에 설치됩니다.

{
    "config": {
        "bin-dir": "bin"
    },
    "autoload": {
        "psr-4": {
            "": ["src/"]
        }
    },
    "require-dev": {
        "phpunit/phpunit": "^9.5"
    }
}


메이크파일



내가 작업하는 모든 프로젝트에는 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)
    


    관련 저장소



    저장소를 찾을 수 있습니다. 새로운 PHP 프로젝트의 카타에 매우 유용합니다.

    링크



    내가 만든 비디오에 대한 링크는 여기에 있습니다: the walking skeleton . 이 비디오는 이탈리아어로 말하지만 코드는 php입니다.

    좋은 웹페이지 즐겨찾기