
Laravel 5.6 是繼 5.5 之后 Laravel 官方發布的最新版本。此版本包含眾多新特性,接下來我們說一說幾個重要的特性。如需查看完成的發布日志,請點擊[這里](https://github.com/laravel/framework/blob/5.6/CHANGELOG-5.6.md)。
## 改進日志
Laravel 5.6 版本中最重要的特性就是日志功能的改進。對于 Laravel 新手請注意,Laravel 5.6 的日志配置文件從?`config/app.php`?變更到了?`config/logging.php`。
你可以通過配置?`stack`?從而將日志發送到不同的處理器中。例如,你可能需要將 debug 日志發送到 system log,而 error 日志發送到 slack。
關于配置和定制日志的更多信息請參考[日志相關的文檔](http://www.hmoore.net/tonyyu/laravel_5_6/786183)。
## 單服務器任務調度
如果你在多臺服務器上都運行著任務調度器,那么你所發出的任務就會在每臺服務器上執行。通過?`onOneServer()`?方法可以指定任務具體運行在哪一臺服務器上。
~~~
$schedule->command('report:generate')
->fridays()
->at('17:00')
->onOneServer();
~~~
注意:在 Laravel 5.6 版本中必須使用?`memcached`?或?`redis`?緩存驅動作為默認緩存驅動才能獲得單服務器任務調度的優勢。
## 動態限速
Laravel 5.6 引入了動態限速功能,為你帶來更多彈性的同時也讓針對單個用戶的限速更簡單:
~~~
Route::middleware('auth:api', 'throttle:rate_limit,1')
->group(function () {
Route::get('/user', function () {
//
});
});
~~~
上述實例中,`rate_limit`?是?`App\User`?模型(model)的一個屬性(attribute),用于確定某時間段內允許的請求次數。
## 廣播頻道(Broadcast Channel) 類
現在可以在?`routes/channels.php`?文件中使用 channel 類了。
Laravel 5.6 提供了一個新的?`make:channel`?命令用于輔助生成一個新的 channel 類:
~~~
php artisan make:channel OrderChannel
~~~
在?`routes/channels.php`?文件中注冊 channel 類就像下面這樣簡單:
~~~
use App\Broadcasting\OrderChannel;
Broadcast::channel('order.{order}', OrderChannel::class);
~~~
## 生成 API 控制器(Controller)
現在你可以為無需?`create`?和?`edit`?方法的 API 生成一個資源控制器,這一便利途徑僅僅針對返回 HTML 的資源控制器。在命令行末尾添加?`--api`?參數即可生成資源控制器:
~~~
php artisan make:controller API/PhotoController --api
~~~
## Eloquent 日期格式
在 Laravel 5.6 中可以分別為 Eloquent date 和 datetime 指定格式了:
~~~
protected $casts = [
'birthday' => 'date:Y-m-d',
'joined_at' => 'datetime:Y-m-d H:00',
];
~~~
此格式用于將模型(model)序列化為數組或 JSON 數據。
## Blade 組件別名
在 Laravel 5.6 中你可以為 blade 組件創建別名以方便引用。例如,如果你在?`resources/views/components/alert.blade.php`?文件中保存了一個 blade 組件,你就可以利用?`component()`?方法為其創建一個更短的別名:
~~~
Blade::component('components.alert', 'alert');
~~~
然后你就可以通過別名引用此組件并輸出了:
~~~
@component('alert')
<p>This is an alert component</p>
@endcomponent
~~~
## Argon2 密碼哈希
Laravel 5.6 針對 PHP 7.2+ 支持新的散哈希法。你可以在?`config/hashing.php`?配置文件中指定默認使用的哈希算法。
## UUID 方法
`Illuminate\Support\Str`?類中新增了兩個方法用于生成 UUID(Universal Unique Identifiers):
~~~
// The methods return a Ramsey\Uuid\Uuid object
return (string) Str::uuid();
return (string) Str::orderedUuid();
~~~
The?`orderedUuid()`?方法用于生成一個時間戳開頭的 UUID 便于更有效的數據庫索引。
## Collision 美化錯誤報告
我們最近開發了 Collision 包并將其作為 Laravel 5.6 的開發依賴(dev dependency)。Collision 能夠提供美觀的錯誤報告并輸出到控制臺。截圖如下:

## Bootstrap 4
所有前端腳手架和 Vue 組件實例全部基于 Bootstrap 4 了。從 Bootstrap 4 beta 版本開始我們就已經跟進了,甚至創建了 Bootstrap 4 Laravel preset。現在,Laravel 5.6 默認搭配了?[Bootstrap 4 穩定版](https://v4.bootcss.com/)。
## 了解更多 Laravel 5.6 相關信息
如需將你的項目升級到 Larvel v5.6 ,請參考[升級指南](http://www.hmoore.net/tonyyu/laravel_5_6/786047)。Laravel 一直努力降低主版本升級的復雜度。從 5.5 升級到 5.6 大約需要 10-30 分鐘,當然也要看你的項目的復雜度了。
- 前言
- 翻譯說明
- 發行說明
- 升級指南
- 貢獻導引
- 入門指南
- 安裝
- 配置信息
- 文件夾結構
- Homestead
- Valet
- 部署
- 核心架構
- 請求周期
- 服務容器
- 服務提供者
- Facades
- Contracts
- 基礎功能
- 路由
- 中間件
- CSRF 保護
- 控制器
- 請求
- 響應
- 視圖
- URL
- Session
- 表單驗證
- 錯誤
- 日志
- 前端開發
- Blade 模板
- 本地化
- 前端指南
- 編輯資源 Mix
- 安全相關
- 用戶認證
- Passport OAuth 認證
- 用戶授權
- 加密解密
- 哈希
- 重置密碼
- 綜合話題
- Artisan 命令行
- 廣播系統
- 緩存系統
- 集合
- 事件系統
- 文件存儲
- 輔助函數
- 郵件發送
- 消息通知
- 擴展包開發
- 隊列
- 任務調度
- 數據庫
- 快速入門
- 查詢構造器
- 分頁
- 數據庫遷移
- 數據填充
- Redis
- Eloquent ORM
- 快速入門
- 模型關聯
- Eloquent 集合
- 修改器
- API 資源
- 序列化
- 測試相關
- 快速入門
- HTTP 測試
- 瀏覽器測試 Dusk
- 數據庫測試
- 測試模擬器
- 官方擴展包
- Cashier 交易工具包
- Envoy 部署工具
- Horizon
- Scout 全文搜索
- Socialite 社會化登錄