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

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Volker Dusch on the PHP RCE Vulnerabilities and Disclosure image

Volker Dusch on the PHP RCE Vulnerabilities and Disclosure

Read article
Decide with Jev: Turn AI Answers into Decisions with PHP Rules image

Decide with Jev: Turn AI Answers into Decisions with PHP Rules

Read article
Skuul: Open-Source School Management Built on Laravel image

Skuul: Open-Source School Management Built on Laravel

Read article
Laravel Read Replicas: Prevent Stale Reads After a Write image

Laravel Read Replicas: Prevent Stale Reads After a Write

Read article
Screenshot: Capture Images and PDFs with PHP and Laravel image

Screenshot: Capture Images and PDFs with PHP and Laravel

Read article
Reset Sticky Database Connections Between Laravel Queue Jobs image

Reset Sticky Database Connections Between Laravel Queue Jobs

Read article