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

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

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

很多教程都會說,你在 composer.json 這個文件中通過添加一個自動加載的文件,就可以實現這個需求。但我認為這不是一個好的方式,當你在 helpers.php 文件中添加了更多的函數時,可讀性將變得很差。

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

我們開始吧

首先創建一個 HelperServiceProvider.php 服務提供者文件:

php artisan make:provider HelperServiceProvider

使用上面命令,你將在 appProviders 文件中生成 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 上面

...AppProvidersHelperServiceProvider::class,AppProvidersAppServiceProvider::class,AppProvidersAuthServiceProvider::class,AppProvidersBroadcastServiceProvider::class,...

現在讓我們創建一個簡單的函數,在 app/Helpers 目錄中創建一個 carbon.php 文件,文件中包含以下代碼:

<?php/**  * Carbon helper  *  * @param $time  * @param $tz  *  * @return CarbonCarbon  */function carbon($time = null, $tz = null){     return new CarbonCarbon($time, $tz);}

你不需要添加任何命令空間。如果你想,你可以使用 function_exists 檢測這個函數是否存在。

現在,你可以在應用程序的任何你喜歡的位置使用幫助函數 carbon()。現在,如果您需要另一個返回特定格式的函數(僅針對本教程的用例),則可以在同一文件(Carbon.php)中輸入該函數:

<?php/**  * Carbon helper  *  * @param $time  * @param $tz  *  * @return CarbonCarbon  */function carbon($time = null, $tz = null){     return new CarbonCarbon($time, $tz);}function carbonFormatted($time = null, $tz = null){     return carbon($time, $tz)->format('Y-m-d')}

好的! 現在,您可以開始使用自己的PHP文件填充 app / Helpers目錄,其中包含您經常使用的幫助程序?

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

推薦教程:《Laravel教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享