2016-08-11 5 views
0

私はlaravelアプリのAntonioRiveiro/Trackerレポを使用しています。私は、それが箱から外に持っていないそれ以上の機能を追加したいと思います。トラッカー(antonioribeiro/tracker)オブジェクトにアクセスする方法Laravelで

  1. しかし、私は、そのインスタンスが作成される場所を見つけることができない、または私のコントローラでTrackerオブジェクトにアクセスする方法。

  2. また、トラッカーオブジェクトを拡張するにはどうすればよいですか?

答えて

2

だから私はあなたがこのについて移動するための最も簡単な方法は以下の通りだと思います:

まず、あなた自身のServiceProviderを作る

php artisan make:provider CustomTrackerServiceProvider 

今、そのファイルを開く、私たちが必要となりますいくつかの変更を加える。

まず、トラッカーが提供するServiceProviderを拡張する必要があります。

use PragmaRX\Tracker\Vendor\Laravel\ServiceProvider as TrackerServiceProvider 

class CustomTrackerServiceProvider extends TrackerServiceProvider 

上記useエイリアスが必要ですが、私はコアフレームワークと同様の命名規則を与えられた明確にするためにそれを好むされていません。

今、あなたは今、あなたが変更を行う能力を持っているproviders array

config/app.php 
'providers' => [ 
    //other providers and what have you 
    App\Http\Providers\CustomTrackerServiceProvider::class 
] 

の下であなたのconfig/app.phpファイルにPragmaRX\Tracker\Vendor\Laravel\ServiceProviderの使用状況を交換する必要があります。メンバがprivateでない限り、コアクラスのデフォルトの機能をオーバーライドすることができます。

ベンダー提供のファイルを見て、ベンダーメンテナーと同様のアーキテクチャパターンを特定すれば、うまくいくでしょう。

+0

機能を拡張するための徹底的なウォークスルーをありがとうございました! – Grigio

1

この質問に対する答えは(2)の解決策を提供します。私は(1)hereへの答えを見つけました。 documentationで説明したように

$visitor = Tracker::currentSession(); 

:次に、あなたのようなものをやる

use PragmaRX\Tracker\Vendor\Laravel\Facade as tracker; 

:あなたは含める必要がトラッカーオブジェクトにアクセスするには

関連する問題