很多教程都會(huì)說(shuō),你在 composer.json 這個(gè)文件中通過(guò)添加一個(gè)自動(dòng)加載的文件,就可以實(shí)現(xiàn)這個(gè)需求。但我認(rèn)為這不是一個(gè)好的方式,當(dāng)你在 helpers.php 文件中添加了更多的函數(shù)時(shí),可讀性將變得很差。
下面我將介紹一種方式,讓你可以定義很多文件,來(lái)包含不同的函數(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ù)在你的代碼的任何地方都可以被訪問(wèn)(views, models, controllers...)
我們還需要加載這個(gè)服務(wù)提供者,打開(kāi) 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)在,您可以開(kāi)始使用自己的PHP文件填充 app / Helpers目錄,其中包含您經(jīng)常使用的幫助程序
以上就是如何用Laravel包含你自己的幫助函數(shù)的詳細(xì)內(nèi)容,更多關(guān)于用Laravel包含你自己的幫助函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
標(biāo)簽:六安 唐山 鶴崗 鷹潭 柳州 白城 遼陽(yáng) 克拉瑪依
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《如何用Laravel包含你自己的幫助函數(shù)》,本文關(guān)鍵詞 如,何用,Laravel,包含,你,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。