私はlaravelアプリのAntonioRiveiro/Trackerレポを使用しています。私は、それが箱から外に持っていないそれ以上の機能を追加したいと思います。トラッカー(antonioribeiro/tracker)オブジェクトにアクセスする方法Laravelで
しかし、私は、そのインスタンスが作成される場所を見つけることができない、または私のコントローラで
Tracker
オブジェクトにアクセスする方法。また、トラッカーオブジェクトを拡張するにはどうすればよいですか?
私はlaravelアプリのAntonioRiveiro/Trackerレポを使用しています。私は、それが箱から外に持っていないそれ以上の機能を追加したいと思います。トラッカー(antonioribeiro/tracker)オブジェクトにアクセスする方法Laravelで
しかし、私は、そのインスタンスが作成される場所を見つけることができない、または私のコントローラでTracker
オブジェクトにアクセスする方法。
また、トラッカーオブジェクトを拡張するにはどうすればよいですか?
だから私はあなたがこのについて移動するための最も簡単な方法は以下の通りだと思います:
まず、あなた自身の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
でない限り、コアクラスのデフォルトの機能をオーバーライドすることができます。
ベンダー提供のファイルを見て、ベンダーメンテナーと同様のアーキテクチャパターンを特定すれば、うまくいくでしょう。
この質問に対する答えは(2)の解決策を提供します。私は(1)hereへの答えを見つけました。 documentationで説明したように
$visitor = Tracker::currentSession();
:次に、あなたのようなものをやる
use PragmaRX\Tracker\Vendor\Laravel\Facade as tracker;
:あなたは含める必要がトラッカーオブジェクトにアクセスするには
。
機能を拡張するための徹底的なウォークスルーをありがとうございました! – Grigio