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.
Architecture fit
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.GraphqlEntityRepository::countMatching() is no longer marked internal. Nothing in the profiler, resolver execution, schema shape, or mapping semantics changes.@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.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.Integration feasibility
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.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.$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
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.Key questions
DebugClassLoader, WebProfiler, Twig). Confirm the host app is Symfony, then close this question permanently.GraphqlEntityRepository, and do we ratchet deprecation counts? Inventory and rebaseline before bumping.countMatching() anywhere, or call it outside tests? If yes, treat it as API now and pin the signature.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.findBy() hint) still hold across the intervening releases, or has upstream changed them?Stack fit
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
Compatibility
countMatching() should be verified against any local override.findBy() hints, and no conflicting population of the new static properties.Sequencing
countMatching() usage — production, test, or override — and decide deliberately whether to depend on it.findBy() internal guidance if the intervening releases changed the hint's behavior.Maintenance
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.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
findBy() hint: advisory signal, validate against access patterns, do not apply reflexively.Scaling
Failure modes
countMatching() because it is now public, without an upstream support commitment. Architectural drift rather than a defect.findBy() hint; masking regression in the highlighting renderer. None of these are affected by v5.10.1.Ramp-up
How can I help you explore Laravel packages today?