Aller au contenu

BC-065C — EventPlatform / M12 Consolidation

Status: HISTORICAL For the current architecture, see: ./dependances.md.

Status

BC-065C completed.

No plugin file changed. No runtime mirror file changed. No Composer change. No runtime sync.

Decision

Retained option: B.

  • CMonChoix\Application\EventPlatform\... remains the active canonical legacy family for this slice.
  • CMonChoix\Application\M12\... remains a compatibility wrapper family.
  • no Projection or Realtime class is moved in this tranche.

Real issue fixed

BC-065A documented the M12 wrappers as active compatibility surfaces:

  • src/Application/M12/EventBus/EventBus.php
  • src/Application/M12/Wiring/PlatformKernel.php

But both wrappers extended classes declared final:

  • src/Application/EventPlatform/Bus/EventBus.php
  • src/Application/EventPlatform/Kernel/PlatformKernel.php

Loading the wrappers therefore produced a fatal compatibility error.

BC-065C fixes only that incompatibility by restoring wrapper-safe inheritance on the two canonical EventPlatform classes.

Consolidated classification

Class Role Status
EventPlatform\Bus\EventBus active in-memory bus retained canonical legacy type
EventPlatform\Bus\EventDispatcher thin delegate to EventBus retained, no proven consumer
EventPlatform\Contracts\Event marker contract retained, no proven consumer
EventPlatform\Contracts\EventHandler callable contract retained, no proven consumer
EventPlatform\Kernel\PlatformKernel lightweight wiring shell retained canonical legacy type
M12\EventBus\EventBus wrapper over EventPlatform bus retained compatibility wrapper
M12\Wiring\PlatformKernel wrapper over EventPlatform kernel retained compatibility wrapper

Behavior certification

EventBus behavior remained unchanged:

  • same subscribe(string, callable): void
  • same publish(object): void
  • same handler ordering
  • same duplicate registration behavior
  • same no-op when no handler is registered
  • same exception propagation

Reflection / compatibility

After BC-065C:

  • M12 wrappers can be loaded without fatal error;
  • M12\EventBus\EventBus instanceof EventPlatform\Bus\EventBus remains true;
  • M12\Wiring\PlatformKernel instanceof EventPlatform\Kernel\PlatformKernel remains true;
  • no method signature changed.

Deferred debt

Still deferred to later BCs:

  • EventPlatform\EventDispatcher
  • EventPlatform\Contracts\Event
  • EventPlatform\Contracts\EventHandler
  • Projection legacy shells
  • Realtime legacy shells

BC-065E final certification closes BC-065 while keeping the remaining non-critical residual debt explicitly documented as P2 only.