我正在为AntonioRiveiro/Tracker应用使用laravel个回复。我想为它添加一些没有开箱即用的功能。
但我无法找到其实例的创建位置,或者如何访问我的控制器中的Tracker
对象。
或者如何扩展跟踪器对象?
答案 0 :(得分: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
即可。
查看供应商提供的文件,并向供应商维护者确定类似的架构模式,您将会很高兴。
答案 1 :(得分:1)
这个问题的答案提供了(2)的解决方案,我找到了(1)here的答案。
要访问跟踪器对象,您需要包括:
use PragmaRX\Tracker\Vendor\Laravel\Facade as tracker;
然后你会做类似的事情:
$visitor = Tracker::currentSession();
中所述