Как по мне достаточно важная, хотя и холиварная тема. Думаю каждый из нас задавал себе вопросы: "можно не дублировать проверки?", "а не усложняю ли я?", "да как же это сделать нормально?!".
Эта статья аккумулирует в себе те практики, которые мне близки и которых я придерживаюсь в разработке.
Текст рассчитан не на новичков, потому нормально, если по ходу чтения какие-то понятия будут вам неизвестны, я постарался коротко раскрыть их здесь, а также указал ссылки на посты в моём телеграм канале Beer::PHP , которые могут чуть подробнее раскрыть то или иное понятие.
Начнем мы сразу с доменного слоя нашего приложения, то есть с бизнес логики нашего приложения.