Недавно начал осваиваить Dependency Injection и репозитории в Laravel и сразу же возникло несколько вопросов:
1. Где хранить файла репозиториев? Я создаль папку Repositories и добавил ее в Composer. Правильно ли я сделал?
2. Нужно ли разбивать папку с репозиториями на подпапки (UserRepository, MailerRepositiory и т.д.)
3. Где лучше биндить интерфейсы к реализации - в хелпере bingings или в сервис-провайдере?
4. Где хранить сервис провайдеры? Пока хранятся в папке Providers
Другое:
5. У модели User есть метод register, где происходит валидация. Сейчас в случае ошибки выбрасывается кастомный InvalidDataException (или NotFoundException, в зависимости от ситуации), который лежит в папке с моделями, а контроллере уже происходит обработка:
try {
$user = $this->users->register($data);
} catch (InvalidDataException $e) {
return Redirect::back()->with('global', $e->getMessage())->withInput($data)->withErrors($e->getErrors());
}
Правильно ли так делать или лучше вынести его в отдельную папку?
6. Как тестировать отправку E-mail (без различных catcher-ов и т.д.)?