Skip to content
This repository has been archived by the owner on Sep 20, 2021. It is now read-only.

Group behavior beside Event #5

Open
Pierozi opened this issue Sep 16, 2016 · 2 comments
Open

Group behavior beside Event #5

Pierozi opened this issue Sep 16, 2016 · 2 comments
Assignees
Labels

Comments

@Pierozi
Copy link
Member

Pierozi commented Sep 16, 2016

I've a little situation when working with an Event handler on Exception and play with Group.

All the hoa exceptions are dispatch to event during execution of constructor.
that mean when working with Group, the exception are dispatch as like it was common exception.

And it's not what we should expect when working with Group, we may want analyse or raise the group in one time, and when child exceptions are in.

Maybe we could send event when Group::commitTransaction are call ?
and do not send event in constructor when it's Exception\Group instance,
but that mean it's a BC-Break

From now i found this great solution.

  1. Use Exception\Idle as child of Group
  2. In event handler, ignore Exception\Group when 0 === $exception->getStackSize()
  3. Dispatch Exception\Group with $exception->send() when you're setup.
@Hywan Hywan added the question label Sep 16, 2016
@Hywan Hywan self-assigned this Sep 16, 2016
@Hywan
Copy link
Member

Hywan commented Sep 16, 2016

You can use a Idle exception, it's exactly like Exception but without the event.

About group, hmm, it's not a BC break to change the place where events are fired I guess. But yes, a group should not fire any events actually :-/. If we fire an event each time we are commiting a set of exceptions, then a single “exception” can send multiple events and that's strange. I guess Group should extend Idle instead of Exception. But, this could be a BC break.

Thoughts?

@Pierozi
Copy link
Member Author

Pierozi commented Sep 16, 2016

I agree with replace Exception with Idle, as you said, Group should not fire event.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Development

No branches or pull requests

2 participants