ระบบร้านค้า - คำอธิบายด้านล่างไม่ทันสมัย โครงการกำลังถูกสร้างขึ้นใหม่
ข้อมูลทั่วไป
- ใช้เครื่องมือหลายอย่างเพื่ออำนวยความสะดวกในการสร้างโค้ดที่มีประสิทธิภาพ: phpstan (6 ระดับ), deptrac, codesniffer
- แอปพลิเคชันได้รับการทดสอบอย่างดี โดยการทดสอบแบ่งออกเป็นการทดสอบแอปพลิเคชัน (E2E) การรวมระบบ และการทดสอบหน่วย
- มีการใช้ระบบแคชที่ใช้ Redis
โซลูชั่นทางเทคนิค
- ไดเร็กทอรีถูกจัดระเบียบเป็น /Module ซึ่งมีไดเร็กทอรีย่อยสำหรับโมดูลทั้งหมด และ /Shared ซึ่งรวมถึงส่วนประกอบที่ใช้ร่วมกันระหว่างโมดูลทั้งหมด แต่ละโมดูล [คำสั่งซื้อ ผลิตภัณฑ์ ผู้ใช้] ประกอบด้วยสี่ไดเรกทอรี:
- แอปพลิเคชัน -> เป็นที่เก็บการนำตรรกะของแอปพลิเคชันไปใช้
- โดเมน -> มีสิ่งที่เกี่ยวข้องกับข้อมูลทางธุรกิจอย่างเคร่งครัด - เอนทิตี การแจงนับ และอินเทอร์เฟซของที่เก็บข้อมูล
- โครงสร้างพื้นฐาน -> รวมส่วนประกอบที่เกี่ยวข้องกับเลเยอร์ทางเทคนิค เช่น ฐานข้อมูลและระบบแคช
- UI -> มีคำสั่งคอนโซลหรือตัวควบคุมที่ทำหน้าที่เป็นการเชื่อมต่อระหว่างผู้ใช้และระบบ
- การดำเนินการแบ่งออกเป็นคำสั่งและการสืบค้น ฉันได้ใช้โซลูชันแบบกำหนดเองสำหรับการจัดเก็บข้อมูลหลังจากเสร็จสิ้นการดำเนินการ แต่ละคำสั่งส่งคืน CommandResult ในขณะที่คิวรีส่งคืน QueryResult ซึ่งมีข้อมูลเกี่ยวกับความสำเร็จ รหัสสถานะ และข้อมูลที่ดึงมา
- การรับรองความถูกต้องดำเนินการโดยใช้แนวทาง JWT กับ LexikJWTAuthenticationBundle
- การจัดหาเหตุการณ์ใช้เพื่อจัดเก็บข้อมูลเกี่ยวกับสถานะปัจจุบันของคำสั่งซื้อ สถานะคำสั่งซื้อที่สร้างขึ้นล่าสุดระบุสถานะปัจจุบัน
ฐานข้อมูล
เอกสาร 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 มีอยู่ที่