laravel創(chuàng)建類似ThinPHP中functions.php的全局函數(shù)
前言
一直覺得ThinPHP中的公共函數(shù)是一個(gè)很好的設(shè)計(jì),因?yàn)槲覀冎恍枰趂unctions.php中對共用的函數(shù)進(jìn)行封裝,然后就可以在全局直接進(jìn)行調(diào)用了。其實(shí)Laravel中也有類似的功能的,比如說助手函數(shù),類似于session()等函數(shù),這些助手函數(shù)也是全局可以調(diào)用的,非常的方便。
下面總結(jié)一下,兩者之間的差別以及相同點(diǎn)。
TP3系列中functions.php文件默認(rèn)其實(shí)是空文件,很好找。我們可以直接封裝代碼。
Laravel5系列中的path/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php 。該文件中封裝的函數(shù)就是全局函數(shù),可以在任意區(qū)域進(jìn)行調(diào)用。
但是,Laravel中的helper.php中已經(jīng)封裝好了很多的內(nèi)置助手函數(shù),一般不建議直接在該文件中進(jìn)行自己函數(shù)的封裝,而是采用新創(chuàng)建一個(gè)文件,里面放置需要封裝的函數(shù)。
這里有一點(diǎn)需要說明:全局函數(shù)的實(shí)現(xiàn)是依靠在初始化的時(shí)候,將helps.php或者functions.php直接進(jìn)行了加載。而Laravel中path/bootstrap/autoload.php中可以定義在初始化的時(shí)候加載什么文件。
在默認(rèn)的情況下,有以下一條加載配置:
require __DIR__.'/../vendor/autoload.php';
同樣,我們也可以加載其他的文件,比如以下的加載操作:
require __DIR__.'/../app/Common/functions.php';
這樣,我們就可以直接在這個(gè)加載的文件中直接封裝需要的函數(shù),這樣也就實(shí)現(xiàn)了我們的需要。
另外,有人還推薦了另外一種方法,就是使用一個(gè)控制器,在控制器中的類中封裝靜態(tài)的方法,在需要的地方,引入所需的控制器,也可以實(shí)現(xiàn)我們的需求。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者使用laravel能有一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
在php中實(shí)現(xiàn)限流ip次數(shù)以及允許部分ip訪問的代碼示例
這篇文章給大家介紹了如何在php中實(shí)現(xiàn)限流ip次數(shù)以及允許部分ip訪問,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12
Php output buffering緩存及程序緩存深入解析
在php中有時(shí)為了控制程序的輸出顯示順序,提供了output buffering緩存(php自身緩存機(jī)制)。若Ob緩存開啟,需要輸出的就先存在ob緩存里,再到程序緩存里。若沒有開啟,則直接進(jìn)入程序緩存,程序執(zhí)行完畢,按照順序從程序緩存里輸出2013-07-07
php array_unique之后json_encode需要注意
php array_unique之后json_encode需要注意的地方,需要的朋友可以參考下。2011-01-01
PHP實(shí)現(xiàn)十進(jìn)制數(shù)字與二十六進(jìn)制字母串相互轉(zhuǎn)換操作示例
這篇文章主要介紹了PHP實(shí)現(xiàn)十進(jìn)制數(shù)字與二十六進(jìn)制字母串相互轉(zhuǎn)換操作,涉及php字符串遍歷、轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2018-08-08

