iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 14
0

前面進度太快,後面可能就有點無聊了。(望天

今天只是補充章,因為看了看Artisan指令,發現make相關挺多的,但我們目前只用過auth、controller、middleware、commend、migration跟model,所以我就想看看其他東西是什麼。

make:mail

指令會在app/Mail中生成Mailable,Mailable在Laravel 5.3後作為首選的Mail語法,另外有個語法是classic。

PHP檔中會預設一個__construct()跟一個build()

__construct()建構子在PHP中一旦被宣告就會執行,放必要執行的部分,後面幾個指令生成的檔案也會有這個建構子;build()預期用來設定郵件要使用的View、主旨等等除了接收人之外的所有事項。

make:notification

通常我們會要發郵件都是為了通知使用者特定消息,但通知消息的渠道不只有郵件。

指令會在app/Notifictions下產生Notifiction類別,其中via()是設定通知的傳遞頻道,可以是Mail、SMS、Slack blablabla,預設是傳遞Mail。

如同預設給的範例(排版改過,原版的大括號是換行的!!!!!):

public function via($notifiable){
    return ['mail'];
}
public function toMail($notifiable){
    return (new MailMessage)
                ->line('The introduction to the notification.')
                ->action('Notification Action', url('/'))
                ->line('Thank you for using our application!');
}

via()指定要發怎麼樣的通知,就要配備相應的toWhat()

make:event & make:listener

一個Event配一個Listener,各自被放在app/Events目錄跟app/Listeners目錄下。

Event的產生沒什麼好講,都一樣啦。不過Listener有差,我們可以先產生Listener再幫它配個Event監聽,也可以再產生的時候就配好。

這是沒有指定Event的原始檔案:

/**
 * Handle the event.
 *
 * @param  object  $event
 * @return void
 */
public function handle($event) {
    //
}

如果把產生Listener的語法改為

php artisan make:listener NewEventListener2 --event=NewEvent

產生的檔案季會變成這樣:

/**
 * Handle the event.
 *
 * @param  NewEvent  $event
 * @return void
 */
public function handle(NewEvent $event) {
    //
}

make:seeder

如果要測試資料庫總需要資料吧,使用seed可以快速偽造出一些資料到資料庫裡供測試用。指令產生的檔案會在database/seeds中。

<?php

use Illuminate\Database\Seeder;

class CatTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}

新生成的檔案非常簡單,只提供一個run()方法,搭配資料庫查詢。要使用時就用:

php artisan db:seed

這個指令預設使用Laravel內建的DatabaseSeeder.php檔案,也可以在後面加上--class=SeederName來指定要用哪一個。


上一篇
D13 Middleware
下一篇
D15 Laravel的Test
系列文
來用Laravel做點什麼吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言