private function detachSharedListener($id, $listener, SharedEvents $sharedEvents) { if (method_exists($sharedEvents, 'attachAggregate')) { // v2 $sharedEvents->detach($id, $listener); return; } // v3 $sharedEvents->detach($listener, $id); }