thecodingmachine / graphqlite

Use PHP Attributes/Annotations to declare your GraphQL API
https://graphqlite.thecodingmachine.io
MIT License
554 stars 95 forks source link

Support subscription operations #649

Closed oojacoboo closed 6 months ago

oojacoboo commented 6 months ago

Currently, GraphQLite doesn't support subscription operations at all. However, basic support for the GQL syntax is supported in webonyx. This PR provides basic support for subscriptions.

By design, this subscription implementation is basic. After much research and discussion, it's apparent that subscriptions will need to be implemented in a large variety of ways. This implementation is non-opinionated, only replicating the same implementation style as queries and mutations.

What it does, is allow the subscription GQL syntax, routing to the new #[Subscription] annotated controller method. The behavior will be the same as a mutation or query - no difference there.

Future improvements could be made to this to support long-running PHP processes. I'm thinking the controller method could return a generator/fiber.

oprypkhantc commented 6 months ago

Cool, good seeing some work done in that direction :)