apache / apache/iggy

PHP SDK: production quality & feature parity tracking

Open
#3,302 0 comments 0 reactions 0 assignees View on GitHub
php
Dominant language
Rust
Stars
4.9k
Forks
432
Avg merge
2d 10h
Merged PRs (30d)
173

Description

Umbrella tracking issue for the experimental PHP SDK (`foreign/php/`).

Initial implementation lands in #3235.

Goal: bring the PHP SDK to the same implementation quality and feature parity as the other foreign SDKs (Python, Node, Go, Java, C#, C++).

## Sub-issues

CI / release pipeline:

- [ ] #3304 - wire release pipeline (add `sdk-php` to `publish.yml`, add `.github/actions/php/post-merge/action.yml`, include `sdk-php` in the SDK loop in `post-merge.yml`, decide and wire PECL `package.xml` and/or Packagist).
- [x] #3305 - pin supported PHP version in CI and package metadata (install `php8.3-cli`, `php8.3-dev`, `php8.3-mbstring`, `php8.3-xml` explicitly, tighten `composer.json` with `"require": {"php": ">=8.3"}`, document supported PHP version in `foreign/php/README.md`).
- [x] #3307 - add coverage instrumentation, JUnit test reports, and Codecov upload (wrap the PHP test-mode `cargo build` with `cargo llvm-cov`, emit lcov, produce JUnit XML, upload via `actions/upload-artifact`, wire codecov).

Packaging:

- [x] #3303 - fill out Packagist metadata in `composer.json` (`autoload`, `keywords`, `authors`, `homepage`).

Parity with the other SDKs:

- [x] #3310 - add `bdd/php/` scenarios and a `bdd-php` component in `.github/config/components.yml`.
- [x] #3311 - add `examples/php/` and an `examples-php` component.

API:

- [x] #3294 - map PHP SDK errors to typed exception classes.
- [x] Add an iterator analogue to Python's `IggyConsumer.iter_messages()` (PHP today only exposes the callback-based `consumeMessages(callback, limit)`).

## Status

The PHP SDK is currently experimental. This issue stays open until the boxes above are checked or explicitly de-scoped.

Contributor guide

Open the contributing guide

Research direction

Start with the experimental SDK in foreign/php/ and review the remaining checklist items, especially publish.yml, .github/actions/php/post-merge/action.yml, post-merge.yml, composer.json, and the callback-based consumeMessages API. Done means the outstanding parity and release work is implemented or explicitly de-scoped and the issue's checklist is complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, php
Domain
api, ci-cd, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.