laravel 中创建全局函数 (类似于 TP 中 functions.php) 的方式
最近,在使用Laravel寫東西,因?yàn)榭蚣鼙旧淼脑O(shè)計(jì)理念的不同,剛從ThinPHP3切換到Laravel5,感覺還是很怪的,各種不習(xí)慣,但是一旦寫過一些代碼,發(fā)現(xiàn)Laravel真的非常好用。我一直覺得TP中的公共函數(shù)是一個很好的設(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)建一個文件,里面放置需要封裝的函數(shù)。
這里有一點(diǎn)需要說明:全局函數(shù)的實(shí)現(xiàn)是依靠在初始化的時候,將helps.php或者functions.php直接進(jìn)行了加載。而Laravel中path/bootstrap/autoload.php中可以定義在初始化的時候加載什么文件。在默認(rèn)的情況下,有以下一條加載配置:
require __DIR__.'/../vendor/autoload.php';復(fù)制代碼同樣,我們也可以加載其他的文件,比如以下的加載操作:
require __DIR__.'/../app/Common/functions.php';復(fù)制代碼這樣,我們就可以直接在這個加載的文件中直接封裝需要的函數(shù),這樣也就實(shí)現(xiàn)了我們的需要。
另外,有人還推薦了另外一種方法,就是使用一個控制器,在控制器中的類中封裝靜態(tài)的方法,在需要的地方,引入所需的控制器,也可以實(shí)現(xiàn)我們的需求。
總結(jié)
以上是生活随笔為你收集整理的laravel 中创建全局函数 (类似于 TP 中 functions.php) 的方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm调优(一)
- 下一篇: php session redis 配置