Size: a a a

Laravel для начинающих

2021 March 29

SC

Sergey Chizhik in Laravel для начинающих
Александр Кондраков
я бы все же реализовывал где-то в другом месте, не в мидле, а где-то в контроллере сделал вызов класса, который что-то преобразует на основании реквеста
Мысль понял. Буду думать. Спасибо за ответ
источник

EV

Evg V. in Laravel для начинающих
Sergey Chizhik
Сделай мидлу, которая словит исключение и отдаст нужный ответ
И как в мидлваре ее отловить?
У меня же запрос уже пройдет через нее когда доберется до того исклюсения, либо исключение выкинут раньше чем запрос окажется в ней)
источник

SC

Sergey Chizhik in Laravel для начинающих
А хотя стоп
источник

SC

Sergey Chizhik in Laravel для начинающих
Или нет.
try {
   $next($request);
} catch (Validation) {
   ...
}

Разве не сработает?
источник

АК

Александр Кондраков... in Laravel для начинающих
Санжар
Используете ли контракты для сервисов? :)
Расскажите пожалуйста.
Я бы лучше задумался над тем, как разделять сервисы. какие неймспейсы использовать, какие типы сервисов бывают (сервисы бизнес логики, сервисы инфраструктуры, сервисы уровня приложения)
источник

EV

Evg V. in Laravel для начинающих
Sergey Chizhik
Или нет.
try {
   $next($request);
} catch (Validation) {
   ...
}

Разве не сработает?
Сейчас попробую))
источник

EV

Evg V. in Laravel для начинающих
Sergey Chizhik
А хотя стоп
А могу я как то в форм реквесте, если не прошла проверка, выкинуть свое исключение а не Валидейшн?)
источник

SC

Sergey Chizhik in Laravel для начинающих
Evg V.
А могу я как то в форм реквесте, если не прошла проверка, выкинуть свое исключение а не Валидейшн?)
\Illuminate\Foundation\Http\FormRequest::failedValidation
источник

С

Санжар in Laravel для начинающих
Александр Кондраков
Я бы лучше задумался над тем, как разделять сервисы. какие неймспейсы использовать, какие типы сервисов бывают (сервисы бизнес логики, сервисы инфраструктуры, сервисы уровня приложения)
Я понимаю, тоже важно. Просто я столкнулся с чем-то вроде:
class UserService extends AbstractService implements UserServiceContract
источник

АК

Александр Кондраков... in Laravel для начинающих
Санжар
Я понимаю, тоже важно. Просто я столкнулся с чем-то вроде:
class UserService extends AbstractService implements UserServiceContract
и что тебя смущает?
источник

EV

Evg V. in Laravel для начинающих
Sergey Chizhik
\Illuminate\Foundation\Http\FormRequest::failedValidation
Поправить в vendor?)))
источник

SC

Sergey Chizhik in Laravel для начинающих
Evg V.
Поправить в vendor?)))
Переопределить
источник

SC

Sergey Chizhik in Laravel для начинающих
Камон
источник

EV

Evg V. in Laravel для начинающих
Sergey Chizhik
Переопределить
а я так не умею пока)
Типо унаследоваться и переобпределить?
источник

SC

Sergey Chizhik in Laravel для начинающих
Evg V.
а я так не умею пока)
Типо унаследоваться и переобпределить?
Тебя не смущает, что ты кастомные FormRequest и так от них наследуешь?)
источник

С

Санжар in Laravel для начинающих
Александр Кондраков
и что тебя смущает?
Не слишком ли переусложнение с абстракциями ради одной сущности с бизнес логикой относящейся к User?
По сути тут интерфейс UserServiceContract, где просто методы связанные с CRUD/permission User сущности.
Я пытаюсь понять, какая еще в будущем реализация иная для User может понадобиться, что тут сделали отдельный контракт под сервис.
Еще в AbstractServiceContract опять же просто интерфейс с двумя методами, но тут еще ок, т.к туда можно по идее сделать API-респонсы с type hint
источник

EV

Evg V. in Laravel для начинающих
Sergey Chizhik
Тебя не смущает, что ты кастомные FormRequest и так от них наследуешь?)
О) теперь знаю от кого наследуюсь))
Значт я могу переобпредеить прямо в соем реквесте этот метод и выкинуть нужное исключение?)

Прикольно, не знал) спасибо)

Но сначала все таки через мидлу попробую, потмоу что не 1 формреквест нужен с такой обработкой будет)
источник

С

Санжар in Laravel для начинающих
Александр Кондраков
Я бы лучше задумался над тем, как разделять сервисы. какие неймспейсы использовать, какие типы сервисов бывают (сервисы бизнес логики, сервисы инфраструктуры, сервисы уровня приложения)
а что за разделение с сервисами инфраструктуры/уровня приложения?
источник

АК

Александр Кондраков... in Laravel для начинающих
Санжар
Не слишком ли переусложнение с абстракциями ради одной сущности с бизнес логикой относящейся к User?
По сути тут интерфейс UserServiceContract, где просто методы связанные с CRUD/permission User сущности.
Я пытаюсь понять, какая еще в будущем реализация иная для User может понадобиться, что тут сделали отдельный контракт под сервис.
Еще в AbstractServiceContract опять же просто интерфейс с двумя методами, но тут еще ок, т.к туда можно по идее сделать API-респонсы с type hint
если юнит тесты не будешь писать и забьешь на DIP, то можешь забить и на контракты
источник

SC

Sergey Chizhik in Laravel для начинающих
Evg V.
О) теперь знаю от кого наследуюсь))
Значт я могу переобпредеить прямо в соем реквесте этот метод и выкинуть нужное исключение?)

Прикольно, не знал) спасибо)

Но сначала все таки через мидлу попробую, потмоу что не 1 формреквест нужен с такой обработкой будет)
Если в шторме вызывать подсказочки или походить по вендор классам, много ещё можно узнать)
источник