상점 시스템 - 아래 설명이 최신이 아니며 프로젝트가 재구축 중입니다.
일반 정보
- 강력한 코드 생성을 촉진하기 위해 phpstan(6 레벨), deptrac, codeniffer 등 여러 도구가 활용됩니다.
- 애플리케이션은 애플리케이션(E2E), 통합 및 단위 테스트로 분류된 테스트를 통해 잘 테스트되었습니다.
- Redis를 기반으로 한 캐싱 시스템이 구현되었습니다.
기술 솔루션
- 디렉터리는 모든 모듈의 하위 디렉터리를 포함하는 /Module과 모든 모듈에서 공유되는 구성 요소를 포함하는 /Shared로 구성됩니다. 각 모듈 [주문, 제품, 사용자]는 4개의 디렉터리로 구성됩니다.
- 애플리케이션 -> 애플리케이션 로직 구현을 수용합니다.
- 도메인 -> 비즈니스 정보와 엄격하게 관련된 항목(엔티티, 열거형 및 리포지토리 인터페이스)이 포함됩니다.
- 인프라 -> 데이터베이스, 캐싱 시스템 등 기술 계층과 관련된 구성 요소를 포함합니다.
- UI -> 사용자와 시스템 간의 연결 역할을 하는 콘솔 명령 또는 컨트롤러가 포함되어 있습니다.
- 작업은 명령과 쿼리로 분류됩니다. 작업 완료 후 정보를 저장하기 위한 맞춤형 솔루션을 구현했습니다. 각 명령은 CommandResult를 반환하는 반면, 쿼리는 성공, 상태 코드 및 검색된 데이터에 대한 정보가 포함된 QueryResult를 반환합니다.
- 인증은 LexikJWTAuthenticationBundle과 함께 JWT 접근 방식을 사용하여 구현됩니다.
- 이벤트 소싱은 주문의 현재 상태에 대한 정보를 저장하는 데 사용됩니다. 가장 최근에 생성된 주문 상태는 현재 상태를 나타냅니다.
데이터 베이스
API 문서
구조
기준 치수
Make를 사용하는 명령
처음 실행을 위해 초기화
개발 프로필 실행
마이그레이션 삭제, 픽스쳐 마이그레이션 및 로드
make drop_migrations
make migrate
make load_fixtures
모든 테스트 실행
Make가 없는 명령
처음 실행을 위해 초기화
docker-compose up --profile dev -d
docker-compose exec php bin/console doctrine:migrations:diff
docker-compose exec php bin/console doctrine:migrations:migrate
docker-compose exec php bin/console lexik:jwt:generate-keypair
다른 명령의 경우 Makefile의 내용을 확인하세요.
API 문서
API 문서는 다음에서 확인할 수 있습니다.