在本文中,我们将探讨Laravel事件管理的基础知识。我们还将创建一个自定义事件和侦听器的现实世界示例。
> Laravel中事件的概念基于非常流行的软件设计模式 - 观察者模式。在这种模式下,系统会在发生某些事情时提出事件,您可以定义听取这些事件并做出相应反应的听众。这是一个非常有用的功能,使您可以将组件在系统中解除否则会导致紧密耦合代码的组件。因此,它使他们能够对此登录事件做出反应,无论是要发送电子邮件还是应用程序内通知,还是想对此登录事件做出反应的任何事物。
>事件的基础知识和听众
>同样,Laravel提供了一个内置的 类,使我们能够为应用程序定义了everter mappings for Application for Application。 > app/provist/experterviceProvider.phpfile。 >让我们仔细查看登录 当然,您需要定义Artisan >> >
>应该已经在app/event/events/clearcache.php app/listerers/thampcache.php 助手函数,用于从应用程序中的任何地方提出事件。当事件提出时,Laravel调用所有听众听那个特定事件的听众。因此,<?php<br><br>namespace App\Providers;<br><br>use Illuminate\Auth\Events\Registered;<br>use Illuminate\Auth\Listeners\SendEmailVerificationNotification;<br>use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;<br>use Illuminate\Support\Facades\Event;<br><br>class EventServiceProvider extends ServiceProvider<br>{<br> /**<br> * The event listener mappings for the application.<br> *<br> * @var array<br> */<br> protected $listen = [<br> Registered::class => [<br> SendEmailVerificationNotification::class,<br> ],<br> ];<br><br> /**<br> * Register any events for your application.<br> *<br> * @return void<br> */<br> public function boot()<br> {<br> parent::boot();<br><br> //<br> }<br>}<br>
php artisan event:generate<br>
php artisan event:generate<br>
<?php<br><br>namespace App\Events;<br><br>use Illuminate\Broadcasting\Channel;<br>use Illuminate\Broadcasting\InteractsWithSockets;<br>use Illuminate\Broadcasting\PresenceChannel;<br>use Illuminate\Broadcasting\PrivateChannel;<br>use Illuminate\Contracts\Broadcasting\ShouldBroadcast;<br>use Illuminate\Foundation\Events\Dispatchable;<br>use Illuminate\Queue\SerializesModels;<br><br>class ClearCache<br>{<br> use Dispatchable, InteractsWithSockets, SerializesModels;<br><br> public $cache_keys = [];<br><br> /**<br> * Create a new event instance.<br> *<br> * @return void<br> */<br> public function __construct(Array $cache_keys)<br> {<br> $this->cache_keys = $cache_keys;<br> }<br><br> /**<br> * Get the channels the event should broadcast on.<br> *<br> * @return \Illuminate\Broadcasting\Channel|array<br> */<br> public function broadcastOn()<br> {<br> return new PrivateChannel('channel-name');<br> }<br>}<br>
AppListenersWarmUpCache
。这是:AppEventsClearCache
handle
AppListenersWarmUpCache
handle
applistenerswarmupcache>从控制器提出事件时,请调用<code> applistenerswarmupcache 侦听器。剩下的是要热身缓存已清除的缓存!>,这就是您可以在应用程序中创建自定义事件并与之合作的方式。><h2>什么是事件订阅者?</h2>
<p>>事件订阅者允许您在一个地方订阅多个事件听众。无论您是要逻辑上的事件听众还是要在一个地方包含成长的事件,都是您要寻找的事件订阅者。 </p>方法的第一个参数是<p>类的实例,您可以使用</p>>方法来与听众绑定事件。<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php<br><br>namespace App\Providers;<br><br>use Illuminate\Auth\Events\Registered;<br>use Illuminate\Auth\Listeners\SendEmailVerificationNotification;<br>use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;<br>use Illuminate\Support\Facades\Event;<br><br>class EventServiceProvider extends ServiceProvider<br>{<br> /**<br> * The event listener mappings for the application.<br> *<br> * @var array<br> */<br> protected $listen = [<br> Registered::class => [<br> SendEmailVerificationNotification::class,<br> ],<br> ];<br><br> /**<br> * Register any events for your application.<br> *<br> * @return void<br> */<br> public function boot()<br> {<br> parent::boot();<br><br> //<br> }<br>}<br></pre><div class="contentsignin">登录后复制</div></div><div class="contentsignin">登录后复制</div></div>><p>><code>subscribe
subscribe
IlluminateEventsDispatcher
>>方法的第一个参数是您想要收听的事件,第二个参数是一个侦听器,当事件被启动时,可以召集cmirer。本身。listen
属性下的“
>$subscribe
>
php artisan event:generate<br>
以上是Laravel的定制活动的详细内容。更多信息请关注PHP中文网其他相关文章!