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電腦。
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 是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')
This is an alert component
@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 穩定版。
【相關推薦:laravel影片教學】
以上是laravel的5.2和5.6版有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!