События против наблюдателей в Laravel - PullRequest
0 голосов
/ 14 ноября 2018

Я действительно запутался с событиями и наблюдателями. потому что оба делают одни и те же вещи. Чем отличаются ч / б события и наблюдатели? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Наблюдатели и события совсем не делают одно и то же.

Простая разница

Наблюдатели - это в основном предопределенные события, которые происходят только в Eloquent Models (создание записи, обновление записи, удаление и т. Д.). События являются общими, не предопределены и могут использоваться где угодно, а не только в моделях.

Наблюдатели:

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

События:

События - это действия, которые управляются тем, что хочет программист. Если вы хотите запустить событие, когда кто-то загружает страницу, вы можете это сделать. В отличие от наблюдателей, события также могут быть в очереди и проходить через сердечный ритм Ларавелла. События программиста определены эффективно. Они дают вам возможность обрабатывать действия, которые вы не хотели бы, чтобы пользователь ждал (например, покупка актерского состава)

Документация очень хорошо справляется с этим.

0 голосов
/ 14 ноября 2018

OK. Итак, проясните одно: События и Наблюдатели не делают одно и то же.

Что такое событие?

Событие запускается при выполнении конкретной задачи. Например, какая-то модель создается, обновляется, удаляется (это модели по умолчанию из laravel). Вы также можете отправлять / запускать свои собственные события product.liked или user.commented.

https://laravel.com/docs/5.7/events#defining-events

Кто такие наблюдатели?

Как следует из названия, эти классы наблюдают / обрабатывают вышеупомянутые события. Так что, если мы скажем мы хотим сделать что-то, когда пользователь создан или пользователь создает (это перед записью в БД). Мы определяем наблюдателей, и если вы знакомы с методологией до и после методов, вы можете связать их.

https://laravel.com/docs/5.7/eloquent#observers

...