laravel的5.2和5.6版本的區別:1、5.6版本的所有前端腳手架和Vue組件實例全部基于“bootstrap 4”,并且默認搭配了“Bootstrap 4”穩定版,而5.2版本實例沒有基于“Bootstrap 4”并且也不是默認版本;2、5.6版本的日志配置文件是“config/Logging.php”,5.2版本的日志配置文件是“config/app.php”。
本文操作環境:Windows10系統、Laravel5.6&&laravel5.2版、Dell G3電腦。
laravel的5.2和5.6版本有什么區別
5.2版本增加
六個月的 bug 修復和一年的安全修復支持
1.多認證驅動支持
2.隱式模型綁定
3.簡化 Eloquent 全局作用域
4.可選擇的認證腳手架
5.中間件組
6.訪問頻率限制
7.數組輸入驗證優化
5.6版本增加
1.日志系統、
2.單機任務調度
3.模型序列化優化
4.Eloquent 日期格式化優化
5.動態頻率限制
6.廣播頻道類
7.API 資源控制器生成
8.Blade 組件別名
9.Argon2 密碼哈希支持
9.引入 Collision 擴展包
所有的前端腳手架代碼都已升級到 Bootstrap 4,Laravel 底層使用的 symfony 組件都已升級到 Symfony ~4.0 版本。
具體區別如下:
改進日志
Laravel 5.6 版本中最重要的特性就是日志功能的改進。對于 Laravel 新手請注意,Laravel 5.6 的日志配置文件從 config/app.php 變更到了 config/logging.php。
你可以通過配置 stack 從而將日志發送到不同的處理器中。例如,你可能需要將 debug 日志發送到 system log,而 Error 日志發送到 slack。
關于配置和定制日志的更多信息請參考日志相關的文檔。
單服務器任務調度
如果你在多臺服務器上都運行著任務調度器,那么你所發出的任務就會在每臺服務器上執行。通過 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 是 AppUser 模型(model)的一個屬性(Attribute),用于確定某時間段內允許的請求次數。
廣播頻道(Broadcast channel) 類
現在可以在 routes/channels.php 文件中使用 channel 類了。
Laravel 5.6 提供了一個新的 make:channel 命令用于輔助生成一個新的 channel 類:php artisan make:channel OrderChannel
在 routes/channels.php 文件中注冊 channel 類就像下面這樣簡單:
use?AppBroadcastingOrderChannel; 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’)
this is an alert component
@endcomponent
Argon2 密碼哈希
Laravel 5.6 針對 PHP 7.2+ 支持新的散哈希法。你可以在 config/hashing.php 配置文件中指定默認使用的哈希算法。
UUID 方法
IlluminateSupportStr 類中新增了兩個方法用于生成 UUID(Universal Unique Identifiers):
//?The?methods?return?a?RamseyUuidUuid?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 穩定版。
【相關推薦:laravel視頻教程】