如何用Laravel包含你自己的幫助函數(shù)
很多教程都會(huì)說,你在 composer.json 這個(gè)文件中通過添加一個(gè)自動(dòng)加載的文件,就可以實(shí)現(xiàn)這個(gè)需求。但我認(rèn)為這不是一個(gè)好的方式,當(dāng)你在 helpers.php 文件中添加了更多的函數(shù)時(shí),可讀性將變得很差。
下面我將介紹一種方式,讓你可以定義很多文件,來包含不同的函數(shù)。這將讓我們的程序更加整潔和更具可讀性。
首先創(chuàng)建一個(gè) HelperServiceProvider.php 服務(wù)提供者文件:
php artisan make:provider HelperServiceProvider
使用上面命令,你將在 app\Providers 文件中生成 HelperServiceProvider.php
你可以簡(jiǎn)單的移除 boot() 方法,我們?cè)谶@兒不會(huì)使用它。
在 register() 方法中我們添加以下代碼:
public function register()
{
foreach (glob(app_path('Helpers') . '/*.php') as $file) {
require_once $file;
}
}
這個(gè)循環(huán)將會(huì)遍歷 app/Heplers 目錄下的所有文件,你可能已經(jīng)猜到了,現(xiàn)在你可以在這個(gè)目錄下隨便創(chuàng)建文件,它們將會(huì)被加載到你的應(yīng)用程序中,這些幫助函數(shù)在你的代碼的任何地方都可以被訪問(views, models, controllers...)
我們還需要加載這個(gè)服務(wù)提供者,打開 config/app.php,然后將 HelperServiceProvider 放在你的 AppServiceProvider 上面
... App\Providers\HelperServiceProvider::class, App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\BroadcastServiceProvider::class, ...
現(xiàn)在讓我們創(chuàng)建一個(gè)簡(jiǎn)單的函數(shù),在 app/Helpers 目錄中創(chuàng)建一個(gè) Carbon.php 文件,文件中包含以下代碼:
<?php
/**
* Carbon helper
*
* @param $time
* @param $tz
*
* @return Carbon\Carbon
*/
function carbon($time = null, $tz = null)
{
return new \Carbon\Carbon($time, $tz);
}
你不需要添加任何命令空間。如果你想,你可以使用 function_exists 檢測(cè)這個(gè)函數(shù)是否存在。
現(xiàn)在,你可以在應(yīng)用程序的任何你喜歡的位置使用幫助函數(shù) carbon()?,F(xiàn)在,如果您需要另一個(gè)返回特定格式的函數(shù)(僅針對(duì)本教程的用例),則可以在同一文件(Carbon.php)中輸入該函數(shù):
<?php
/**
* Carbon helper
*
* @param $time
* @param $tz
*
* @return Carbon\Carbon
*/
function carbon($time = null, $tz = null)
{
return new \Carbon\Carbon($time, $tz);
}
function carbonFormatted($time = null, $tz = null)
{
return carbon($time, $tz)->format('Y-m-d')
}
現(xiàn)在,您可以開始使用自己的PHP文件填充 app / Helpers目錄,其中包含您經(jīng)常使用的幫助程序
以上就是如何用Laravel包含你自己的幫助函數(shù)的詳細(xì)內(nèi)容,更多關(guān)于用Laravel包含你自己的幫助函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺談php(codeigniter)安全性注意事項(xiàng)
下面小編就為大家?guī)硪黄獪\談php(codeigniter)安全性注意事項(xiàng)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04
php+ajax登錄跳轉(zhuǎn)登錄實(shí)現(xiàn)思路
這篇文章主要介紹了php+ajax登錄跳轉(zhuǎn)登錄實(shí)現(xiàn)思路,非常的簡(jiǎn)單,有需要的小伙伴可以參考下2016-07-07
php的curl實(shí)現(xiàn)get和post的代碼
類似于dreamhost這類主機(jī)服務(wù)商,是顯示fopen的使用的。使用php的curl可以實(shí)現(xiàn)支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。2008-08-08
PHP中實(shí)現(xiàn)生成靜態(tài)文件的方法緩解服務(wù)器壓力
使用生成靜態(tài)文件的方法解決服務(wù)器與數(shù)據(jù)庫訪問壓力,下面有個(gè)不錯(cuò)的教程,感興趣的朋友可以參考下2014-01-01
PHP聊天室簡(jiǎn)單實(shí)現(xiàn)方法詳解
這篇文章主要介紹了PHP聊天室簡(jiǎn)單實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了php聊天室相關(guān)數(shù)據(jù)庫操作與ajax交互等操作技巧,需要的朋友可以參考下2018-12-12
使用PHP實(shí)現(xiàn)遠(yuǎn)程控制三路開關(guān)
怎樣用PHP語言實(shí)現(xiàn)遠(yuǎn)程控制三路開關(guān)呢?本文描述了使用PHP語言調(diào)用HTTP接口,實(shí)現(xiàn)控制三路開關(guān),三路開關(guān)可控制三路照明、排風(fēng)扇等電器,文中有詳細(xì)的代碼示例,需要的朋友可以參考下2024-04-04
ajax+php打造進(jìn)度條 readyState各狀態(tài)
php 打造進(jìn)度條 readyState各狀態(tài),需要的朋友可以參考下。2010-03-03
學(xué)習(xí)php設(shè)計(jì)模式 php實(shí)現(xiàn)裝飾器模式(decorator)
這篇文章主要介紹了php設(shè)計(jì)模式中的裝飾模式,使用php實(shí)現(xiàn)裝飾模式,感興趣的小伙伴們可以參考一下2015-12-12
php判斷輸入不超過mysql的varchar字段的長度范圍
varchar類型字段,如果你設(shè)置長度為10,那么不論漢字和英文都可以存10個(gè)。2011-06-06
PHP PDO函數(shù)庫(PDO Functions)
PDO是一個(gè)“數(shù)據(jù)庫訪問抽象層”,作用是統(tǒng)一各種數(shù)據(jù)庫的訪問接口,與mysql和mysqli的函數(shù)庫相比,PDO讓跨數(shù)據(jù)庫的使用更具有親和力.2009-07-07

