New in Laravel 5.5 Notes
- 參考來源:https://laracasts.com
- Laravel v5.5.0 released this on 6 Sep, 2017.
01 Whoops
- 以前被拿掉,現在裝回來的東西
- 一個Debug工具
- https://github.com/filp/whoops
02 Streamlined Request Validation
- 新增了CSRF過期的頁面,忘了加CSRF的話也會出現
- Syntactic sugar for validate
|
|
03 Fresh Migrations
- php artisan migrate:fresh
- Drop all tables and migrate
- 以前的migrate:refresh是rollback all and migrate
04 Frontend Presets
- 剛開專案時,幫你快速建構前端scaffolding或刪掉
- php artisan preset
- php artisan preset none
- php artisan preset bootstrap
- php artisan preset vue
- php artisan preset react
- 想看更多請到:/vendor/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php
05 Automatic Package Discovery
- 現在安裝套件可以直接在composer.json加上需要的
- 以前的話要到config註冊
06 Faster Email Layout Testing
- obj可以implements Renderable
- 裡面的render()就可以return一些字串
- 就可以在瀏覽器上預覽你的信件
07 Silky Smooth Custom Validation Rules
- 需要Valication的Rule太多,不想重複寫。
- 新指令:php artisan make:rule
- 產生一個php檔在/app/Rules/
- 到:/vendor/laravel/framework/src/Illuminate/Contracts/Validation/Rule.php 看要實作啥
- 需要實作passes(), message()
|
|
08 Collection Dumping
- 以前用 dd()(die and dump) 只能處理完再dd
- 現在可以在Collection object上使用dump()
- ex: $posts->dump();
- 目的是例如想在處理函示前斷掉:$posts->shuffle()->dump()->sort()>dump(); 會顯示2次dump的結果
09 Model Factory Generation
- 新指令:php artisan make:factory
- 比以前更懶的意思,現在可以根據model自動生成factories
- 一樣在 /database/factories/
.php
10 Custom Blade “If” Directives
- 把在view中的if條件式變成blade file
- 失敗時記得先清掉view cache, php artisan view:clear
|
|
11 What’s New in Laravel Mix
- Please Deposit a Quarter…
12 Auto-Registering Artisan Commands
- 現在生成新的artisan command不用再到/app/Console/Kernel.php註冊了
- 直接改生成檔案的建構子
13 Higher Order Tap
- 更改了tap() 新增了 HigherOrderTapProxy.php
|
|
14 The RefreshDatabase Trait
- 以前,use Illuminate\Foundation\Testing\DatabaseMigrations; 可以讓你run test之前刷新資料表
- 現在有一個新的 use Illuminate\Foundation\Testing\RefreshDatabase;
- phpunit.xml可以新增env參數 決定要哪種refresh.
15 New Blade Directives
- 10之前介紹過可以自己新增blade語法
- 後來又預設加了這些
|
|
16 Route Helpers
|
|
17 Toggle Exception Handling Within Your Tests
- 有時候想略過Excepttion時使用
- 新語法!
- 在測試時,$this->withoutExceptionHandling();,很有用。
18 Cleaner Exception Rendering
|
|
19 Optional Objects
- Optional.php
- 有時候null obj我們還試著存取其中的attribute就會出錯
- $user->profile->location; // 會得到 PHP error: non-object
- 這時候用 optional($user->profile)->location;
- 就只會回傳 null !!!
- 原理是optional()會檢查傳進的值是否為obj
20 API Resources
- 想做API時用
- 也可以不用
- 以前在controller裡面override toArray() 讓你變json很方便
- 新指令 php artisan make:resource
- 會新增/app/Http/Resources/
.php - 現在可以
- return new
Resource($obj); - 也有toArray()
- 還可以在resource裡面決定要return的欄位,就不用再model那邊麻煩設了
- 另外還有這種 用在需要一堆資料return collection時
- return new
Resource::collection($obj); - 詳見:Illuminate\Http\Resources\Json\ResourceCollection