missbach/snooper-symfony

Snooper symfony 桥接器

安装: 2

依赖: 0

建议者: 0

安全: 0

类型:symfony-bundle

1.5.0 2020-09-03 05:35 UTC

This package is not auto-updated.

Last update: 2024-09-26 01:50:44 UTC


README

设置项目

安装(SF3)

要通过 composer 安装,请将以下行添加到您的项目根目录下的 composer.json 文件中

{
    ...
    require: {
    ...
    "snooper/symfony": "1.*"
    }
    ...
}

执行 composer

composer update

您应该看到类似以下的内容

Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
Package operations: 1 install, 0 updates, 0 removals
  - Installing snooper/symfony (1.0.0): Loading from ...

过程完成后,将以下行添加到您的 AppKernel.php 文件中

class AppKernel extends Kernel
{
    ...
    public function registerBundles()
    {
        $bundles = [
            ...
            new Snooper\SnooperBridgeBundle\SnooperBridgeBundle()
        ];
    }
    ...
}

最后一步,您应该清除缓存,然后就可以使用了!

准备模板

根据您的 snooper 配置,添加如下所示的 twig 函数调用

<!DOCTYPE html>
<html>
    <head>
        ...
        {{ print_snooper_section('head') }}
    </head>
    <body>
        {{ print_snooper_section('body') }}
        ...
        Content goes here!
        ...
        {{ print_snooper_section('footer') }}
    </body>
</html>

提示:如果您的控制器返回 "JsonResponse" 对象,跟踪信息将自动添加。

配置

要修改配置,如组件的 README 中所述,在 symfony 环境中存在一个名为 "snooper.config" 的已分派事件。将以下内容添加到您的服务配置中

services:
    ...
    tracking-event.listener:
        class: App\EventListener
        tags:
            - { name: kernel.event_listener, event: snooper.config }
    ...
<?php
namespace App;

use Snooper\SnooperBridgeBundle\Event\SnooperConfigEvent;

class EventListener
{
    public function onSnooperConfig(SnooperConfigEvent $event)
    {
        $config = $event->getConfig();
        $config->mergeConfig(['first_section'=>'head']);
    }
}

实现

设置第一个事件

首先您必须创建一个事件调用

<?php
namespace ...;

use Snooper\SnooperBridgeBundle\Event\SnooperEvent;
use Snooper\SnooperBridgeBundle\EventListener\Events;

class DefaultController extends Controller
{
    public function defaultAction(Request $request)
    {
        $this->get('event_dispatcher')->dispatch(Events::SNOOPER_EVENT,SnooperEvent::create('some.event',['some_variable'=>'hello world']));
        ...
    }
}

现在每个可用的提供者都可以监听这个名为 "some.event" 的事件。EventTrigger 的第二个参数用于动态传递。所有输入的内容都将 "一对一" 传递给提供者。没有限制您想要发送的数据。

创建一个提供者

现在您需要实现一个事件监听器。每个提供者可以监听多个事件。创建方式请参考 snooper 组件文档。

创建一个服务定义以在 symfony 中使用

services:
    ...
    tracking_provider.test:
        class: App\Providers\TestProvider
    ...

跟踪服务需要了解您的新提供者。为此,只需在定义中添加一个标签。它结束如下

services:
    ...
    tracking_provider.test:
        class: App\Providers\TestProvider
        tags:
            - { name: snooper_provider }
    ...

提示:请随意通过构造函数注入任何您喜欢的服务,因为它们在这个过程中不会被使用。别忘了清除缓存。

调试

将 "&snooper_debug=1" 添加到您的 URL 中以开启调试模式,将 "&snooper_debug=0" 添加到 URL 中以关闭调试模式。调试模式存储在会话中,因此无需在每个 URL 中都添加它。