前面進度太快,後面可能就有點無聊了。(望天
今天只是補充章,因為看了看Artisan指令,發現make相關挺多的,但我們目前只用過auth、controller、middleware、commend、migration跟model,所以我就想看看其他東西是什麼。
指令會在app/Mail
中生成Mailable,Mailable在Laravel 5.3後作為首選的Mail語法,另外有個語法是classic。
PHP檔中會預設一個__construct()
跟一個build()
。
__construct()
建構子在PHP中一旦被宣告就會執行,放必要執行的部分,後面幾個指令生成的檔案也會有這個建構子;build()
預期用來設定郵件要使用的View、主旨等等除了接收人之外的所有事項。
通常我們會要發郵件都是為了通知使用者特定消息,但通知消息的渠道不只有郵件。
指令會在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()
。
一個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) {
//
}
如果要測試資料庫總需要資料吧,使用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
來指定要用哪一個。