laravel中的事件与观察员

问题描述 投票:0回答:2

我对事件和观察者感到困惑。因为两者都在做同样的事情。 b / w事件和观察者有什么不同?提前致谢。

php laravel-5.2 lumen
2个回答
7
投票

观察者和事件根本不做同样的事情。

简单的区别

观察者基本上是仅在Eloquent Models上发生的预定义事件(创建记录,更新记录,删除等)。事件是通用的,不是预定义的,可以在任何地方使用,而不仅仅是在模型中。

观察员:

观察者会观察在口才中发生的特定事情,例如保存,保存,删除,删除(还有更多,但你应该明白这一点)。观察者特别与模型绑定。

事件:

事件是由程序员想要的任何动作驱动的动作。如果您想在某人加载页面时触发事件,您可以这样做。与观察者不同,事件也可以排队,并通过laravel的cron心跳运行。事件是程序员有效定义的。它们使您能够处理您不希望用户等待的操作(例如购买pod转换)

文档做得非常好,涵盖了这些。


-1
投票

好。所以,澄清事件和观察者没有做同样的事情。

什么是活动?

特定任务发生时触发事件。例如,某些模型被创建,更新,删除(这些是来自laravel的默认模型)。您可以发送/触发自定义事件以及product.likeduser.commented

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

观察者是什么?

正如名称所述,这些类观察/处理上述事件。因此,如果我们说我们想在创建用户或用户创建时做某事(这是在进入DB之前)。我们定义观察者,如果您熟悉方法方法之前和之后,您可以联系。

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

© www.soinside.com 2019 - 2024. All rights reserved.