Skip to content

Use explicit bindings snapshots#102

Open
koriym wants to merge 5 commits into
bindings-object-graph-cdn-assetsfrom
apidoc-explicit-bindings-snapshot
Open

Use explicit bindings snapshots#102
koriym wants to merge 5 commits into
bindings-object-graph-cdn-assetsfrom
apidoc-explicit-bindings-snapshot

Conversation

@koriym

@koriym koriym commented Jul 16, 2026

Copy link
Copy Markdown
Member

Problem

The bindings documentation path asks Injector to generate bindings.md in the application tmp directory, checks for the file, reads it back, and falls back to empty Markdown. Object graph analysis also runs against the same module before that file is consumed.

Approach

  • collect Ray\Bindings\Bindings immediately after AppModule construction
  • retain the collected snapshot in Config instead of a Markdown string
  • generate the object graph after snapshot collection, then construct Injector
  • render HTML through Bindings::toHtml() with composer.lock, message, and vendor directory
  • remove tmp bindings artifact checks and file reads
  • cover application-only bindings, graph-only concrete dependencies, Injector built-ins, source links, and absent tmp artifacts

Impact

Bindings HTML and DOT assets keep their existing interactive behavior. The bindings page now represents only the composed application module at collection time and no longer relies on bindings.md filesystem round trips.

Dependencies

Checks

  • composer cs-fix
  • composer tests (139 tests, 590 assertions; PHPStan and Psalm: no errors)

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 27d90b98-67be-4d50-adb2-fc26e7669def

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch apidoc-explicit-bindings-snapshot

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

koriym added 4 commits July 17, 2026 02:15
With bear/package ^1.9, --prefer-lowest selects bear/package 1.9.0,
which requires bear/query-repository ^1.6 and resolves to 1.6.0.
That version's QueryRepositoryModule binds Doctrine\Common\Cache\Cache,
but doctrine/cache is no longer a dependency, causing Ray\Di NotFound.
bear/package 1.20.0 requires bear/query-repository ^1.13 (doctrine-free).
bear/aura-router-module 2.1.1 (the previous --prefer-lowest floor)
reads routes via the doctrine/annotations reader and cannot read
PHP 8 attribute routes, so the audit and OpenAPI generators miss
operations (e.g. '### GET /address') and component examples.
2.5.1 reads PHP 8 attributes and no longer requires doctrine/annotations.
@koriym
koriym marked this pull request as ready for review July 16, 2026 18:36
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