@laravel_pro

Страница 1916 из 2014
Сергей
29.09.2018
14:37:59
Александр
29.09.2018
14:38:25
Загрузка файла может быть ресурсом

Обновление списка, например

Есть ресурс - урок - у него создание, обновление, отображение и удаление. Но бизнес хочет уметь обновлять несколько уроков за раз при нажатии кнопки сохранить, изменив названия нескольких уроков, например. Вот роут обновления списка уроков - не ресурс, хотя по идее можно завернуть его в ресурс и прострелить ногу

Google
Сергей
29.09.2018
14:42:07
Обновление списка, например
Отдельные страницы, состоящие из множества запросов или сложные действия

Александр
29.09.2018
14:42:52
Не ресурсные действия, я хз как из назвать по-другому)

Александр
29.09.2018
14:53:27
Ресурс списка. Создание списком, обновление, удаление и тп. Не стоит этого делать

Alexander
29.09.2018
15:07:53
Подскажите пожалуйста, у ларки есть по умолчанию переменная $error, как в эту переменную добавить ошибку при добавлении в базу(не заполнено обязательное поле), не использую validate, а с помощью try/catch?

Алексей
29.09.2018
15:10:31
сделать валилацию) я не уверен, но вроде $error достается из сесии, попробуй посмотреть

(;¬_¬)
29.09.2018
15:13:57
если ресурс, то всё равно у тебя уже rest, если я правильно понимаю. а если у тебя rest, то почему не воспользоваться преимуществами всяких js херней

Google
Александр
29.09.2018
15:14:08
а сделать Х обновлений подряд не вариант?
Ага, из браузера отправить 10 запросов, 5-й завалится на валидации, и ничего уже не откатишь. + оверхед на запрос

(;¬_¬)
29.09.2018
15:15:21
Ага, из браузера отправить 10 запросов, 5-й завалится на валидации, и ничего уже не откатишь. + оверхед на запрос
ну а предыдущие-то пять корректно обновятся. опять же следующие 4 тоже могут корректно обновиться

и тебе останется только сказать что вот это вот я не смог обновить, проверьте и поправьте

f4rt~
29.09.2018
15:16:12
зачем же такой оверхед

(;¬_¬)
29.09.2018
15:16:16
понятно, что если у тебя есть условие "либо всё, либо ничего" тогда да, такой вариант не вариант

f4rt~
29.09.2018
15:16:30
я все ждал что кто то накинет за то, что нельзя модицифировать множество ресурсов одновременно одним запросом

(;¬_¬)
29.09.2018
15:17:03
я все ждал что кто то накинет за то, что нельзя модицифировать множество ресурсов одновременно одним запросом
ну я и не предлагаю одним запросом много. я каждый отдельным запросом. опять же я не знаю всей подноготной его ситуации

если у него 100 одновременно правится уроков - да, это не вариант

а если 3-5, почему нет

f4rt~
29.09.2018
15:17:27
ну почему же

(;¬_¬)
29.09.2018
15:18:57
зачем же такой оверхед
давай конструктив лучше. ты же тут тимлид и сеньёр

f4rt~
29.09.2018
15:19:00
если учитель заболел но на неделе у него 100 уроков, получается классическая n+1 на каждый такой случай

(;¬_¬)
29.09.2018
15:19:34
та пиздец, Валер, там проще отдельный блок сделать "замена учителя с ДАТА до ДАТА"

либо отмена урока

даже если брать по 12 уроков в день - 70 =)

f4rt~
29.09.2018
15:20:47
опять же, 100 уроков на неделе не бывает =)
сколько бы их нибыло по асимптотической сложности, кол-во твоих запросов прямо пропорционально кол-ву уроков у учителя)

f4rt~
29.09.2018
15:21:20
ну так или иначе всегда модифицируем больше одного ресурса

например когда удаляем автора у поста

Google
f4rt~
29.09.2018
15:21:32
с каким нить cascade all

в любой соц.сети можно выбрать N сообщений и удалить

и таких примеров с любыми итемами сотни, другое дело что это очень хорошо ложиться на graphql

Сергей
29.09.2018
15:22:17
Интересно какой роут должен быть в таком случае, /lessons/update ?

f4rt~
29.09.2018
15:22:30
что бы сохранить структуру одинаковой для всех запросов подобного плана)

(;¬_¬)
29.09.2018
15:23:00
f4rt~
29.09.2018
15:23:18
а теперь ты должен кинуть линк на почитать
да ну брось какой линк, просто люди ленивые сволочи

когда мне нужно что то в админке удалить и нет кнопки выбрать все или по фильтрам я очень расстраиваюсь

(;¬_¬)
29.09.2018
15:24:11
да ну брось какой линк, просто люди ленивые сволочи
да, мне лень гуглить, а если ты так увернно говоришь что graphql в этой ситуации панацея - то я бы почитал

плюс наверняка у тебя что-то уже зачитаное на эту тему есть

раз ты так уверен =)

f4rt~
29.09.2018
15:24:37
да, мне лень гуглить, а если ты так увернно говоришь что graphql в этой ситуации панацея - то я бы почитал
просто представь тебе сейчас нужно менять статусы по коллекции айдишников уроков

потом менять что то используя коллекцию юзеров/учителей/etc

(;¬_¬)
29.09.2018
15:25:05
просто представь тебе сейчас нужно менять статусы по коллекции айдишников уроков
раньше я делал это так. брал таблицу в форму, а дальше уже применял действие к этой форме

да, уродливо и старо, но работает

f4rt~
29.09.2018
15:25:19
просто такие штуки дадут тебе sdl

где ты напишешь один query resolver

и он будет у тебя работать

у тебя не будет изменений по структуре принимаемых/отдаваемых данных ты всегда будешь оперировать не какими-то атомарными штуками в голове, а конкретными схемами, типами

Сергей
29.09.2018
15:26:17
Не понимаю проблемы, ну передадим мы в action список ИД-шников и обновим в цикле

Google
Игорь
29.09.2018
15:27:07
Нужно создать класс для парсинга данных, точнее правильно организовать код который я написал для парсинга данных с сайта (тематика - аниме сериалы). То что у меня было https://github.com/kiteggrad/Nanidub/blob/master/library/AnimeParser.php Суть - классу при создании передаётся ссылка. Внутри класса есть 3 основные функции: 1 - получить ссылки на все итересующие страницы с сайта, 2 - спарсить данные со страницы(получает url) эта функция вызывается в конструкторе. 3 - добавить спарсеные данные в БД Внутри класса так-же определены переменные типа $name, $author, $descriprion ... В них отправляются данные с вывода 2-й функции и берутся для 3-й Вне класса(в том же файле) определенны множество вспомогательных функций, которые используются в 3-х функцих класса В другом чате телеграмма мой подход к написанию естественно раскритиковали и дали много советов Из того что понял: - сохранение в базу данных должно происходить в модели - нужно создать отдельный класс Parser от которого будут наследоваться другие классы для парсинга аниме с разных сайтов (например AnidubParser и YummyParser) должен принимать документ в формате строки. - сделать класс обвертку http транспорта для "возможности подменить источник данных Например, не ХТТП, а из очереди данные получить, или из файла", выводит строку для класса Parser - полезно для написания тестов (как мне пояснили). - класс парсера должен возвращать объект ParsedDocument в котором определенны поля $name, $author и т.п. По итогу это всё должно выглядеть как-то так: $parser = new AnidubParser() // наследуется от Parser $animeSource = new AnimeSource(url, файл или ещё что) // класс который преобразует поступающие данные встроку для классов от Parser $parsedDocument = $parser->feed($animeSource) // скармливаем парсеру данные $anime = new Anime () // модель главной таблицы $anime->saveParsed($parsedDocument) // сохраняем спаршеное в бд Пишу сюда потому что в другом чате уже всех задолбал вопросами, а ответа правильно ли я всё понял в итоге не получил Надеюсь на вашу помощь

(;¬_¬)
29.09.2018
15:27:24
Не понимаю проблемы, ну передадим мы в action список ИД-шников и обновим в цикле
не, тут другая тема =) у него урок - ресурс. т.е. по сути restfull роуты для него и вопрос в том как красиво, а не костылями, обновить список уроков

Нужно создать класс для парсинга данных, точнее правильно организовать код который я написал для парсинга данных с сайта (тематика - аниме сериалы). То что у меня было https://github.com/kiteggrad/Nanidub/blob/master/library/AnimeParser.php Суть - классу при создании передаётся ссылка. Внутри класса есть 3 основные функции: 1 - получить ссылки на все итересующие страницы с сайта, 2 - спарсить данные со страницы(получает url) эта функция вызывается в конструкторе. 3 - добавить спарсеные данные в БД Внутри класса так-же определены переменные типа $name, $author, $descriprion ... В них отправляются данные с вывода 2-й функции и берутся для 3-й Вне класса(в том же файле) определенны множество вспомогательных функций, которые используются в 3-х функцих класса В другом чате телеграмма мой подход к написанию естественно раскритиковали и дали много советов Из того что понял: - сохранение в базу данных должно происходить в модели - нужно создать отдельный класс Parser от которого будут наследоваться другие классы для парсинга аниме с разных сайтов (например AnidubParser и YummyParser) должен принимать документ в формате строки. - сделать класс обвертку http транспорта для "возможности подменить источник данных Например, не ХТТП, а из очереди данные получить, или из файла", выводит строку для класса Parser - полезно для написания тестов (как мне пояснили). - класс парсера должен возвращать объект ParsedDocument в котором определенны поля $name, $author и т.п. По итогу это всё должно выглядеть как-то так: $parser = new AnidubParser() // наследуется от Parser $animeSource = new AnimeSource(url, файл или ещё что) // класс который преобразует поступающие данные встроку для классов от Parser $parsedDocument = $parser->feed($animeSource) // скармливаем парсеру данные $anime = new Anime () // модель главной таблицы $anime->saveParsed($parsedDocument) // сохраняем спаршеное в бд Пишу сюда потому что в другом чате уже всех задолбал вопросами, а ответа правильно ли я всё понял в итоге не получил Надеюсь на вашу помощь
вопрос-то в чем?

Игорь
29.09.2018
15:28:53
вопрос-то в чем?
В правильной организации кода

(;¬_¬)
29.09.2018
15:29:12
В правильной организации кода
в твоем сообщении всё расписано про правильную организацию кода

(;¬_¬)
29.09.2018
15:29:43
Т.е. я всё правильно понял?
ну в твоем сообщении всё неплохо расписано, как мне кажется

@oneerror подтверди

f4rt~
29.09.2018
15:30:22
не могу

мне не нрав

(;¬_¬)
29.09.2018
15:30:49
мне не нрав
значит критикуй

Игорь
29.09.2018
15:31:29
(;¬_¬)
29.09.2018
15:31:42
и Route::post('/lessons/update')
не restfull way же =)

Игорь
29.09.2018
15:31:46
мне не нрав
Можно поподробнее пожалуйста?

(;¬_¬)
29.09.2018
15:31:54
обновление происходит PUT запросами ;)

Сергей
29.09.2018
15:32:13
не restfull way же =)
Действие определённое в самом пути?

(;¬_¬)
29.09.2018
15:32:41
Действие определённое в самом пути?
https://laravel.com/docs/5.7/eloquent-resources

Google
Сергей
29.09.2018
15:34:47
https://laravel.com/docs/5.7/eloquent-resources
Пока не буду влезать в эту дискуссию, не работал с ресурсами ещё

(;¬_¬)
29.09.2018
15:35:32
Пока не буду влезать в эту дискуссию, не работал с ресурсами ещё
ну я не могу утверждать что у него именно это, но у ларки есть еще вот такое https://laravel.com/docs/5.7/controllers#resource-controllers что позволяет не сильно сложно делать rest

f4rt~
29.09.2018
15:37:24
Можно поподробнее пожалуйста?
сильная связь,инстанцирование сущностей прям в объекте,хотя бы промисы есть, не увидел ни одного генератора, useragent как и все параметры клиента можно подменить только исправив текущий код, а не заинжектив штуки извне, проебан cs, причем так сильно что аж больно, мне не нравится нейминг, не ф-ций. а классов, половина из них может меняться по некоторым причинам извне, видно в целом что ты владеешь языком, но не умеешь такие вещи структурировать и компоновать хотя бы логически; куда бесполезных иф елсе, вместо early return при цикломатической сложности, отсутствует понимание как использовать структуры данных, dto/config class

хз не могу это нормально читать

(;¬_¬)
29.09.2018
15:38:09
Я так делаю
если ты так делаешь, то знаешь же что обновление это put\patch ;)

Nioray
29.09.2018
15:38:11
Привет всем. А нужно делать в модели методы по типу get"Property" . или лучше не писать лишний код и просто к свойству обращатся.

Сергей
29.09.2018
15:38:38
если ты так делаешь, то знаешь же что обновление это put\patch ;)
Только он как-то всё равно формы через пост шлёт

(;¬_¬)
29.09.2018
15:38:57
Только он как-то всё равно формы через пост шлёт
хитрожопая магическая подмена метода при обработке.

я знаю что форма всё равно постом уйдет. не постом\гетом только жс может отправить

(;¬_¬)
29.09.2018
15:40:39
Только он как-то всё равно формы через пост шлёт
если ты еще раз почитаешь что пишут в статье про ресурс-контроллеры - то увидишь что там <form>@method('PUT')</form> например есть

(;¬_¬)
29.09.2018
15:41:02
хз не могу это нормально читать
я вообще именно про сообщение говорил, а не про гист =)

f4rt~
29.09.2018
15:41:24
ты как мин. явно можешь больше чем половина челов в этом чате, просто еще не знаешь об этом

Игорь
29.09.2018
15:41:45
главное не принимай в штыки
ни в ком случае. На правду не обижаются)

Страница 1916 из 2014