News

Lighthouse GraphQL Server for Laravel

Published
Lighthouse GraphQL Server for Laravel image

Lighthouse is a PHP package that allows you to serve a GraphQL endpoint from your Laravel application. It aims to reduce boilerplate code around creating a schema and integrates well with your existing Laravel application.

According to the Lighthouse documentation, it supports a schema-first approach:

Lighthouse enables schema-first development by allowing you to use the native Schema Definition Language to describe your data. Leverage server-side directives to add functionality and bring your schema to life.

With nothing more than this schema file (along w/ Eloquent models and migrations set up), you have a fully functional GraphQL server with no additional code!

In addition to a bunch of built-in GraphQL directives, Lighthouse allows you to customize things to support any data requirements.

The way that you define your GraphQL with this package is to point the lighthouse.php configuration file to your main schema file:

'schema' => [
'register' => base_path('routes/graphql/schema.graphql'),
],

Here’s an example type which associates a Posts and Comments relationship in Eloquent:

type Post {
author: User
comments: [Comment!]
}

Here’s an example of using the @hasMany directive which works in tandem with Laravel’s hasMany relationship:

type User {
posts: [Post!]! @hasMany
}

Check out the complete list of Directives that ship with Lighthouse if you’re already familiar with GraphQL and you want to dive into schema development. It will help you to be familiar with GraphQL before starting to work with Lighthouse, but it seems to be like an excellent package for integrating GraphQL in Laravel!

If you are not familiar with GraphQL, check out the official GraphQL website for a complete overview. Wes Bos recently released Fullstack Advanced React and GraphQL which teaches you advanced React patterns, but also covers using GraphQL on the server and client-side.

To learn more about Lighthouse and start integrating it as a GraphQL server for your Laravel apps, check out the Lighthouse documentation and the Lighthouse GraphQL Server code on GitHub.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Filed in

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article