Skip to content

Add playlist support and modernize PHP SDK for 3.0.0 - #6

Merged
wenbinf merged 1 commit into
mainfrom
fix/php-sdk-sync
Sep 24, 2026
Merged

wenbinf merged 1 commit into
mainfrom
fix/php-sdk-sync

Conversation

@wenbinf

@wenbinf wenbinf commented Sep 24, 2026

Copy link
Copy Markdown
Member

Adds the five playlist write methods for PHP SDK 3.0.0: createPlaylist, updatePlaylist, addPlaylistItem, deletePlaylistItem, and updatePlaylistItemNotes. All 25 existing method names, array arguments, and string response bodies are preserved. Method wrappers, a test contract, and compact README examples are generated from the Listen Notes API specification and PHP registry; this repository remains independently installable and testable.

The cURL transport now uses a fresh handle per request, preventing a POST or DELETE from affecting the next GET. It encodes path identifiers, separates query parameters and form fields, preserves empty notes/descriptions, accepts all 2xx responses, and reports HTTP 403 with PermissionDeniedException. Exceptions retain API error details and response metadata; header parsing preserves values containing colons. Redirects and automatic request retries are disabled.

Compatibility: requires PHP 8.4+. PHPUnit is upgraded to 13.3.3, with a refreshed Composer lockfile. The unused Composer plugin and Travis configuration are removed. GitHub Actions tests PHP 8.4 and 8.5, with public-mock integration in a separate job. Package publication remains a separate release step.

Validation:

  • 50 offline tests / 616 assertions pass on PHP 8.4.25 and 8.5.10 using a local HTTP fixture and the actual cURL transport.
  • 34 integration tests / 419 assertions pass against the public, stateless mock API without credentials.
  • Composer validation and PHP syntax checks pass; dependency resolution reports no security advisories.
  • The Composer archive excludes development dependencies and cache files. Its standalone installation passes the offline suite outside the checkout.
  • Monorepo generation is deterministic; release-gate, Django documentation, and frontend checks pass. New PHP SDK snippets remain hidden until publication is verified.

@wenbinf
wenbinf merged commit 8249112 into main Sep 24, 2026
3 checks passed
@wenbinf
wenbinf deleted the fix/php-sdk-sync branch September 24, 2026 03:49
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