Skip to content

Replace stale PHP generator consumers with the Fiber workflow contract #45

Description

@rmcdaniel

Problem

The framework-neutral PHP SDK now uses Fiber-backed straight-line workflow handlers and intentionally rejects generator-returning handlers. Several first-party consumers still register service-mode PHP workflows with Generator return types and yield $context->... calls:

  • Server's published PHP and workflow-lifecycle conformance scripts and fixtures
  • Sample App's service-mode and polyglot PHP workers
  • the public 2.0 PHP quickstart, Server examples, and generated quickstart execution contract

Against the current published PHP SDK, those workers fail before their first durable operation with Workflow handlers must call WorkflowContext operations directly; Generator results are not supported. This both blocks release-critical evidence and teaches an unsupported 2.0 API.

Acceptance criteria

  • Every supported 2.0 service-mode PHP workflow example, fixture, and conformance worker uses direct WorkflowContext calls and ordinary return values.
  • Server's published PHP lifecycle, replay, signal/query, and related conformance cells execute the Fiber contract rather than only passing source checks.
  • Sample App's service-mode and polyglot PHP paths run successfully with the current installable PHP SDK.
  • Public 2.0 PHP quickstarts, Server examples, and the machine-readable quickstart contract teach the same straight-line contract as the PHP SDK's canonical quickstart contract.
  • A focused regression check rejects newly introduced Generator return types or yield $context->... syntax in supported 2.0 service-mode PHP surfaces.
  • Existing 1.x embedded documentation remains unchanged.
  • Do not add a generator compatibility shim. This is a prerelease breaking transition.
  • Completion requires current published-artifact Server and managed Cloud workflow/activity evidence using the Fiber path.

Required source targets

durable-workflow/server@main
durable-workflow/sample-app@main
durable-workflow/durable-workflow.github.io@main

Metadata

Metadata

Assignees

No one assigned

    Labels

    authority:githubGitHub is the authoritative lifecycle record for this workcompletion:evidence-requiredClose only after all explicit acceptance and operational evidence is publickind:cross-repositoryWork spans more than one public repositorykind:defectA public product behavior is incorrectkind:release-blockerA release cannot proceed until this issue is resolvedpriority:P0Immediate release or data-integrity riskrepo:documentationOwned by the public documentation repositoryrepo:sample-appOwned by the sample application repositoryrepo:serverOwned by the standalone server repositorystatus:readyReady for implementation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions