婷婷综合国产,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
    欧美系列在线观看| 一区二区三区日韩欧美精品| ww亚洲ww在线观看国产| 婷婷一区二区三区| 欧美日韩在线综合| 日本三级亚洲精品| 久久综合色播五月| 国产精品亚洲专一区二区三区 | 日韩中文字幕不卡| 欧美日韩美女一区二区| 亚洲综合一区二区| 精品国产电影一区二区| 不卡电影一区二区三区| 国产专区欧美精品| 波多野结衣一区二区三区| 67194成人在线观看| 日韩精品久久理论片| 日韩久久久久久| 91丨porny丨蝌蚪视频| 午夜国产精品一区| 中文字幕欧美国产| 日本国产一区二区| 日韩不卡一区二区| 久久精品亚洲一区二区三区浴池| 韩国精品主播一区二区在线观看| 国产欧美日韩激情| 51精品秘密在线观看| 北条麻妃一区二区三区| 加勒比av一区二区| 欧美日韩一区三区| 国产精品自拍一区| 美女视频黄频大全不卡视频在线播放| 中文字幕欧美日韩一区| 精品三级在线观看| 日韩精品在线网站| 在线成人小视频| 色婷婷综合久久| av一区二区三区| 欧美猛男超大videosgay| 欧美亚洲动漫另类| 成人a级免费电影| 国产激情91久久精品导航| 亚洲第一电影网| 亚洲欧洲中文日韩久久av乱码| 亚洲一区二区三区视频在线播放 | 欧美日韩电影一区| 99国产精品久久久| 色哟哟国产精品| 日韩精品一区二区三区视频 | 亚洲免费观看高清完整| 亚洲自拍偷拍麻豆| 日本美女一区二区| 成人高清在线视频| 9191成人精品久久| 久久久久久97三级| 亚洲自拍偷拍av| 国内外精品视频| 欧美精品在线一区二区| 久久香蕉国产线看观看99| 亚洲妇熟xx妇色黄| 国产精品中文欧美| 91精品国产91综合久久蜜臀| 国产清纯在线一区二区www| 日韩国产欧美视频| 91在线视频18| 综合电影一区二区三区| 国产成人精品三级麻豆| 日韩一区二区三区四区五区六区| 国产欧美日本一区二区三区| 免费观看一级特黄欧美大片| 91麻豆精品国产自产在线| 亚洲自拍偷拍欧美| 欧美私模裸体表演在线观看| 色综合久久中文综合久久97| 久久综合999| 日韩专区在线视频| 久久久噜噜噜久噜久久综合| 成人激情视频网站| 国产精品一区在线| 亚洲成a人在线观看| 国产精品美女久久久久久2018| 欧美一区二区三区电影| 欧美日韩黄视频| 91久久精品国产91性色tv| 国产1区2区3区精品美女| 国产毛片一区二区| 91色九色蝌蚪| 日韩电影免费在线看| 日韩欧美中文一区| 成人精品在线视频观看| 极品少妇一区二区| 亚洲大片免费看| 日韩精品成人一区二区三区| 亚洲欧美另类图片小说| 亚洲欧美日韩在线| 9i看片成人免费高清| 91农村精品一区二区在线| 久久久久一区二区三区四区| 精品国产污污免费网站入口 | 欧美日韩一区二区不卡| 欧美日韩国产一二三| 91精品国产aⅴ一区二区| 2014亚洲片线观看视频免费| 综合激情成人伊人| 蜜桃av一区二区| 99久久精品免费看国产| 欧美一区二区女人| 亚洲免费观看高清在线观看| 麻豆精品久久精品色综合| 91网站在线播放| 久久亚区不卡日本| 午夜a成v人精品| 色综合久久中文综合久久97| 精品国产成人在线影院 | 91福利国产成人精品照片| 99riav久久精品riav| 亚洲精品一区二区三区蜜桃下载| 亚洲免费观看高清完整版在线观看熊 | 久久先锋影音av鲁色资源网| 亚洲综合图片区| 懂色av一区二区三区免费观看| 91精品国产色综合久久ai换脸| 亚洲欧洲99久久| 色乱码一区二区三区88| 亚洲欧美激情视频在线观看一区二区三区| 蜜臀久久99精品久久久画质超高清| 在线这里只有精品| 亚洲一区二区三区四区在线观看| 91成人免费在线视频| 日韩和欧美一区二区| 91超碰这里只有精品国产| 午夜精品影院在线观看| 色婷婷综合久久久中文字幕| 国产乱码字幕精品高清av| 欧美高清dvd| 国产精品一级片| 最新国产精品久久精品| 欧美日韩国产高清一区二区三区 | 精品国产99国产精品| 午夜视频一区二区| 日韩精品在线一区| 99久久免费精品高清特色大片| 欧美一区在线视频| 成人av综合在线| 欧美一区二区三区视频免费播放| 久久精品人人做人人爽97| 亚洲一二三四在线观看| 国产一区二区中文字幕| 色综合视频一区二区三区高清| 欧美tickle裸体挠脚心vk| 777精品伊人久久久久大香线蕉| 久久综合九色综合欧美98| 午夜影院在线观看欧美| www.日韩av| 日韩毛片精品高清免费| 国产一区二区调教| 久久久一区二区三区捆绑**| 免费观看日韩av| 91.xcao| 中文字幕欧美一| 国产精品人人做人人爽人人添 | 欧美日韩综合在线免费观看| 韩国av一区二区三区四区| 国产精品久久久99| 一本一道久久a久久精品综合蜜臀| 久久奇米777| 国产麻豆成人传媒免费观看| 久久婷婷综合激情| 91丨九色porny丨蝌蚪| 亚洲四区在线观看| 色偷偷一区二区三区| 一区二区激情小说| 国产亚洲一二三区| 国产精品久久久久久久久快鸭 | 成人亚洲精品久久久久软件| 国产日韩欧美一区二区三区综合| 国产成人精品免费| 狠狠色丁香婷综合久久| 国产麻豆精品久久一二三| 久久99久久99小草精品免视看| 免费的成人av| 成人国产精品免费网站| 欧美性受xxxx| 国产亚洲综合av| 亚洲小说欧美激情另类| 久久草av在线| 91美女在线观看| 久久嫩草精品久久久久| 一区二区三区四区视频精品免费 | 午夜久久福利影院| 国产精品456露脸| 欧美群妇大交群中文字幕| 国产日产欧美一区| 久久久久久一二三区| 午夜久久久久久| 色哟哟一区二区在线观看| 国产亚洲欧美激情| 亚洲在线观看免费| 91免费精品国自产拍在线不卡| 精品三级在线观看|