Например, я хочу построить проект поверх одной среды PHP.На данный момент я хочу решить проблему со слоем Auth
.Мне нужно зарегистрировать нового пользователя в системе и выполнить некоторые задачи после этого.
Итак, где я могу разместить всю связанную бизнес-логику?
Теперь я думаю о Services
.Я хочу создать пространство имен App\Services\Auth
, куда я помещу все классы, связанные с проблемой.Будет один класс entrypoint
, который можно разрешить в контейнере DI.Этот класс предоставит мне метод registerUser
, currentUser
и другие методы, связанные со слоем Auth
.Также в этом пространстве имен я хочу разместить events listeners
как SendEmailAfterRegistration
и другие.Таким образом, это пространство имен будет содержать всю экосистему, связанную со слоем Auth
.И только один класс предоставит мне доступ ко всей этой экосистеме, которую я могу использовать в контроллерах.
Это нормально?Или, может быть, есть еще более «истинные» способы?