missbach / snooper-symfony
Snooper symfony 桥接器
Requires
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 中都添加它。