婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > laravel 事件/監(jiān)聽器實(shí)例代碼

laravel 事件/監(jiān)聽器實(shí)例代碼

熱門標(biāo)簽:西區(qū)企業(yè)怎么做地圖標(biāo)注入駐 抖音有個(gè)地圖標(biāo)注是什么意思 保定crm外呼系統(tǒng)運(yùn)營(yíng)商 海南人工外呼系統(tǒng)有效果嗎 九江外呼系統(tǒng) 七魚外呼系統(tǒng)停用嗎 智能電話機(jī)器人排名前十名南京 地下城堡2圖九地圖標(biāo)注 阿里云400電話申請(qǐng)加工單

導(dǎo)語

上一篇文章實(shí)現(xiàn)了記錄用戶訪問,設(shè)計(jì)上是有缺陷的,代碼緊耦合在中間件。如果后續(xù)修改需求,不僅記錄 ip、城市,還需要記錄數(shù)據(jù)到新的數(shù)據(jù)表,或者需要進(jìn)行其它統(tǒng)計(jì),那么不停的增加、修改代碼是不合理的。這個(gè)時(shí)候可以使用 Laravel 的事件/監(jiān)聽器進(jìn)行處理。代碼可查看 GitHub。

事件/監(jiān)聽器

Laravel 事件提供了簡(jiǎn)單的觀察者模式實(shí)現(xiàn),允許你訂閱和監(jiān)聽?wèi)?yīng)用中的事件。

觀察者模式有時(shí)也被稱作發(fā)布/訂閱模式,該模式用于為對(duì)象實(shí)現(xiàn)發(fā)布/訂閱功能:一旦主體對(duì)象狀態(tài)發(fā)生改變,與之關(guān)聯(lián)的觀察者對(duì)象會(huì)收到通知,并進(jìn)行相應(yīng)操作。

以上是事件/監(jiān)聽器、觀察者模式的簡(jiǎn)要說明。結(jié)合這次的需求理解,當(dāng)觸發(fā)用戶訪問事件,它的觀察者進(jìn)行處理。觀察者可以是多個(gè),本例僅做入庫(kù)操作。

創(chuàng)建事件/監(jiān)聽器

在 app/Providers/EventServiceProvider.php 文件中添加事件/監(jiān)聽器,如下

 /**
   * The event listener mappings for the application.
   *
   * @var array
   */
  protected $listen = [
    Registered::class => [
      SendEmailVerificationNotification::class,
    ],
    'App\Events\UserBrowse' => [
      'App\Listeners\CreateBrowseLog',
      // 其它監(jiān)聽器
    ],
  ];

添加好之后,執(zhí)行 php artisan event:generate,會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)的事件/監(jiān)聽器。分別創(chuàng)建了 app/Events/UserBrowse.php 和 app/Listeners/CreateBrowseLog.php 兩個(gè)文件。

實(shí)現(xiàn)代碼

把目光聚集到事件 app/Events/UserBrowse.php 文件,這里需要接收數(shù)據(jù)以便后續(xù)處理,代碼如下

  public $ip_addr;
  public $request_url;
  public $city_name;

  /**
   * Create a new event instance.
   *
   * @return void
   */
  public function __construct($ip_addr, $request_url, $city_name)
  {
    $this->ip_addr = $ip_addr;
    $this->request_url = $request_url;
    $this->city_name = $city_name;
  }

然后是監(jiān)聽器 app/Listeners/CreateBrowseLog.php,這里要做的是,將事件中接收到的數(shù)據(jù)進(jìn)行入庫(kù)操作,代碼如下

/**
   * Handle the event.
   *
   * @param UserBrowse $event
   * @return void
   */
  public function handle(UserBrowse $event)
  {
    $log = new \App\Models\BrowseLog();

    $log->ip_addr = $event->ip_addr;
    $log->request_url = $event->request_url;
    $log->city_name = $event->city_name;

    $log->save();
  }

分發(fā)事件

最后就是分發(fā)事件,修改 app/Http/Middleware/BrowseLog.php 中間件的代碼,修改后如下

/**
   * Handle an incoming request.
   *
   * @param \Illuminate\Http\Request $request
   * @param \Closure $next
   * @return mixed
   */
  public function handle($request, Closure $next)
  {
    // 使用事件/監(jiān)聽器入庫(kù)
    event(new UserBrowse($request->getClientIp(), $request->path(), get_city_by_ip(false, 'null')));
    
    return $next($request);
  }

測(cè)試之后是沒有問題的。

結(jié)語

這次所做的修改,感官上來看,就是將入庫(kù)操作從中間件轉(zhuǎn)移到監(jiān)聽器中,實(shí)際上的意義遠(yuǎn)不止于此。例如同一個(gè)事件,可以分發(fā)在不同的地方;事件添加了需求,只需要在添加一個(gè)監(jiān)聽器即可;監(jiān)聽器中也可以使用隊(duì)列等等。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Laravel事件監(jiān)聽器用法實(shí)例分析

標(biāo)簽:十堰 韶關(guān) 九江 涼山 昭通 梅河口 遼陽(yáng) 甘肅

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《laravel 事件/監(jiān)聽器實(shí)例代碼》,本文關(guān)鍵詞  laravel,事件,監(jiān)聽器,實(shí)例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《laravel 事件/監(jiān)聽器實(shí)例代碼》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于laravel 事件/監(jiān)聽器實(shí)例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲成人自拍网| 婷婷综合另类小说色区| 亚洲蜜桃精久久久久久久| 国产麻豆视频一区二区| 精品久久久久久久久久久久久久久久久 | 久久精品视频一区| 久久精品国产一区二区三| 欧美电视剧在线看免费| 国产成人精品一区二| 中文字幕一区在线观看视频| 在线免费观看一区| 三级不卡在线观看| 欧美哺乳videos| 国产高清视频一区| 久久免费的精品国产v∧| 国产日韩欧美电影| 一区二区三区在线影院| 国产成人福利片| 欧美精品一区二区高清在线观看| 中文字幕一区视频| 美女一区二区三区在线观看| 欧美午夜免费电影| 国产精品一区二区三区四区| 另类小说色综合网站| 日韩欧美色电影| 激情综合色播五月| 亚洲精品菠萝久久久久久久| 6080国产精品一区二区| 成人听书哪个软件好| 香蕉加勒比综合久久| 欧美激情综合网| 欧美精品久久一区二区三区| 国产69精品久久久久毛片 | 久久久天堂av| 在线看国产日韩| 成+人+亚洲+综合天堂| 精品一区二区三区不卡| 亚洲图片欧美色图| 国产欧美一区二区在线| 日韩三区在线观看| 91精品国产综合久久久久久漫画| 国产成人欧美日韩在线电影| 日本在线播放一区二区三区| 亚洲男女毛片无遮挡| 久久人人97超碰com| 日韩精品一区二区三区四区| 欧美日韩国产免费| 成人免费福利片| 美国三级日本三级久久99| 亚洲成av人影院| 亚洲小说春色综合另类电影| 国产精品久久久久久久久搜平片 | 色欧美88888久久久久久影院| 国产乱子伦一区二区三区国色天香| 亚洲成a人片在线不卡一二三区| 亚洲天堂中文字幕| 国产欧美日韩在线| 久久久不卡网国产精品二区| 91精品国产综合久久精品性色| 欧美日韩在线直播| 欧美日韩国产在线播放网站| 国产精品一区二区黑丝| 另类中文字幕网| 日韩av二区在线播放| 午夜精品爽啪视频| 青青草一区二区三区| 午夜欧美大尺度福利影院在线看| 免费av网站大全久久| 国产成人综合自拍| 日本人妖一区二区| 麻豆高清免费国产一区| 久久99这里只有精品| 久久成人免费电影| 精品在线一区二区三区| 国产九色精品成人porny | 日本视频中文字幕一区二区三区| 亚洲一二三专区| 午夜精彩视频在线观看不卡| 日韩av网站在线观看| 久久精品噜噜噜成人av农村| 激情综合网av| 91免费看视频| 6080亚洲精品一区二区| 久久综合五月天婷婷伊人| 国产精品无人区| 一区二区高清在线| 久久精品国产色蜜蜜麻豆| 国产aⅴ精品一区二区三区色成熟| 91亚洲国产成人精品一区二三| 欧美性色黄大片| 中文字幕日韩一区| 樱花影视一区二区| 麻豆专区一区二区三区四区五区| 成人精品gif动图一区| 91蝌蚪porny成人天涯| 欧美日韩中文精品| 精品国产不卡一区二区三区| 亚洲免费观看高清完整版在线观看| 五月婷婷久久综合| 99视频精品全部免费在线| 欧美一区二区福利视频| 成人欧美一区二区三区| 麻豆成人免费电影| 99热这里都是精品| 精品国产乱码久久久久久闺蜜| 国产亚洲精品bt天堂精选| 欧美三级蜜桃2在线观看| 成人欧美一区二区三区| 成人小视频在线| 日本一二三四高清不卡| 国产一区二区伦理| 国产欧美精品日韩区二区麻豆天美| 麻豆91在线播放免费| 精品视频在线免费| 精品一区二区三区免费播放| 精品久久久久久最新网址| 99久久精品费精品国产一区二区| 中文字幕一区在线观看| 六月丁香婷婷色狠狠久久| 91一区二区在线观看| 久久精品网站免费观看| 日韩福利电影在线观看| 成人性视频免费网站| 欧美精品一区二区在线播放| 免费高清在线视频一区·| 欧美日韩精品免费| 亚洲一二三四久久| 91网上在线视频| 亚洲欧美怡红院| 99r精品视频| 亚洲欧美在线视频| 91香蕉视频mp4| 亚洲欧美日韩在线不卡| 91丝袜美腿高跟国产极品老师 | 亚洲电影激情视频网站| 91麻豆国产自产在线观看| 国产精品欧美精品| av电影天堂一区二区在线观看| 久久久精品中文字幕麻豆发布| 久久国产精品色婷婷| 精品区一区二区| 国产综合久久久久久久久久久久| 精品国产91久久久久久久妲己| 国产91精品精华液一区二区三区| 国产午夜一区二区三区| 精品系列免费在线观看| 亚洲精品在线免费观看视频| 国产一区二区三区四区五区入口| 欧美精品一区二区三区一线天视频 | 91在线观看免费视频| 91美女蜜桃在线| 成人午夜激情在线| 不卡一区二区在线| 色综合天天综合| 91精品1区2区| 在线精品视频小说1| 在线综合视频播放| 国产亚洲欧美激情| 一片黄亚洲嫩模| 91亚洲精品一区二区乱码| 中文文精品字幕一区二区| 一区二区高清在线| 欧美精品乱人伦久久久久久| 精品亚洲国产成人av制服丝袜 | 久久综合五月天婷婷伊人| 国产成人三级在线观看| 亚洲欧美日韩精品久久久久| 欧美日本不卡视频| 国产一区在线看| 亚洲精品网站在线观看| 91精品黄色片免费大全| a级高清视频欧美日韩| 天堂va蜜桃一区二区三区漫画版| 久久综合九色综合欧美就去吻| 成人免费视频视频在线观看免费| 一级中文字幕一区二区| 国产亚洲欧洲997久久综合| 色婷婷久久综合| 麻豆成人在线观看| 亚洲综合色区另类av| 久久久亚洲高清| 欧美年轻男男videosbes| 成人一级黄色片| 美女视频黄频大全不卡视频在线播放 | 欧美日韩一区三区四区| 国产精品66部| 日本中文字幕不卡| 亚洲综合男人的天堂| 亚洲国产精品av| 欧美日韩成人综合天天影院| 精品亚洲成av人在线观看| 午夜不卡av在线| 伊人色综合久久天天| 国产精品美女久久久久久久网站| 欧美一二三四区在线| 欧美三级韩国三级日本三斤 | 欧美成人猛片aaaaaaa| 欧美性三三影院| 色综合久久中文字幕综合网| 成人一区在线看|