Size: a a a

2021 February 23

v

vladimir in OctoberCMS
Ростислав
А можно модель сохранить так чтобы afterSave не сработало?
Возможно стоит уйти от afterSave ?)

А так, можно костылем, по флагу пропускать )
источник

Р

Ростислав in OctoberCMS
Может что-то не так делаю.
При сохранении модели уходит запрос к апи, если там нет такой записи, то нужно взять uid из ответа и сохранить в модель
источник

Р

Ростислав in OctoberCMS
Получается 2 запроса)
источник

Р

Ростислав in OctoberCMS
vladimir
Возможно стоит уйти от afterSave ?)

А так, можно костылем, по флагу пропускать )
А как уйти? Мне нужно при сохранении модели отправлять ее данные на другой сайт
источник

v

vladimir in OctoberCMS
Ростислав
Может что-то не так делаю.
При сохранении модели уходит запрос к апи, если там нет такой записи, то нужно взять uid из ответа и сохранить в модель
Имхо такое лучше в сервис запихнуть. А то модель становится зависима от кого-то внешнего api
источник

v

vladimir in OctoberCMS
Ростислав
А как уйти? Мне нужно при сохранении модели отправлять ее данные на другой сайт
А если данные на сайт не дошли ? Выдать ошибку в модель?
источник

Р

Ростислав in OctoberCMS
vladimir
Имхо такое лучше в сервис запихнуть. А то модель становится зависима от кого-то внешнего api
Да блин никак я не дойду до "почитать что такое сервис, репозиторий и прочее"
источник

v

vladimir in OctoberCMS
Ну Тоесть я к тому, что будет если модель не дошла ?) почему бы все данные без uid не слать кроном или очередями ? Почему именно afterSave модели ?)
источник

Р

Ростислав in OctoberCMS
А что если модель не меняется допустим месяц? Типа в холостую слать?
источник

Р

Ростислав in OctoberCMS
Если не дошла - писать в лог ))
источник

v

vladimir in OctoberCMS
Ростислав
А что если модель не меняется допустим месяц? Типа в холостую слать?
Флаг добавь с попыткой отправки или со временем последней отправки во внешний API
источник

v

vladimir in OctoberCMS
И кроном его фиксируй
источник

Р

Ростислав in OctoberCMS
Не, я к тому что зачем его каждый день слать если модель не меняется?
источник

v

vladimir in OctoberCMS
Ростислав
Не, я к тому что зачем его каждый день слать если модель не меняется?
Так и не шли каждый день, сделай чтоб слались только не отправленные. Добавь флаг «отправлено 20.20.21 в 15:00» и обнуляй при обновлении модели, только не всегда, а именно когда меняются данные и необходимо отправить данные на внешний сайт. Лучше обойтись без afterSave конечно, какой-нибудь сеттер чтобы обнулял это время только когда реально надо, а не при любом использовании модели.
источник

v

vladimir in OctoberCMS
Ростислав
Не, я к тому что зачем его каждый день слать если модель не меняется?
В целом бы посмотреть логику. По хорошему данные откреплены от внешнего сайта или закреплены ?

Если закреплены то сложней, если откреплены (Тоесть не обязательно чтоб они слались на этот сайт или слались вообще), то тут надо делать уже сторонний слой отвечающий именно за синхронизацию, например, обсервер следящий за моделью и занимающийся уже логикой по подготовке данных для отправки на внешний сайт (обнулением даты синхронизации модели), обработкой на кроне и т д.

Но это если по солиду идти )) если пофиг на это, то можно оставить на afterSave, а в остальных случаях вызывать вместо save -> withoutEvents обёртку
источник

v

vladimir in OctoberCMS
В 6 ларке точно эта обертка есть, в 5.5 уже не припомню, там вроде надо костылить были диспетчером событий
источник

Р

Ростислав in OctoberCMS
vladimir
В целом бы посмотреть логику. По хорошему данные откреплены от внешнего сайта или закреплены ?

Если закреплены то сложней, если откреплены (Тоесть не обязательно чтоб они слались на этот сайт или слались вообще), то тут надо делать уже сторонний слой отвечающий именно за синхронизацию, например, обсервер следящий за моделью и занимающийся уже логикой по подготовке данных для отправки на внешний сайт (обнулением даты синхронизации модели), обработкой на кроне и т д.

Но это если по солиду идти )) если пофиг на это, то можно оставить на afterSave, а в остальных случаях вызывать вместо save -> withoutEvents обёртку
Проблема в том что я хотел сделать api правильно и т.п., но уже потратил 15 часов из 18.
Не хотелось костылить, но видимо придется.
источник

Р

Ростислав in OctoberCMS
Переделывать всё за бесплатно не очень хочется )
источник

v

vladimir in OctoberCMS
Ростислав
Проблема в том что я хотел сделать api правильно и т.п., но уже потратил 15 часов из 18.
Не хотелось костылить, но видимо придется.
Ну видимо что-то пошло не так )

Тогда если 6 лапка, то withoutEvents поможет. Если такие события нужны редко.
источник

Р

Ростислав in OctoberCMS
vladimir
В целом бы посмотреть логику. По хорошему данные откреплены от внешнего сайта или закреплены ?

Если закреплены то сложней, если откреплены (Тоесть не обязательно чтоб они слались на этот сайт или слались вообще), то тут надо делать уже сторонний слой отвечающий именно за синхронизацию, например, обсервер следящий за моделью и занимающийся уже логикой по подготовке данных для отправки на внешний сайт (обнулением даты синхронизации модели), обработкой на кроне и т д.

Но это если по солиду идти )) если пофиг на это, то можно оставить на afterSave, а в остальных случаях вызывать вместо save -> withoutEvents обёртку
И да, данные откреплены, некоторые нужно слать, другие нет
источник