Download the PHP package yakovenko/laravel-lighthouse-graphql-multi-schema without Composer
On this page you can find all versions of the php package yakovenko/laravel-lighthouse-graphql-multi-schema. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download yakovenko/laravel-lighthouse-graphql-multi-schema
More information about yakovenko/laravel-lighthouse-graphql-multi-schema
Files in yakovenko/laravel-lighthouse-graphql-multi-schema
Package laravel-lighthouse-graphql-multi-schema
Short Description A Laravel package that provides multi-schema support for Lighthouse GraphQL.
License MIT
Informations about the package laravel-lighthouse-graphql-multi-schema
Lighthouse GraphQL Multi-Schema
yakovenko/laravel-lighthouse-graphql-multi-schema
is a Laravel package that provides multi-schema support for Lighthouse GraphQL. It allows you to manage multiple GraphQL schemas within a single Laravel application, streamlining development and extending functionality.
Installation
Requirements
- PHP : ^8
- Laravel : ^9.0 || ^10.0 || ^11.0
- Nuwave Lighthouse : ^6.0
Install the Package
You can install the package using Composer:
Publish Configuration
After installing the package, you need to publish the configuration file by running the following command:
This will create a configuration file named lighthouse-multi-schema.php in the config/ directory, where you can set up your GraphQL schemas.
Configuration
In the config/lighthouse-multi-schema.php file, you can define your schemas and their settings. Here’s an example configuration:
CSRF exceptions
Add your GraphQL routes to the CSRF exceptions.
Open the App/Http/Middleware/VerifyCsrfToken.php file and add your routes to the $except array.
Registration provider
You need to add your service provider to the providers array in your Laravel application's file:
Create Directories for Each Schema
Organize your schema files into separate directories for each schema. The structure of these directories and how you split the files is up to you. Here’s an example of one way to organize them:
Console Command Example
The lighthouse:clear-cache command is used to manage the cache for your GraphQL schemas. Below are the available usages:
1 - Clear All Schema Caches
To clear the cache for all GraphQL schemas, run the following command:
This command will delete all cached schema files, ensuring that any changes made to the schemas are reflected the next time they are accessed.
2 - Clear Cache for a Specific Schema
You can also clear the cache for any other schema by replacing {keyYourSchema} with the desired schema name:
example:
Replace {keyYourSchema} with the actual name of the schema you want to target. This will specifically remove the cache for that schema only.
Endpoint Schemas
Schema 1: Access the GraphQL schema at:
Schema 2: Access the GraphQL schema at:
Schema 3: Access the GraphQL schema at:
Usage
Once configured, you can use the defined routes for each schema in your application. Each route will utilize its corresponding GraphQL schema. You have a multi-schema setup that allows for an unlimited number of access points, each supporting various mutations and queries tailored to your specific needs. You can define each schema according to your project requirements. This flexibility allows you to create distinct schemas for different parts of your application, ensuring that each area can have customized queries and mutations as needed.
All versions of laravel-lighthouse-graphql-multi-schema with dependencies
nuwave/lighthouse Version ^6.0
laravel/framework Version ^9.0 || ^10.0 || ^11.0