CodeIgniter中helper與library的差異

前言

最近使用CodeIgniter開發時,

發現不同controller中會用到同一支function,

難道每個controller都要加入這支function嗎──

當然不是。

本文

CodeIgniter中有兩項功能的性質讓我覺得很像:

就是標題中的helper與library,

檔案內容都是function,

也都是在load之後即可在各個controller中共用;

之間的界線其實有點模糊,

看起來library能做的,helper也都做得到。

差異

helper本身其實比較不具物件的特性,

像前言提到的狀況,

也許還有很多function需要放在不同controller中,

但function之間可能不會有任何關聯。

library則是以物件的形式呈現,

它本身就是class,裡面的內容彼此環環相扣,

所有內容具有針對性,都是為了同一個需求而生。

結語

前言提到的function可能會是字串處理,

或是數字篩選……諸如此類的小工具,

對我而言,這些function之間沒甚麼關聯,

也是針對不同的需求而生,

或許有人會寫一支小工具class來解決,

但在CodeIgniter中,這種小工具更適合放在helper。

有什麼想法嗎?快來跟大家分享你的看法。