如何在 Symfony 2.4 中使用 Doctrine Entity Listener? [英] How to use Doctrine Entity Listener with Symfony 2.4?

查看:16
本文介绍了如何在 Symfony 2.4 中使用 Doctrine Entity Listener?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用 带有 Symfony 2.4 的 Doctrine 实体监听器.

我创建了一个类:

我已添加地图信息:

<?xml version="1.0" encoding="UTF-8" ?><教义映射><实体名称="MyBundleEntityUser">...<实体监听器><entity-listener class="MyBundleListenerEntityUserListener"/></实体监听器></实体></学说映射>

一切正常.但是我如何将一些服务传递给这个类?我希望它与 Symfony 的服务容器集成并提供服务.

解决方案

要在 symfony 中注册特定的实体监听器实例,请按照以下步骤操作:

1) 将 composer.json 中的 DoctrineBundle 更新到 1.3 版本(因为它还不稳定):

<代码>{要求": {教义/教义捆绑":1.3.x-dev",}}

2) 使用标签名称doctrine.orm.entity_listener"注册您自己的服务:

my.listener:类:MyBundleListenerEntityUserListener论据: [ ... ]标签:- {名称:教义.orm.entity_listener }

请参阅 关于实体监听器的 Symfony 文档.p>

I want to use Doctrine Entity Listener with Symfony 2.4.

I've created a class:

<?php

namespace MyBundleListenerEntity;

use DoctrineORMEventLifecycleEventArgs;
use MyBundleEntityUser;

class UserListener
{
    public function postPersist(User $user, LifecycleEventArgs $event)
    {
    }
}

I've added mapping information:

<?xml version="1.0" encoding="UTF-8" ?>
<doctrine-mapping>
    <entity name="MyBundleEntityUser">

        ...

        <entity-listeners>
            <entity-listener class="MyBundleListenerEntityUserListener" />
        </entity-listeners>

    </entity>
</doctrine-mapping>

It's working OK. But how do I pass some services to this class? I want it to be integrated with the Symfony's service container and provided services.

解决方案

To register a specific entity listener instance in symfony please follow this steps:

1) Update DoctrineBundle in your composer.json to the version 1.3 (since it's not yet stable):

{
    "require": {
        "doctrine/doctrine-bundle": "1.3.x-dev",
    }
}

2) Register your own service with tag name "doctrine.orm.entity_listener":

my.listener:
    class: MyBundleListenerEntityUserListener
    arguments: [ ... ]
    tags:
        - { name: doctrine.orm.entity_listener }

See the Symfony docs on Entity Listeners.

这篇关于如何在 Symfony 2.4 中使用 Doctrine Entity Listener?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆