Skip to content

Phase 5.4: restricted component registration - #44

Merged
josiahking merged 1 commit into
2.xfrom
feature/phase-5-restricted-registration
Aug 20, 2026
Merged

Phase 5.4: restricted component registration#44
josiahking merged 1 commit into
2.xfrom
feature/phase-5-restricted-registration

Conversation

@josiahking

Copy link
Copy Markdown
Owner

Summary

Implements EvolvePHP 2 Phase 5.4 — Restricted Registration and Contribution Boundary.

This adds the public experimental ServiceDefinitionRegistrar contract and Core-owned deterministic component service registration with staged, atomic publication.

Key changes

  • Adds Evolve\Contracts\Component\Registration\ServiceDefinitionRegistrar
  • Adds deterministic registration using ResolvedComponentGraph::orderedDeclarations()
  • Enforces exact ComponentGraphDeclaration object-identity binding
  • Adds restricted registrar authority with no service lookup/freeze/scope access
  • Stages definitions before atomic ServiceRegistry publication
  • Attributes registration failures to the exact component
  • Hardens service maps against PHP numeric-string key coercion
  • Adds direct Contracts dependency on psr/container ^1.1 || ^2.0
  • Leaves ApplicationKernel, component lifecycle entry points, discovery and enablement deferred

Validation

Committed ref:

7752b94b8f4516b923c8d5f71d10461979e27057

Passed:

  • composer validate --strict --check-lock
  • composer quality
  • composer release:validate
  • composer supply-chain
  • composer release:split:validate
  • composer release:consumer:validate

PHPUnit aggregate:

389 tests, 1613 assertions

Deptrac:

0 violations, 0 uncovered, 0 errors

Package split transition:

Contracts:
f8669d86ccf31f7e06dad96e3358645c065ea08e

Core:
6ce9c6bddd5ac90ae2e8da434003b9f27e88d0d8

Module, Plugin, HTTP and Testing split SHAs remain unchanged from the accepted Phase 5.3B baseline.

Deferred

Phase 5.5:

  • Module/Plugin entry-point contracts
  • boot / ready / shutdown
  • ApplicationKernel lifecycle integration

Phase 5.6:

  • discovery
  • enablement
  • Composer component metadata

@josiahking
josiahking merged commit feb1257 into 2.x Aug 20, 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