Pau Garcia -> Promosi katalog
Dibuat dengan
- PHP 8.1
- DD
- Arsitektur Heksagonal (Port dan Adaptor)
- CQRS
- Buruh pelabuhan
- Menguji dengan PHPUnit
Petunjuk Utama
- Luncurkan kontainer buruh pelabuhan:
docker-compose up -d
- Saat pertama kali dijalankan, instal dependensi:
docker-compose exec php-fpm bash
dan kemudian composer install
RUTE API
- http://localhost:33000/api/products-with-discounts (Semua produk)
- http://localhost:33000/api/products-with-discounts?filterByCategory=boots (filter berdasarkan kategori)
UJI
- Untuk tes peluncuran
docker-compose exec php-fpm bash
dan kemudian vendor/bin/phpunit --testdox
PENJELASAN TENTANG KEPUTUSAN
- Saya telah menggunakan Symfony untuk mengembangkan produk/diskon API sederhana, dan tanggapan dari mereka adalah daftar produk yang menerapkan diskon.
- Saya menggunakan buruh pelabuhan sederhana (server web nginx/php-fpm/mongo) untuk menjalankan proyek.
- Saya memutuskan untuk menggunakan DB "dalam memori" hanya untuk fungsionalitas latihan ini, tetapi dalam proyek saya mengembangkan repositori Mongo, karena dalam latihan mengatakan "Anda harus mempertimbangkan aSaya memutuskan menggunakan DB" dalam memori "hanya untuk fungsionalitas dari latihan ini, tetapi dalam proyek saya mengembangkan repositori mongo, karena dalam latihan tersebut dikatakan "Anda harus memperhitungkan bahwa daftar ini dapat bertambah hingga memiliki 20.000 produk." dan mongoDB mungkin akan menjadi pilihan yang baik di posibiliry.ccount ini bisa tumbuh memiliki 20.000 produk." dan mongoDB mungkin akan menjadi pilihan bagus dalam kemungkinan ini.
- Saya telah membuat semua struktur dengan Arsitektur Heksagonal dan DDD, dengan teknik ini memisahkan aturan bisnis kami dengan kode lainnya.
- Satu konteks pembatas "Katalog" di dalamnya memiliki 3 entitas (Produk, Diskon Produk, dan ProductPriceSummary).
- Saya telah menggunakan pola CQRS dalam kasus penggunaan kami (Perintah dan Kueri), ini membantu kami dalam mengujinya.