Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[DoctrineBridge] update doctrine event listeners doc for Symfony 4.2 change#9973

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
javiereguiluz merged 4 commits intosymfony:masterfromdmaicher:patch-5
Jun 29, 2018
Merged
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 11 additions & 51 deletionsdoctrine/event_listeners_subscribers.rst
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -186,57 +186,17 @@ interface and have an event method for each event it subscribes to::

For a full reference, see chapter `The Event System`_ in the Doctrine documentation.

Lazy loading for Event Listeners
--------------------------------
Performance Considerations
--------------------------

Onesubtle difference between listeners and subscribers is that Symfonycan load
entity listeners lazily. This means thatyour listenerclass will only be fetched
from the service container (andthus beinstantiated)once the eventitislinked
to actually fires.
Oneimportant difference between listeners and subscribers is that Symfonyloads
entity listeners lazily. This means thatthe listenerclasses are only fetched
from the service container (and instantiated)if therelatedevent isactually
fired.

Lazy loading might give you a slight performance improvement when your listener
runs for events that rarely fire. Also, it can help you when you run into
*circular dependency issues* that may occur when your listener service in turn
depends on the DBAL connection.
That's why it is preferable to use entity listeners instead of subscribers
whenever possible.

To mark a listener service as lazily loaded, just add the ``lazy`` attribute
to the tag like so:

.. configuration-block::

.. code-block:: yaml

services:
App\EventListener\SearchIndexer:
tags:
- { name: doctrine.event_listener, event: postPersist, lazy: true }

.. code-block:: xml

<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:doctrine="http://symfony.com/schema/dic/doctrine">

<services>
<service id="App\EventListener\SearchIndexer" autowire="true">
<tag name="doctrine.event_listener" event="postPersist" lazy="true" />
</service>
</services>
</container>

.. code-block:: php

use App\EventListener\SearchIndexer;

$container
->autowire(SearchIndexer::class)
->addTag('doctrine.event_listener', array('event' => 'postPersist', 'lazy' => 'true'))
;

.. note::

  Marking an event listener as ``lazy`` has nothing to do with lazy service
definitions which are described :doc:`in their own section </service_container/lazy_services>`

.. _`The Event System`: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
.. _`the Doctrine Documentation`: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#entity-listeners
.. versionadded:: 4.2
Starting from Symfony 4.2, Doctrine entity listeners are always lazy. In
previous Symfony versions this behavior was configurable.

[8]ページ先頭

©2009-2025 Movatter.jp