首頁 > php框架 > Laravel > Laravel 如何包含自己的助手函數?

Laravel 如何包含自己的助手函數?

Guanhui
發布: 2020-06-24 18:00:39
轉載
2893 人瀏覽過

Laravel 如何包含自己的助手函數?

##許多教學課程時想要說,您在

composer.json許多教學課程》都會說,您在 composer.json

很多教學檔案,就可以實現這個需求。但我認為這不是一個好的方式,當你在

helpers.php

檔案中添加了更多的函數時,可讀性將變得很差。

下面我將介紹一種方式,讓你可以定義很多文件,來包含不同的函數。這將讓我們的程式更加整潔和更具可讀性。

我們開始吧先建立一個HelperServiceProvider.php 服務提供者檔案:

php artisan make:provider HelperServiceProvider
登入後複製
使用上面指令,你會在

app \Providers 檔案中產生HelperServiceProvider.php

你可以簡單的移除boot()

方法,我們在這裡不會使用它。

register()

方法中我們加入以下程式碼:

public function register(){
    foreach (glob(app_path('Helpers') . '/*.php') as $file) {
        require_once $file;
    }}
登入後複製
這個循環將會遍歷app/Helpers 目錄下的所有文件,你可能已經猜到了,現在你可以在這個目錄下隨便創建文件,它們將會被加載到你的應用程序中,這些幫助函數在你的代碼的任何地方都可以被訪問(views, models, controllers… )我們還需要載入這個服務提供者,打開config/app.php,然後將

HelperServiceProvider 放在你的AppServiceProvider 上面

...App\Providers\HelperServiceProvider::class,App\Providers\AppServiceProvider::class,App\Providers\AuthServiceProvider::class,App\Providers\BroadcastServiceProvider::class,...
登入後複製
現在讓我們建立一個簡單的函數,在

app/Helpers 目錄中建立一個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

來偵測這個函數是否存在。

現在,你可以在應用程式的任何你喜歡的位置使用幫助函數
carbon()

。現在,如果您需要另一個傳回特定格式的函數(僅針對本教學的用例),則可以在相同檔案(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 carbonFormatted($time = null, $tz = null){
    return carbon($time, $tz)->format('Y-m-d')}
登入後複製
好的!現在,您可以開始使用自己的PHP檔案填充app / Helpers目錄,其中包含您經常使用的幫助程式 

注意:請記住,我是荷蘭人,英語不是我的母語,因此本文可能包含一些語法錯誤。

######推薦教學:《###Laravel教學###》###

以上是Laravel 如何包含自己的助手函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:learnku.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板