你可能想創建一個在應用的任何地方都可以訪問的函式,這個教程將幫你實作 ??
很多教程都會說,你在 composer.json 這個檔案中通過添加一個自動加載的檔案,就可以實作這個需求,但我認為這不是一個好的方式,當你在 helpers.php 檔案中添加了更多的函式時,可讀性將變得很差,
下面我將介紹一種方式,讓你可以定義很多檔案,來包含不同的函式,這將讓我們的程式更加整潔和更具可讀性,
我們開始吧.. ??
首先創建一個 HelperServiceProvider.php 服務提供者檔案:
php artisan make:provider HelperServiceProvider
使用上面命令,你將在 app\Providers 檔案中生成 HelperServiceProvider.php
你可以簡單的移除 boot() 方法,我們在這兒不會使用它,
在 register() 方法中我們添加以下代碼:
1 public function register() 2 { 3 foreach (glob(app_path('Helpers') . '/*.php') as $file) { 4 require_once $file; 5 } 6 }
這個回圈將會遍歷 app/Heplers 目錄下的所有檔案,你可能已經猜到了,現在你可以在這個目錄下隨便創建檔案,它們將會被加載到你的應用程式中,這些幫助函式在你的代碼的任何地方都可以被訪問(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 檔案,檔案中包含以下代碼:
1 <?php 2 3 /** 4 * Carbon helper 5 * 6 * @param $time 7 * @param $tz 8 * 9 * @return Carbon\Carbon 10 */ 11 function carbon($time = null, $tz = null) 12 { 13 return new \Carbon\Carbon($time, $tz); 14 }
你不需要添加任何命令空間,如果你想,你可以使用 function_exists 檢測這個函式是否存在,
現在,你可以在應用程式的任何你喜歡的位置使用幫助函式 carbon(),現在,如果您需要另一個回傳特定格式的函式(僅針對本教程的用例),則可以在同一檔案(Carbon.php)中輸入該函式:
1 <?php 2 3 /** 4 * Carbon helper 5 * 6 * @param $time 7 * @param $tz 8 * 9 * @return Carbon\Carbon 10 */ 11 function carbon($time = null, $tz = null) 12 { 13 return new \Carbon\Carbon($time, $tz); 14 } 15 function carbonFormatted($time = null, $tz = null) 16 { 17 return carbon($time, $tz)->format('Y-m-d') 18 }
好的! 現在,您可以開始使用自己的PHP檔案填充 app / Helpers目錄,其中包含您經常使用的幫助程式 ??
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/116816.html
標籤:PHP
