添加第三方事件订阅者

时间:2016-07-22 10:06:17

标签: postgis symfony

我是symfony的新手,使用postgis使用PostgreSQL进行项目。因此,我想提出支持postgis的学说,并偶然发现了这个扩展: https://github.com/jsor/doctrine-postgis

在设置部分只有两行代码和一个引用symfony文档的链接。

所以我尝试在我的services.yml文件中添加ORMSchemaEventSubscriber:

parameters:
#    parameter_name: value

services:
    my.subscriber:
        class: Jsor\Doctrine\PostGIS\Event\ORMSchemaEventSubscriber
        arguments: []
        tags:
            - { name: kernel.event_subscriber }

此方法抛出异常,指出ORMSchemaEventSubscriber类不是Symfony \ Component \ EventDispatcher \ EventSubscriberInterface的子类。

这就是我被困住的地方,不知道该怎么做或在哪里放置给定的代码行。

2 个答案:

答案 0 :(得分:1)

您尝试将其注册为Symfony Kernel Listener,但事实并非如此。

因此要使用它,您必须使用适当的标记:

my.subscriber:
    class: Jsor\Doctrine\PostGIS\Event\ORMSchemaEventSubscriber
    tags:
        - { name: doctrine.event_subscriber, connection: default }

以下是Symfony文档: http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html

答案 1 :(得分:1)

在您的服务定义中,请将name: kernel.event_subscriber更改为name: doctrine.event_subscriber,以便它变为:

services:
    my.subscriber:
        class: Jsor\Doctrine\PostGIS\Event\ORMSchemaEventSubscriber
        arguments: []
        tags:
            - { name: doctrine.event_subscriber }

更多信息:https://github.com/jsor/doctrine-postgis/issues/3