Weave Code
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 Laravel Package

cfpinto/graphql

Laravel package to add a GraphQL API to your app, offering schema setup, query/mutation handling, and integration with Laravel’s routing and services so you can expose application data through GraphQL with minimal boilerplate.

View on GitHub
Deep Wiki
Context7

A GraphQL query builder class

Frequently asked questions about Graphql
Does cfpinto/graphql work with Laravel 10 and PHP 8.2+?
The package likely requires manual testing for PHP 8.2 due to its last update in 2020. Check for conflicts with named arguments or return_type declarations. Laravel 10 compatibility depends on service provider booting and facades, which may need adjustments. Start with a fresh Laravel 10 project and test basic queries.
Can I use this package to build nested GraphQL queries (e.g., users with posts)?
The package supports basic query building but lacks native nested query or fragment handling. You’d need to manually construct nested selections or extend the QueryBuilder class. For complex relationships, consider pairing it with Eloquent’s eager loading or writing custom resolver logic.
How do I integrate this with Laravel’s routing system for a GraphQL endpoint?
Register a route like `Route::get('/graphql', fn() => response()->json(['data' => (new QueryBuilder())->from('users')->toGraphQL()]))`. For POST requests (common for GraphQL), use `Route::post('/graphql', ...)` and parse the input body. Middleware can validate or authenticate requests before query execution.
Is this package suitable for production APIs with strict schema requirements?
No—this is a lightweight query builder, not a full GraphQL server. It lacks schema validation, subscriptions, or mutation support. For production APIs, use alternatives like `graphql-php/graphql` or `spatie/laravel-graphql`, which enforce schema contracts and include tooling for mutations and subscriptions.
How do I handle mutations (e.g., creating/updating data) with this package?
The package focuses on queries, not mutations. To support mutations, you’d need to manually construct GraphQL input types and resolve them via Laravel’s services or controllers. For example, create a route for mutations and use the QueryBuilder to validate input before processing with Eloquent or database operations.
Are there any performance concerns with dynamic GraphQL queries compared to static schema tools?
Dynamic queries built at runtime may introduce overhead due to lack of schema caching or query planning. Static tools like `spatie/laravel-graphql` pre-compile schemas for better performance. For high-traffic endpoints, benchmark both approaches or use this package for low-frequency, internal queries where flexibility outweighs performance.
Can I use this package alongside existing REST APIs in a hybrid setup?
Yes—this package is lightweight and can coexist with REST. Use separate routes for GraphQL (e.g., `/graphql`) and REST endpoints. For example, expose admin dashboards via GraphQL while keeping public APIs as REST. Middleware can route requests based on the endpoint or `Accept` header.
What alternatives should I consider if this package doesn’t meet my needs?
For a full GraphQL server, try `graphql-php/graphql` (schema-first, supports subscriptions) or `spatie/laravel-graphql` (Laravel-specific, includes Laravel Scout integration). If you need GraphQL for Laravel with minimal setup, `beberlei/graphql` is another option, though it’s less Laravel-native. Evaluate based on your need for mutations, subscriptions, or schema validation.
How do I test GraphQL queries built with this package in my Laravel app?
Test by mocking the QueryBuilder in PHPUnit. For example, assert the output of `$query->toGraphQL()` matches expected JSON. Use Laravel’s HTTP tests to verify routes return correct GraphQL responses. Test edge cases like empty results, nested queries, or invalid inputs. Since the package lacks built-in validation, manual checks are critical.
What’s the maintenance status of this package, and should I fork it if needed?
The package is unmaintained (last release in 2020) with no active issues or updates. If you encounter PHP 8.x or Laravel 10+ incompatibilities, fork it and submit fixes to the community. Pin the Composer version to avoid surprises, and monitor GitHub for forks or alternatives. Consider migrating to a maintained package if you hit critical limitations.
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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky