Skip to content

Базовый проект yii2 для развертывания через docker. в проект уже встроен xdebug, mysql, reverse-rpoxy

Notifications You must be signed in to change notification settings

VitalyLitvinov74/even-beta.test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание для Even Bet Gaming

Используемые технологии

  • php 8.1 + xdebug
  • mysql
  • nginx
  • reverse-proxy

Инструкция по запуску

  1. Предварительно установите Docker desctop.
  2. Создайте файл .env на основе .env.example (можно просто убрать .example вконце).
  3. в .env измените значение переменной BACKEND на удобное вам.
    • Это наименование домена, на котором вы сможете запустить сайт.
  4. Зайдите в ваш файл hosts (C:\Windows\System32\drivers\etc) и добавьте туда доменные имена, например, у меня так:
127.0.0.1 evenBeta.my
  1. Проверьте чтобы PORT, MYSQL_PORT не были заняты другими приложениями. в противном случае измените на свои.
  2. В консоли перейдите в папку docker и выполните
docker-compose up -d

Postman

https://www.postman.com/solar-robot-131180/workspace/test/folder/2231425-30dbbc38-84dc-499f-9671-cd6064b58196

Пояснения

Тестовое задание выполнил в стиле DDD, т.к. в тестовом задании не было указано какой методологие пользоваться.

Немного о DDD

В основе DDD (domain driven design) лежит бизнес модель. Поэтому очень важно перенести все доменные объекты в код. т.к. именно ими выполняется работа (да, в данном случае бизнес логика лежит не в сервисах). Как можно заметить доменные объекты (в директории DDD) отображают реальные бизнес процессы описанные в тестовом задании Проблемы расширяемости тут нет, т.к. на каждую бизнес задачу создается свой контекст. и в DDD это нормально если в двух разных контекстах, лежат доменные модели, с одинаковым названием, но разным поведением. Таким образом мы избегаем "божественных" объектов.

К сожалению на Yii2 сложно изолировать слой БД от доменой логики (сложно следить за персистентностью), поэтому чтобы не писать кучу мапперов, сделал работу с БД непосредственно в слое DDD. также важно понимать что инфраструктурные модели ActiveRecord отделены от прочего кода, и содержат в себе только связи, и никакой логики, вся логика лежит только в доменных бизнес моделях

P.S. можно написать и через сервисы ))

About

Базовый проект yii2 для развертывания через docker. в проект уже встроен xdebug, mysql, reverse-rpoxy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published