如何访问跟踪器(antonioribeiro /跟踪器)对象在Laravel

如何访问跟踪器(antonioribeiro /跟踪器)对象在Laravel

问题描述:

我正在使用AntonioRiveiro/Tracker回购为我的laravel应用程序。我想添加一些功能,它没有开箱即用。如何访问跟踪器(antonioribeiro /跟踪器)对象在Laravel

  1. 但我找不到在哪里它的实例被创建,或者如何访问Tracker对象在我的控制器。

  2. 或者我该如何扩展跟踪器对象?

所以我觉得你去这个最简单的方法是:

首先,让自己的ServiceProvider

php artisan make:provider CustomTrackerServiceProvider 

现在打开这个文件,我们需要做一些修改。

首先,我们需要扩展Tracker提供的ServiceProvider。

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,就可以覆盖核心类的默认功能。

查看供应商提供的文件,并向供应商维护人员确定类似的架构模式,然后您就可以开始使用了。

+0

非常感谢有关如何扩展功能的全面演练! – Grigio

这个问题的答案为(2)提供了一个解决方案,我找到了答案(1)here

要访问你需要包括跟踪器对象:如documentation描述

$visitor = Tracker::currentSession(); 

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

然后你会做这样的事情。