2016-09-25 4 views
1

の内部には、静的関数 `group`がないので、私は::が私の理解あたりの::がから静的メソッドを使用するために使用されている通りなどのコードRoute:groupまたはRoute:getlaravel:Route :: group - ここで::の構文を理解する方法。 laravelでルートクラス

をWRTの意味を理解することはできませんよクラス。

私はRouteクラスをチェックします。 groupまたはgetと呼ばれる静的メソッドはありません。だから理解する方法。

もちろん、私は自分のアプリを起動するためにそれを理解する必要はありません。しかし構文を理解することは常に良いことです。私はphpstormを使用しています。一般的に私は関数とクラスのリンクを理解することができます。私はgroupまたはgetを探してみましたが、それは宣言していないと言います。

+0

これは、ソースを慎重に調べることなく最初にユーザーを確認するのはすぐにはわかりませんが、フレームワーク全体で使用されている概念であり、ファサードに再:)] – tam5

答えて

3

Route::method()を使用すると、「ファサード」と呼ばれるものを使用しています。このコンテキストでは、Routeクラスがファサードです。

Illuminate\Support\Facades\Routeを見ると、文字列routerを返す​​という1つの静的メソッドが用意されています。これは、IoCコンテナのIlluminate\Routing\Routerクラスのインスタンスを参照するこの文字列です。

セットアップ中に、Laravelはこのクラスのインスタンスを作成し、routerという種類のキーとして保存します。

Route::get(...)を実行すると、Loodleはファサードアクセサを使用して既に作成されているルータクラスのインスタンスを見つけ、getメソッドを呼び出します。動的プログラミングを使用してこれを実現します。詳細はIlluminate\Support\Facades\Facadeクラスを参照してください。具体的には、__callStaticメソッドがすべて開始されます。だから、

Route::get()を呼び出す:

  • あなたが実際にそのような方法は、そのクラスに存在しない、またはそれを拡張するFacadeクラス、そう__callStaticメソッドが実行されるIlluminate\Support\Facades\Route::get
  • を呼んでいます。
  • 基礎となるFacadeクラスは$instanceがルータのインスタンスであり、かつ$methodget$argsであることは何ですあなたがロジックに従うならば、あなたにIlluminate\Routing\Router
  • のインスタンスを取得します。最後に、__callStatic方法は$instance->$method(...$args);を呼び出しstatic::getFacadeRoot()を呼び出しますRoute::get(...);
  • Route::get('route', '[email protected]');に電話すると、Illuminate\Routing\Routerのインスタンスで実際にget('route', '[email protected]')と呼ぶことになります。実際に静的メソッドを呼び出すのではないことに注意してください。
+0

あなたは一般的にファサードの簡単な説明を与えることができます。 –

+0

@SanthoshYedidiなぜLaravelのドキュメントを試してみませんか? https://laravel.com/docs/master/facades – linuxartisan

+0

ok。私はそれを勉強します –

関連する問題