Skip to content

Modernize PHP support and prove failure handling with isolated tests #2

Description

@coisa

The library's last release has little documentation and no isolated proof for real failure paths. On PHP 8.5.10, the original source at f7284cd returned exit status 0 for uncaught throwables, accumulated shutdown callbacks after re-registration, and retried failing/recursive reporters. Its development lock also excluded PHP 8.5 in several integrations.

Modernize for an unreleased next major with PHP 8.3–8.5 support while retaining the public handler/factory composition model.

Acceptance criteria:

  • Reproduce warnings/suppression, uncaught throwables, native fatals, lifecycle restoration, duplicate delivery and reporter failures in bounded child processes; fix demonstrated defects without exercising failures in a real application.
  • Validate PSR container/event/middleware integrations, HTTP output cleanup and response semantics; maintain a current lowest/highest dependency CI matrix and a reproducible development container.
  • Add an Interop service provider following FastForward's callable definitions, explicit process registration and factory services for separate middleware scopes. Verify required-reporter failures using the real container. Keep FastForward optional at runtime and preserve the current package/namespace until a separate migration decision.
  • Provide English installation, runnable examples, API behavior, compatibility/migration, testing evidence and limitations. Prepare a static GitHub Pages site with manual default-branch publication only.
  • Include a portable root AGENTS.md and a consumer integration skill aligned with the implemented API and tested lifecycle, without global installation.

Executed evidence, current commit and CI results are recorded in PR #3. Fixtures do not guarantee arbitrary OOM recovery, remote logger delivery or untested SAPIs.

Merge, release and Pages publication require the owner's corresponding instruction; this issue does not perform them.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions