Skip to content

Phase 5.5: component lifecycle orchestration - #45

Merged
josiahking merged 1 commit into
2.xfrom
feature/phase-5-component-lifecycle
Aug 21, 2026
Merged

Phase 5.5: component lifecycle orchestration#45
josiahking merged 1 commit into
2.xfrom
feature/phase-5-component-lifecycle

Conversation

@josiahking

Copy link
Copy Markdown
Owner

Summary

Implements EvolvePHP 2 Phase 5.5 — Boot, Ready, Shutdown and Failure Orchestration.

This adds public experimental Module/Plugin lifecycle entry-point contracts and Core-owned deterministic component lifecycle orchestration integrated with ApplicationKernel.

Key changes

  • Adds public experimental ComponentBootContext
  • Adds public experimental ComponentEntryPoint
  • Adds Evolve\Module\Module
  • Adds Evolve\Plugin\Plugin
  • Adds Core-owned component lifecycle binding and coordination
  • Preserves exact resolved declaration object identity
  • Enforces unique entry-point object instances per component binding
  • Reuses Phase 5.4 restricted registration
  • Freezes services before component boot
  • Boots and enters ready state in deterministic dependency-first order
  • Shuts down in reverse successful boot order
  • Supports LIFO failure cleanup for partially booted components
  • Preserves original boot/ready failure as primary
  • Aggregates attributed cleanup/shutdown failures
  • Enforces at-most-once lifecycle execution
  • Integrates lifecycle into ApplicationKernel
  • Adds no request/execution hot-path component lifecycle work

Validation

Committed ref:

c690794273571db6a765e1f55a0b70ffcad05b05

Passed:

  • Composer validation
  • release package validation
  • deterministic package split validation
  • prerelease consumer validation
  • architecture + documentation policy
  • full quality
  • supply-chain

Architecture + Documentation:

191 tests, 7033 assertions

Full PHPUnit:

413 tests, 1757 assertions

Deptrac:

0 violations, 0 uncovered, 0 errors

PHPStan:

0 errors

PHP-CS-Fixer:

0 / 150 files fixable

Supply-chain:

  • no security vulnerability advisories
  • locked dependency licence policy passed

Package splits

Contracts:
6f61a54b4ef0f7ec4693cf40f46ac4984356ad1a

Core:
779b3810fde3a78a50d798c38283376f37132122

Module:
ec690be49890c68d0412d0e7615fbfa274f30713

Plugin:
d9bf06af4b7ad13fd1198185596eebf4a7cf949b

HTTP:
7bb2b7f2b060f50e882faa919e88568af51be77f

Testing:
f1c46bf6f0a0e74a8ef57ac08254439bf5ad0b91

HTTP and Testing remain unchanged from the accepted Phase 5.4 baseline.

Deferred

Phase 5.6:

  • explicit discovery
  • enablement/disablement configuration
  • Composer component metadata integration
  • descriptor/entry-point loading

Not included:

  • automatic recursive scanning
  • hot reload/unload
  • Runtime adapters
  • HTTP lifecycle changes
  • execution/reset changes
  • Insight / Observe / OpenTelemetry

@josiahking josiahking self-assigned this Aug 21, 2026
@josiahking
josiahking merged commit 6aa48fc into 2.x Aug 21, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant