CodeIgniter 1.7.0 更新

CodeIgniter 在 10/23 釋出了 1.7.0 版本, 來列出一些我覺得比較重要的改變好了, 詳細的改變還是請看 Changelog

1. 新增 formvalidation library
這個版本最主要的就是新增了一個 form
validation 的 library 用來取代舊有的 validation library, 而 validation library 也在 1.7.0 開始被列為 deprecated。 ( 應該翻做不建議使用? ) anyway, validation library 的文件也已經從 user guide 移除了, 不過 validation 依然可用, 只是得找時間換成 form_validation 就是了。

看了一下 form_validation 的文件, 這次的更新, 大幅降低了以往 validation 囉唆使用的方式, 改成了跟 kohana 2.1 時的 validation 類似的方式, 簡單許多, 很不賴。

以往的 validation 真的是是很囉唆, 像是這樣

$rules['name'] = 'required|alpha_numeric|max_length[20]';
$rules['email'] = 'required|valid_email';
$rules['web'] = 'required|prep_url';
$this->validation->set_rules($rules);<p>$fields['name'] = '名稱';
$fields['email'] = 'email';
$fields['web'] = '網站';
$this->validation->set_fields($fields);</p>```

現在簡化許多, 變成是

$this->formvalidation->setrules('name', '名稱', 'required|alphanumeric|maxlength[20]'); $this->formvalidation->setrules('email', 'email', 'required|validemail'); $this->formvalidation->setrules('web', '網站', 'required|prepurl');```

不像以往是把 setrules 跟 setfields 分開作, 現在在 setrules 直接一起把 setfields 的部份做掉了, 寫起來輕鬆許多。

2. 可另外指定 library 載入後的物件名稱
以往, 原本 library 的 class name 叫什麼, 在使用的時候就得用 class name 來使用, 沒有辦法另外指定比較短的名稱來方便使用, 以 simplepie 來說:

$this->load->library('simplepie');
$this->simeplepie->function_name();```

從 1.7.0 之後就可以這樣:

$this->load->library('simplepie', '', 'sp'); $this->sp->function_name();```

這樣感覺還不錯 :D 不過以上只是舉例, 我還是依舊用 simplepie 這個名稱 XD

tzangms

Read more posts by this author.

Subscribe to Oceanic / 海海人生

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!