<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 事件系統 事件提供了一個簡單的觀察者實現,能夠訂閱和監聽應用中發生的各種事件。事件類通常存放在`app/Events`目錄下,而這些事件類的監聽器則存放在`app/Listeners`目錄下。 事件系統為應用各個方面的解耦提供了非常棒的方法,因為單個事件可以擁有多個互不依賴的監聽器。舉個例子,你可能希望每次訂單發貨時向用戶推送一個 Slack 通知。你可以簡單地發起一個可以被監聽器接收并轉化為 Slack 通知的`OrderShipped`事件,而不是將訂單處理代碼和 Slack 通知代碼耦合在一起。 事件定義: ```php namespace App\Events; /** * 訂單支付成功 * * Class OrderPaySuccessEvent * @package App\Events */ class OrderPaySuccessEvent extends Event { protected $name = 'order.pay.success.action'; public $order; public function __construct($order = []) { $this->order = $order; } } ``` 監聽器定義: ```php namespace App\Listeners; use App\Events\OrderPaySuccessEvent; /** * 支付異步通知 * Class PayAsyncNotifyListener * * @package App\Listeners */ class PayAsyncNotifyListener { /** * Create the event listener. * * @return void */ public function __construct() { } /** * 執行事件 * * @param OrderPaySuccessEvent $event * * @throws \Fend_Exception */ public function handle( OrderPaySuccessEvent $event ) { $order = $event->order; // 業務邏輯代碼... } } ``` 邏輯處理寫在 `handle` 方法即可。 事件與監聽器的配置在`app\Providers\EventServiceProvider.php` 文件。 具體示例: ```php namespace App\Providers; use App\Events\Event; use App\Fend\ServiceProvider; class EventServiceProvider extends ServiceProvider { /** * 應用程序的事件監聽器映射 * * @var array */ protected $listen = [ // 商品下單完成事件 // OrderCreateCompleteEvent::class => [ // AppOrderCreateCompleteListener::class, // WechatOrderCreateCompleteListener::class, // ], // 示例事件 'example.action' => [ \App\Listeners\ExampleListener::class, \App\Listeners\WangleleListener::class, ], // 訂單創建成功 'order.create.complete.action' => [ ], // 訂單支付成功通知 'order.pay.success.action' => [ \App\Listeners\PowerAddListener::class, \App\Listeners\GiftReceiveListener::class, \App\Listeners\PayAsyncNotifyListener::class, // 異步通知監聽器放在最后 ], // 訂單退款成功通知 'order.refund.success.action' => [ \App\Listeners\PowerRemoveListener::class, ], // 兌換卡激活成功通知 'rechargecard.actived.action' => [ \App\Listeners\RechargeCard\RechargeListener::class, \App\Listeners\RechargeCard\SendGiftListener::class, ], // 學習卡激活成功通知 'studycard.actived.action' => [ \App\Listeners\StudyCard\RechargeListener::class, \App\Listeners\StudyCard\SendGiftListener::class, \App\Listeners\StudyCard\ActivityListener::class, ], ]; /** * The subscriber classes to register. * * @var array */ protected $subscribe = []; /** * Register the application's event listeners. * * @return void */ public function boot() { $events = $this->app['events']; foreach ($this->listen as $event => $listeners) { foreach ($listeners as $listener) { $events->addListener($event, [new $listener, 'handle']); } } foreach ($this->subscribe as $subscriber) { $events->addSubscriber($subscriber); } } /** * {@inheritdoc} */ public function register() { // } /** * Get the events and handlers. * * @return array */ public function listens() { return $this->listen; } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看