2017-04-21 3 views
0

私はMac OSXシステムにも役立つメソッドがあればPHPStormを使用しています。Laravel 4がメソッドの場所を追跡するのが難しい

我々は、我々のコードに次の行があります。

$config = Config::get('regions'); 

まず、私はclass Configの場所を見つけたいです。

$test = new Config; //works 
print_r(get_class(Config)); 

私与える:まあ、これは動作しません。..

print_r(get_class(Config)); 

をだから私はこれを行う順番に非常に短いです

\Illuminate\Support\Facades\Config 

<?php namespace Illuminate\Support\Facades; 

/** 
* @see \Illuminate\Config\Repository 
*/ 
class Config extends Facade { 

    /** 
    * Get the registered name of the component. 
    * 
    * @return string 
    */ 
    protected static function getFacadeAccessor() { return 'config'; } 

} 

だから私はFacadeを見て、tここではで、get()の方法です。

コード内でfunction get(..を検索すると、100以上のインスタンスがあります。

どのように私はこの特定のget()メソッドを見つけることができますか?

+0

なぜそれが必要ですか?このメソッドは、単にファイルregions.phpのコンテンツをapp/configフォルダから返します。 –

+0

私は貢献に感謝しますが、それは私が尋ねた質問ではありませんでした。そして将来的には、(自分のような)開発者が、特定のメソッドやその他の特定のメソッドを見つける方法を知りたがっているかもしれません。おかげさまで –

答えて

1

Laravelは静的インターフェイスを提供するためにファサードを使用します。基本的には、サービスコンテナにあるオブジェクト&の変数のショートカットです。

Laravelは、静的呼び出しを使用することができているん何Laravel 4.2 Facades documentation

をチェックアウト:

Config::get('x'); 

をそして、それは、ファサードクラスが提供するキーの下にサービスコンテナからそれを解決します。 Configの場合、これは'config'です。 Laravel 5.4で

それがコンテナに登録されている: のsrc /照らしなさい/財団/ start.php

/* 
|-------------------------------------------------------------------------- 
| Register The Configuration Repository 
|-------------------------------------------------------------------------- 
| 
| The configuration repository is used to lazily load in the options for 
| this application from the configuration files. The files are easily 
| separated by their concerns so they do not become really crowded. 
| 
*/ 

$app->instance('config', $config = new Config(

    $app->getConfigLoader(), $env 

)); 

そして、あなたが同じファイルにこのことに気づくでしょう:

use Illuminate\Config\Repository as Config; 

あなたが探しているクラスはIlluminate\Config\Repositoryで、方法はget()です。

/** 
* @see \Illuminate\Config\Repository 
*/ 

ファサードの一部は、フレームワーク内で処理され、他の人があなたを見つけることができ、そこからアプリケーション自体にServiceProvidersによって提供されている)。また、ファサード自体があまりにもヒント何

これらのクラスはコンテナにバインドします。

+0

私は@seeのヒントを見ましたが、何らかの理由で(おそらくユーザーエラーです:)私はおそらく間違った場所を探して 'get()'メソッドを見つけませんでした。 –

関連する問題