Andrey
не понял фразу "вызов методов через роутер"
invariance
ну Route::get(..., "controller@method")
invariance
оно же дергает метод
invariance
и вот внутри где то сделать обертку try catch
invariance
но это так себе на самом деле
invariance
а по другому никак не убрать повторяющийся в каждом методе код похоже
invariance
у меня в каждом методе идентичный try { } catch()
invariance
а хотя, в мидлвейре наверное можно же
Andrey
А что ты так оборачиваешь?
invariance
все методы
Andrey
хм
invariance
а мало ли что случится в потоке ларавелевской магии)
Andrey
например?
Siarhei
Ребята, есть задача парсить, обрабатывать и хранить данные и сдать запрос каждый час на получение инфы. Количество запросов будет увеличиваться, а их нужно как можно скорее обрабатывать. Я сделал пока все синхронно и без очередей. Вопрос: как это грамотно сделать, чтобы не упираться в количество запросов и делать это как можно быстрее? Просто это может быть несколько тысяч запросов в час Может вообще попробовать на Ноде сделать и там асинк?
invariance
например?
дохера и больше вариантов
Andrey
в общем, без кода не очень понятно. но кажется, что то не так
invariance
постоянно во время разработки ловлю 500 ошибку
invariance
особенно при всяких вызовах в бд
invariance
типо такие ситуации можно только намеренно создать, но можно
Siarhei
Ага
Siarhei
Пока их немного
Siarhei
Но растёт
Andrey
особенно при всяких вызовах в бд
ну сложно сказать без код. я try {} catch прям редко использую. Обычно в Job'ах может пригождаться
invariance
чем глубже апи, тем сложнее следить за исключениями, я так скажу
Andrey
так не надо за каждым следить то
Andrey
или что ты меешь ввиду, следить за ними?
invariance
в трай катче выводить
invariance
ошибку
Andrey
У меня достаточно редко бывает, что при исключении надо продолжить работу. Обычно это какой-то косяк и надо сказать клиенту об этом. и все
Andrey
куда выводить? отдавать клиенту?
invariance
апи же
invariance
надо же вернуть ошибку
invariance
хотя бы unexpected error
invariance
знакомый на хостинге работает, у них там абсолютно каждый метод оборачивается в try catch
invariance
так что я это не с неба взял)
Andrey
Зачем тебе самому перехватывать его? отдавай клиенту исклчение в норм json виде с кодом и соощением
invariance
Ну дык
invariance
как я его верну то
invariance
если возникнет исключения и нет try catch, то просто 500 ошибка выпадет клиенту
Andrey
почему 500 то?
Andrey
https://laravel.com/docs/master/errors#the-exception-handler
Andrey
Если у тебя нет модели и ModelNotFoundException падает, ты тоже это ловишь?
invariance
нет
invariance
не знаю, у меня не все исключения ловятся
Andrey
Это не очень нормально всё-всё в try catch оборачивать
invariance
я много где видел такое
invariance
=\
Andrey
а наверное еще больше где - не видел?
invariance
так долго можно рассуждать
invariance
смысла в этом нет
Andrey
Ну да
Andrey
Все же это не оч норм, имхо
invariance
почему?
Andrey
В laravel есть стандартные механизмы отловы исклчения и выдачи их клиенту
invariance
которые работают не всегда, как показывает практика)
invariance
можно было бы списать на то, что я рукожоп, но у меня тупо метод -> вывод
invariance
и исключение не хватается
invariance
возможно потому что я юзаю дофига написанного вручную, поэтому магия лары не срабатывает
Andrey
и исключение не хватается
а какое исключение? ну например?
Andrey
у меня бывало так пару раз наверн букаально, но там специфика была, сам косячил (опечаткя)
invariance
например
invariance
когда я попытался юзать обычный метод коллекции на коллекции элоквента
invariance
она как бы наследуется от обычной коллекции, но исключение выдало not found method in query builder
Andrey
какой метод?
Andrey
так погоди, ты на quejry builder его применил видимо а не на коллекцию
invariance
хорошо
invariance
но почему исключение не выдало?
Andrey
ну откуда мне знать
Andrey
Я бы искал пробелму почему не выдало, а не оборачивал бы наверное
invariance
проблему сложнее искать, когда не знаешь, в чем она
Os
stacktrace? xdebug?
Andrey
Ну у тебя есть отправная точка - дебажить дальше
invariance
ну я и отдебажил
invariance
но типо каждый раз при таком раскладе дебажить
invariance
вместо того, что бы сделал запрос -> получил ошибкой в ебло
Alexey
как получить выборку по связанным данным? Допустим, есть книги и у них есть жанры. Мне нужно получить все книги определенного жанра. Делаю так: Books::with('genre')->where('title', 'horror')->take(10)->get() При этом в модели Books определено отношение 1-ко-многим: class Books extends Model { public function genre () { return $this->hasMany(Genre::class, 'book_id', 'id'); } }
invariance
ты можешь сделать обратное отношение же
invariance
и все