Skip to content

#62 - Mark the classes not meant to be extended @final and the infrastructure classes @internal - #65

Merged
njoubert-cleverage merged 2 commits into
mainfrom
62
Oct 19, 2026
Merged

njoubert-cleverage merged 2 commits into
mainfrom
62

Conversation

@njoubert-cleverage

Copy link
Copy Markdown
Member

Description

Fixes #62. Same model as cleverage/process-bundle#279: annotations only, so that the classes not meant to be extended can become final in 4.0.

  • @final since 3.3 (final in 4.0): RequestTask, ClientRegistry, CleverAgeRestProcessBundle. Extending them triggers a deprecation with the Symfony DebugClassLoader.
  • Stay open: Client (extended by the applications, see docs/reference/client.md), the exceptions (as in process-bundle).
  • @internal: CleverAgeRestProcessExtension, RegisterClientsPass.

Checked in the container (composer update, PHP 8.5): PHPUnit with pcov, PHPStan, PHP-CS-Fixer and Rector OK.

Requirements

  • Documentation updates
    • Reference
    • Changelog
  • Unit tests

Breaking changes

None in 3.3: annotations only (extending a @final class triggers a deprecation). Major (4.0): the @final classes become final, the @internal classes are not covered by the BC promise.

🤖 Generated with Claude Code

njoubert-cleverage and others added 2 commits October 19, 2026 11:51
…tructure classes @internal

- @Final since 3.3 (final in 4.0): `RequestTask`, `ClientRegistry`, `CleverAgeRestProcessBundle`. Extending them triggers a
  deprecation with the Symfony DebugClassLoader.
- Stay open: `Client` (extended by the applications, see `docs/reference/client.md`), the exceptions (as in process-bundle).
- @internal: `CleverAgeRestProcessExtension`, `RegisterClientsPass`.
- Same model as cleverage/process-bundle#279.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@njoubert-cleverage
njoubert-cleverage merged commit 28954a0 into main Oct 19, 2026
18 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.

Define the public API: mark classes @final or @internal

1 participant