Laravel Models 驗證套件: laravelbook/ardent

這套件是 Eloquent Model class 的擴充,可以讓你的 model 更加聰明達到自我驗證。
對於輸入資料的驗證有許多好用的 functionality, utilities and methods。

簡單來說可以帶來以下優點:

優點1:
將"驗證"從 controller 移到 model
符合 “fat models, skinny controllers” 原則。
這樣的 code 組織方式可提升專案的可讀性與維護性。

本篇也舉例,若是需求變動此時要 RESTful API for the mobile,用一般的方法會在 controller 複製出相同的程式碼,這也違反 DRY (Don’t Repeat Yourself) 原則,
較佳做法是在 model 建立 signup() 方法,同時用來處理 Web/Mobile ...等。

優點2:model auto-hydrate
表單資料自動混入,讓流程變得更簡潔。
$user = new User;
$user->first_name = Input::get('first_name');
$user->last_name = Input::get('last_name');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->save();

以下2行等同上述效果。
$user = new User;
$user->save();

field 將會自動塞入 Input object data(當然表單的輸入欄為名稱要和DB field一樣才行)

優點3.同時也有更多的 Model Hooks 擴充原本的Model Events
像是 beforeSave() 方法
常用的情境有 1.用來處理 slug。 2.password 加密處理。

優點4.Defining Relationships (the Ardent way)
這點我倒覺得還好,Eloquent 本身的關聯就挺清楚的。

Ardent 之前在Laravel專案上就有評估過是否使用(最後沒用,因為有些部分我覺得 Laravel 本身處理的就不錯)

甚至是接下來的 Laravel 5 (原本要叫4.3,但改版幅度太大索性直接跳到5 XD)做得更好。

留言

這個網誌中的熱門文章

【Eclipse】MS950轉UTF-8亂碼解決方法 中文亂碼

【PHP】兩個等於==和三個等於===有何差別?

使用 Feedly 訂閱 Ptt 的 RSS,讓手機少裝一些 App