Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Graphql Orm Laravel Package

hecht-a/graphql-orm

GraphQL ORM for Laravel that maps Eloquent models to GraphQL types, letting you expose your database through a schema-driven API with minimal boilerplate. Define models and relationships once and let the package handle querying, filtering, and nested resolution for you.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • Scope correction first: v5.2.0 → v5.10.1 is not one release, it is eight minor versions plus a patch. The notes in hand (v5.10.1) describe a single-line fix; the cumulative delta is what we would actually be adopting. Any planning must be done against the full intervening changelog, not this patch note.
  • The v5.10.1 change itself is a visibility correction, not a capability: GraphqlEntityRepository::countMatching() is no longer marked internal. Nothing in the profiler, resolver execution, schema shape, or mapping semantics changes.
  • Why it matters anyway: removing @internal is an API commitment. The method was previously "we may change this at any time"; it is now supported surface. That is a forward-looking constraint on the maintainer and an invitation for us to depend on it.
  • The trigger is telling — a test stubbing the repository emitted a deprecation from Symfony's DebugClassLoader. That confirms the Symfony vocabulary (bundle, WebProfiler, Twig templates) flagged in the prior assessment and substantially resolves key question 1: this is a Symfony-first package. Laravel consumers remain a poor fit.
  • It also raises a practical question about our own suites: if we stub repositories or treat deprecations as CI errors, we may be generating noise today that this patch silences.

Integration feasibility

  • Trivial in isolation: dependency bump, no config migration, no deprecations introduced, no removals.
  • The only behavioral surface is the absence of a deprecation notice in tests that stub GraphqlEntityRepository. A test that previously logged "you are using an internal method" now logs nothing. If we have assertions on deprecation counts (baseline-allowlists, SYMFONY_DEPRECATIONS_HELPER thresholds), those baselines must be lowered or they will fail in the opposite direction.
  • New stable public surface: countMatching(). If we already call it, we move from tolerated to supported. If we override it in a test double or subclass, we should align the signature with upstream now, because divergence becomes a breaking change rather than a tolerated quirk.
  • The prior assessment's public-surface concerns ($identifierProperty, $hydrationDuration) are unchanged by this patch; countMatching() simply joins them. The package is incrementally and quietly growing supported API, which is the trend to track.

Technical risk

  • Very low. Profiler/debug-class-loader territory only; inert outside debug mode. A defect here produces test noise, not a broken request.
  • Risk 1 — deprecation-baseline drift. Teams that pin or ratchet deprecation counts will see CI flip. Cheap to fix, but it fails loudly and at the worst moment if the bump is batched into routine maintenance.
  • Risk 2 — silent over-coupling. De-internalization is an invitation. Building production logic on countMatching() because it is now "public" is a category error: it was de-internalized to stop a debug deprecation, not because it was hardened as a supported extension point. Confirm intent upstream before depending on it outside tests.
  • Risk 3 — skip-level upgrade. Jumping 5.2.0 → 5.10.1 means we are absorbing seven other minor releases' worth of behavior changes (including the trace-attribution change and profiler additions noted previously) inside what looks like a one-line patch. Scope this honestly in the change record.

Key questions

  1. Symfony or Laravel? Largely answered: Symfony vocabulary in two consecutive releases (DebugClassLoader, WebProfiler, Twig). Confirm the host app is Symfony, then close this question permanently.
  2. What is the full changelog for v5.3.0 through v5.10.1? We need the cumulative delta, not this patch.
  3. Do our test suites stub GraphqlEntityRepository, and do we ratchet deprecation counts? Inventory and rebaseline before bumping.
  4. Do we override countMatching() anywhere, or call it outside tests? If yes, treat it as API now and pin the signature.
  5. Is countMatching() intended as a stable extension point, or was de-internalization purely a test-ergonomics fix with no support commitment? The answer determines whether we may build on it.
  6. Do the previously flagged items (trace call-site assertions, masking in highlighted output, the advisory findBy() hint) still hold across the intervening releases, or has upstream changed them?

Integration Approach

Stack fit

  • Unchanged from the prior assessment: native for Symfony + Doctrine + Web Profiler; poor fit for Laravel, where profiler-dependent features have no direct Telescope/Debugbar equivalent.
  • The DebugClassLoader reference is a Symfony-only mechanism. This patch has zero applicability outside Symfony — it is not even inert elsewhere, it is simply not present.

Migration path

  • Do not frame this as a patch bump. Frame it as 5.2.0 → 5.10.1 and read the full intervening changelog first.
  • Pre-work, in order: (a) enumerate releases between 5.2.0 and 5.10.1; (b) re-run the prior assessment's trace-assertion sweep; (c) inventory repository stubs and deprecation baselines.
  • Rollout: dev/CI first — that is where this patch has any effect at all — then production as bookkeeping batched with routine maintenance.

Compatibility

  • No breaking changes announced in v5.10.1. Deprecation behavior changes in the negative direction only (fewer notices), which is the safe direction for runtime but the disruptive direction for ratcheted baselines.
  • Signature compatibility for countMatching() should be verified against any local override.
  • All prior compatibility assumptions still stand: Web Profiler theme coupling, single-identifier assumption behind findBy() hints, and no conflicting population of the new static properties.

Sequencing

  1. Pull the v5.3.0–v5.10.1 changelog and re-run this assessment against the cumulative delta. This gates everything below.
  2. Inventory deprecation ratchets and repository stubs; rebaseline.
  3. Verify any countMatching() usage — production, test, or override — and decide deliberately whether to depend on it.
  4. Bump dev/CI; validate profiler rendering and masking behavior.
  5. Reissue the findBy() internal guidance if the intervening releases changed the hint's behavior.
  6. Bump production as routine maintenance; no change-management event.
  7. Standing: adopt the Entities tab output as a periodic mapping-drift review artifact.

Operational Impact

Maintenance

  • Negligible for this patch. The ongoing concern is cumulative: the package is steadily converting internals into supported API (countMatching(), $identifierProperty, $hydrationDuration). Each conversion is individually harmless and collectively means our dependency surface is larger than the 5.2.0 assessment assumed. Keep usage confined to dev/test tooling.
  • The real maintenance obligation created here is on the maintainer, not us: countMatching() can no longer change freely. That is a good sign for stability, but it should not be read as a stability guarantee for adjacent internals.

Support

  • No user-facing impact. Support burden remains developer-facing.
  • Expect a small, one-time wave of "why did this deprecation disappear / why did my deprecation baseline break" questions at bump time. Answer once, in the upgrade notes.
  • Restate the existing stance on the findBy() hint: advisory signal, validate against access patterns, do not apply reflexively.

Scaling

  • No scaling implications. Debug-gated instrumentation only.
  • The prior caveat stands: if the profiler is enabled in shared/staging environments, cap trace retention — per-query trace objects now carry identifier property, hydration duration, and highlighted query markup.

Failure modes

  • CI failure from a tightened deprecation baseline — the most likely outcome of this patch, and the least serious.
  • Accidental production dependency on countMatching() because it is now public, without an upstream support commitment. Architectural drift rather than a defect.
  • Carrying forward: broken profiler panel from theme mismatch; call-site mis-attribution outside covered code paths; over-fetching driven by the findBy() hint; masking regression in the highlighting renderer. None of these are affected by v5.10.1.

Ramp-up

  • No incremental ramp-up. The package's DX value (Entities tab, query highlighting, hydration metric, N+1 diagnosis) is unchanged by this patch and remains the primary justification for the upgrade.
  • Budget the same half-day of orientation as before, and add ten minutes on the upgrade notes: what changed between 5.2.0 and 5.10.1, and why a one-line patch note represents eight releases.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource