thecodingmachine/graphql-controllers
A PHP package for defining GraphQL APIs with controller classes: annotate methods to resolve queries, mutations, and fields, then wire them into a webonyx/graphql-php schema with dependency injection.
Architecture fit
webonyx/graphql-php (the de facto PHP GraphQL reference implementation). It is framework-agnostic, not Laravel-specific: it resolves schema fields to methods on plain PHP classes annotated with @Query / @Mutation / @Field, and pulls collaborators from a PSR-11 container..graphql files), because the schema becomes an output of PHP annotations and is no longer a reviewable artifact in isolation.thecodingmachine/graphqlite. For a new build, adopting the engine directly rather than the higher-level, better-maintained sibling is a material architectural decision, not a detail.Integration feasibility
Technical risk — high
webonyx/graphql-php major-version churn without guaranteed upstream alignment.Key questions for the vendor/OSS evaluation
webonyx/graphql-php pinned to a supported major, and who bumps it?graphqlite) and does it justify the hedge?Stack fit
webonyx → application services. Authentication via existing Laravel middleware; authorization must be implemented explicitly — there is no Gate/Policy mapping, so field-level and object-level checks belong in the resolver layer or a custom field middleware. Plan for this in estimates; it is the most frequently underestimated work item.app() passed as the PSR-11 implementation.Migration path
rebing/graphql-laravel, treat migration as a resolver rewrite, not a port: the schema is regenerated from annotations, so SDL becomes an output, not an input. The business case for that churn is weak unless there is a specific ergonomics complaint.Compatibility
webonyx/graphql-php constraints are likely and are a hard blocker if other packages pin it.Sequencing
graphqlite (same style, larger community) or Lighthouse (Laravel-native), and record the rationale.Maintenance
Support
webonyx semantics (type system, execution, error format), which is transferable and well documented. The package-specific surface is small; the risk is concentrated in the unmaintained edge, not the concept.Scaling
Failure modes
/graphql. Guard with a health check that exercises schema construction.webonyx major bump lands with no upstream patch — the fork contingency becomes live.Ramp-up
How can I help you explore Laravel packages today?