Download the PHP package netmex/lumina without Composer
On this page you can find all versions of the php package netmex/lumina. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download netmex/lumina
More information about netmex/lumina
Files in netmex/lumina
Package lumina
Short Description LuminaBundle: A Symfony bundle providing Lighthouse-inspired GraphQL support with automatic Doctrine integration, custom resolvers, scalars, directives, queries, and mutations.
License MIT
Informations about the package lumina
Netmex Lumina
LuminaBundle — A Symfony bundle providing Lighthouse-inspired GraphQL support with automatic Doctrine integration, custom resolvers, scalars, directives, queries, and mutations.
About
Netmex Lumina is a directive-driven GraphQL framework for Symfony.
Instead of writing resolvers, repositories, or query builders by hand, Lumina lets you describe behavior directly in your GraphQL schema using custom directives. Those directives are compiled once into Intents, which are then executed efficiently at runtime.
Lumina focuses on:
- Clean architecture
- Zero boilerplate resolvers
- Strong separation between schema, intent, and execution
- First-class Symfony & Doctrine integration
Core Concepts
1. Schema-Driven Behavior
Your GraphQL schema is the source of truth.
No resolver classes.
No wiring.
The schema defines everything.
2. Directives = Behavior
Each directive represents a unit of intent.
Examples:
@all- Fetch all records.@where- Filter records by field.@orderBy- Sort records.
Directives are:
- Reusable
- Composable
- Framework-agnostic at the schema level
3. Intent Compilation
At schema compile time:
- The GraphQL AST is traversed once
- Directives are instantiated
- Intents are built per Type.Field
These intents are stored in an IntentRegistry and reused during execution.
- No runtime AST traversal
- No resolver discovery
- No reflection hacks
4. Execution via Doctrine
At runtime:
- Lumina resolves a field
- Looks up its compiled intent
- Builds a Doctrine
QueryBuilder - Applies argument directives
- Executes the resolver directive
Installation
Using Directives
Lumina comes with many built-in directives, including:
- Query directives:
@all,@find,@where,@orderBy,@limit,@offset,@paginate - Relation directives:
@hasMany,@belongsTo,@join - Mutation directives:
@create,@update,@delete,@validate - Aggregation directives:
@count,@sum,@avg - Access control directives:
@can,@role,@owner - Utilities:
@deprecated
For detailed usage and examples, see the Directive Documentation.
Extending Lumina
Creating a Directive
Lumina allows you to create custom directives that can:
- Modify query execution
- Create input types
- Attach arguments to fields
- Modify the field’s output type
- Transform runtime output data
See the Creating a Directive Guide for a full example.
Why Lumina?
- No resolvers
- No controller logic
- No duplicated query code
- One AST pass
- Explicit intent
- Symfony & Doctrine native
Lumina is ideal if you want:
- Schema-first GraphQL
- Strong consistency
- Minimal boilerplate
- High performance
Project Status
Actively developed
The core architecture is stable and functional. More directives and documentation are planned.
License
MIT License
All versions of lumina with dependencies
doctrine/orm Version ^3.5
webonyx/graphql-php Version ^15.29
symfony/dependency-injection Version ^7.3
symfony/event-dispatcher Version ^7.3
symfony/config Version ^7.3
symfony/property-access Version ^7.4
symfony/http-kernel Version ^7.3
symfony/serializer-pack Version ^1.3
symfony/security-core Version ^7.4