Как получить доступ к объекту Tracker (antonioribeiro / tracker) в Laravel

я использую AntonioRiveiro / Tracker репо для моего Laravel приложение. Я хотел бы добавить к нему больше функциональности, которого нет в стандартной комплектации.

  1. Но я не могу найти, где создается его экземпляр, или как получить доступ к Tracker объект в моих контроллерах.

  2. Или как мне расширить объект трекера?

0

Решение

Поэтому я думаю, что для вас проще всего сделать следующее:

Во-первых, сделайте свой собственный ServiceProvider

php artisan make:provider CustomTrackerServiceProvider

Теперь откройте этот файл, нам нужно будет внести некоторые изменения.

Во-первых, нам нужно расширить ServiceProvider, который предоставляет Tracker.

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

class CustomTrackerServiceProvider extends TrackerServiceProvider

use Псевдоним выше не требуется, но я предпочитаю его для ясности, учитывая соглашение об именах, аналогичное базовой платформе.

Теперь вам нужно заменить использование PragmaRX\Tracker\Vendor\Laravel\ServiceProvider в вашем config/app.php файл под providers array

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

Теперь у вас есть возможность вносить изменения. Вы можете переопределить функциональность по умолчанию основного класса, если его член не private,

Посмотрите файл, предоставленный поставщиком, и определите образец архитектуры, аналогичный сопровождающему поставщика, и все будет хорошо.

2

Другие решения

Ответ на этот вопрос дает решение для (2), я нашел ответ на (1) Вот.

Для доступа к объекту трекера вам необходимо включить:

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

Тогда вы будете делать что-то вроде:

$visitor = Tracker::currentSession();

как описано в документация.

1

По вопросам рекламы [email protected]