Exception icon indicating copy to clipboard operation
Exception copied to clipboard

Group behavior beside Event

Open Pierozi opened this issue 9 years ago • 2 comments

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.

Pierozi avatar Sep 16 '16 09:09 Pierozi

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?

Hywan avatar Sep 16 '16 11:09 Hywan

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

Pierozi avatar Sep 16 '16 11:09 Pierozi