ホームページ > PHPフレームワーク > Laravel > Laravel には独自のヘルパー関数がどのように組み込まれていますか?

Laravel には独自のヘルパー関数がどのように組み込まれていますか?

Guanhui
リリース: 2020-06-24 18:00:39
転載
2922 人が閲覧しました

Laravel には独自のヘルパー関数がどのように組み込まれていますか?

#多くのチュートリアルでは、自動的に読み込まれるファイルを 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 ディレクトリ内のすべてのファイルを走査します。 , ご想像のとおり、このディレクトリに任意のファイルを作成すると、それらのファイルがアプリケーションに読み込まれるようになります。これらのヘルパー関数は、コード内のどこからでもアクセスできるようになります (ビュー、モデル、コントローラーなど)

また、このサービス プロバイダーをロードし、config/app.php を開いて、HelperServiceProviderAppServiceProvider

...App\Providers\HelperServiceProvider::class,App\Providers\AppServiceProvider::class,App\Providers\AuthServiceProvider::class,App\Providers\BroadcastServiceProvider::class,...
ログイン後にコピー

の上に置く必要があります。次に、単純な関数を作成し、次のコードを含む Carbon.php ファイルを app/Helpers ディレクトリに作成します。

<?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 ファイルを app/Helpers ディレクトリに追加できるようになります。

注: 私はオランダ人であり、英語は私の母国語ではないことに注意してください。 , したがって、この記事には文法上の誤りが含まれている可能性があります。

推奨チュートリアル: 「
Laravel チュートリアル

以上がLaravel には独自のヘルパー関数がどのように組み込まれていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート