【问题标题】:How to access Tracker (antonioribeiro/tracker) object In Laravel如何在 Laravel 中访问 Tracker (antonioribeiro/tracker) 对象
【发布时间】:2016-08-11 01:33:18
【问题描述】:

我正在为我的laravel 应用程序使用AntonioRiveiro/Tracker 存储库。我想为它添加一些开箱即用的功能。

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

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

【问题讨论】:

    标签: php laravel object tracking tracker


    【解决方案1】:

    所以我认为最简单的方法是:

    首先,制作自己的ServiceProvider

    php artisan make:provider CustomTrackerServiceProvider
    

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

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

    use PragmaRX\Tracker\Vendor\Laravel\ServiceProvider as TrackerServiceProvider
    
    class CustomTrackerServiceProvider extends TrackerServiceProvider
    

    上面的use 别名不是必需的,但考虑到与核心框架类似的命名约定,我更喜欢它。

    现在您需要在config/app.php 文件中的providers array 下替换您对PragmaRX\Tracker\Vendor\Laravel\ServiceProvider 的使用

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

    现在您可以进行更改了。只要核心类的成员不是private,您就可以覆盖它的默认功能。

    查看供应商提供的文件并确定与供应商维护人员相似的架构模式,您就可以开始了。

    【讨论】:

    • 非常感谢您详细介绍如何扩展功能!
    【解决方案2】:

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

    要访问跟踪器对象,您需要包括:

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

    然后你会做这样的事情:

    $visitor = Tracker::currentSession();
    

    documentation 中所述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多