如何访问 Laravel 中的 Tracker (antonioribeiro/tracker) 对象
How to access Tracker (antonioribeiro/tracker) object In Laravel
我正在使用 AntonioRiveiro/Tracker repo for my laravel 应用程序。我想为它添加一些开箱即用的功能。
但是我找不到它的实例是在哪里创建的,也找不到如何访问我的控制器中的 Tracker
对象。
或者如何扩展跟踪器对象?
所以我认为最简单的方法如下:
首先,制作自己的ServiceProvider
php artisan make:provider CustomTrackerServiceProvider
现在打开该文件,我们需要进行一些修改。
首先,我们需要扩展 Tracker 提供的 ServiceProvider。
use PragmaRX\Tracker\Vendor\Laravel\ServiceProvider as TrackerServiceProvider
class CustomTrackerServiceProvider extends TrackerServiceProvider
上面的 use
别名不是必需的,但考虑到与核心框架相似的命名约定,为了清晰起见,我更喜欢它。
现在您需要在 providers array
下的 config/app.php
文件中替换 PragmaRX\Tracker\Vendor\Laravel\ServiceProvider
的用法
config/app.php
'providers' => [
//other providers and what have you
App\Http\Providers\CustomTrackerServiceProvider::class
]
现在您可以进行更改了。您可以覆盖核心 class 的默认功能,只要它的成员不是 private
。
查看供应商提供的文件并确定与供应商维护人员相似的架构模式,您就可以开始了。
这个问题的答案为(2)提供了解决方案,我找到了(1)的答案here。
要访问您需要包含的跟踪器对象:
use PragmaRX\Tracker\Vendor\Laravel\Facade as tracker;
然后你会做类似的事情:
$visitor = Tracker::currentSession();
如documentation所述。
我正在使用 AntonioRiveiro/Tracker repo for my laravel 应用程序。我想为它添加一些开箱即用的功能。
但是我找不到它的实例是在哪里创建的,也找不到如何访问我的控制器中的
Tracker
对象。或者如何扩展跟踪器对象?
所以我认为最简单的方法如下:
首先,制作自己的ServiceProvider
php artisan make:provider CustomTrackerServiceProvider
现在打开该文件,我们需要进行一些修改。
首先,我们需要扩展 Tracker 提供的 ServiceProvider。
use PragmaRX\Tracker\Vendor\Laravel\ServiceProvider as TrackerServiceProvider
class CustomTrackerServiceProvider extends TrackerServiceProvider
上面的 use
别名不是必需的,但考虑到与核心框架相似的命名约定,为了清晰起见,我更喜欢它。
现在您需要在 providers array
config/app.php
文件中替换 PragmaRX\Tracker\Vendor\Laravel\ServiceProvider
的用法
config/app.php
'providers' => [
//other providers and what have you
App\Http\Providers\CustomTrackerServiceProvider::class
]
现在您可以进行更改了。您可以覆盖核心 class 的默认功能,只要它的成员不是 private
。
查看供应商提供的文件并确定与供应商维护人员相似的架构模式,您就可以开始了。
这个问题的答案为(2)提供了解决方案,我找到了(1)的答案here。
要访问您需要包含的跟踪器对象:
use PragmaRX\Tracker\Vendor\Laravel\Facade as tracker;
然后你会做类似的事情:
$visitor = Tracker::currentSession();
如documentation所述。