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

[Messenger] Restore message handlers laziness#29558

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
nicolas-grekas merged 1 commit intosymfony:4.2fromchalasr:lazy-handler-map
Dec 13, 2018

Conversation

@chalasr
Copy link
Member

@chalasrchalasr commentedDec 10, 2018
edited
Loading

QA
Branch?4.2
Bug fix?yes
New feature?no
BC breaks?no
Deprecations?no
Tests pass?yes
Fixed ticketsn/a
LicenseMIT
Doc PRn/a

TheHandlersLocator introduced in 4.2 currently needs to instantiate all message handlers of the bus in order to be wired, while they were lazily loaded in 4.1 via ContainerHandlerLocator (removed).

Example:

framework:messenger:buses:messenger.bus.command:~services:App\Messenger\:resource:'../src/Messenger/*Handler.php'tags:            -{ name: messenger.message_handler, bus: messenger.bus.command }
namespaceApp\Messenger;class BarCommand {}class BarCommandHandler {publicfunction__invoke(BarCommand$command):void {} }class FooCommand {}class FooCommandHandler {publicfunction__invoke(FooCommand$command):void {} }

(DumpedHandleMessageMiddleware factory) Before:

return$this->privates['messenger.bus.command.middleware.handle_message'] =new \Symfony\Component\Messenger\Middleware\HandleMessageMiddleware(new \Symfony\Component\Messenger\Handler\HandlersLocator(array('App\\Messenger\\BarCommand' =>\current(array(0 =>array(0 =>new \App\Messenger\BarCommandHandler()))),'App\\Messenger\\FooCommand' =>\current(array(0 =>array(0 =>new \App\Messenger\FooCommandHandler()))))));

After:

return$this->privates['messenger.bus.command.middleware.handle_message'] =new \Symfony\Component\Messenger\Middleware\HandleMessageMiddleware(new \Symfony\Component\Messenger\Handler\HandlersLocator(array('App\\Messenger\\BarCommand' =>newRewindableGenerator(function () {yield0 => ($this->privates['App\Messenger\BarCommandHandler'] ?? ($this->privates['App\Messenger\BarCommandHandler'] =new \App\Messenger\BarCommandHandler()));    },1),'App\\Messenger\\FooCommand' =>newRewindableGenerator(function () {yield0 => ($this->privates['App\Messenger\FooCommandHandler'] ?? ($this->privates['App\Messenger\FooCommandHandler'] =new \App\Messenger\FooCommandHandler()));    },1))));

sstok reacted with heart emoji
Copy link
Member

@nicolas-grekasnicolas-grekas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

(SendersLocator is fine?)

@fabpotfabpot changed the title[Messenger] Restaure message handlers laziness[Messenger] Restore message handlers lazinessDec 11, 2018
@chalasrchalasrforce-pushed thelazy-handler-map branch 2 times, most recently from88ef942 to1d7455bCompareDecember 11, 2018 10:08
@chalasr
Copy link
MemberAuthor

@nicolas-grekas it looked fine, but updated for consistency and simplicity.

nicolas-grekas and ogizanagi reacted with thumbs up emoji

@nicolas-grekas
Copy link
Member

Thank you@chalasr.

@nicolas-grekasnicolas-grekas merged commitc608e73 intosymfony:4.2Dec 13, 2018
nicolas-grekas added a commit that referenced this pull requestDec 13, 2018
This PR was merged into the 4.2 branch.Discussion----------[Messenger] Restore message handlers laziness| Q             | A| ------------- | ---| Branch?       | 4.2| Bug fix?      | yes| New feature?  | no| BC breaks?    | no| Deprecations? | no| Tests pass?   | yes| Fixed tickets | n/a| License       | MIT| Doc PR        | n/aThe `HandlersLocator` introduced in 4.2 currently needs to instantiate all message handlers of the bus in order to be wired, while they were lazily loaded in 4.1 via ContainerHandlerLocator (removed).Example:```yamlframework:    messenger:        buses:            messenger.bus.command: ~services:    App\Messenger\:        resource: '../src/Messenger/*Handler.php'        tags:            - { name: messenger.message_handler, bus: messenger.bus.command }``````phpnamespace App\Messenger;class BarCommand {}class BarCommandHandler { public function __invoke(BarCommand $command): void {} }class FooCommand {}class FooCommandHandler { public function __invoke(FooCommand $command): void {} }```(Dumped `HandleMessageMiddleware` factory) Before:```phpreturn $this->privates['messenger.bus.command.middleware.handle_message'] = new \Symfony\Component\Messenger\Middleware\HandleMessageMiddleware(new \Symfony\Component\Messenger\Handler\HandlersLocator(array(    'App\\Messenger\\BarCommand' => \current(array(0 => array(0 => new \App\Messenger\BarCommandHandler()))),    'App\\Messenger\\FooCommand' => \current(array(0 => array(0 => new \App\Messenger\FooCommandHandler()))))));```After:```phpreturn $this->privates['messenger.bus.command.middleware.handle_message'] = new \Symfony\Component\Messenger\Middleware\HandleMessageMiddleware(new \Symfony\Component\Messenger\Handler\HandlersLocator(array(    'App\\Messenger\\BarCommand' => new RewindableGenerator(function () {        yield 0 => ($this->privates['App\Messenger\BarCommandHandler'] ?? ($this->privates['App\Messenger\BarCommandHandler'] = new \App\Messenger\BarCommandHandler()));    }, 1),    'App\\Messenger\\FooCommand' => new RewindableGenerator(function () {        yield 0 => ($this->privates['App\Messenger\FooCommandHandler'] ?? ($this->privates['App\Messenger\FooCommandHandler'] = new \App\Messenger\FooCommandHandler()));    }, 1))));```Commits-------c608e73 [Messenger] Restore message handlers laziness
@chalasrchalasr deleted the lazy-handler-map branchDecember 13, 2018 09:13
@fabpotfabpot mentioned this pull requestJan 6, 2019
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@nicolas-grekasnicolas-grekasnicolas-grekas approved these changes

+1 more reviewer

@ogizanagiogizanagiogizanagi approved these changes

Reviewers whose approvals may not affect merge requirements

Assignees

No one assigned

Projects

None yet

Milestone

4.2

Development

Successfully merging this pull request may close these issues.

4 participants

@chalasr@nicolas-grekas@ogizanagi@carsonbot

[8]ページ先頭

©2009-2025 Movatter.jp