# Extending Lighthouse
Lighthouse offers various extension points which can be utilized by package developers as well as end users.
# The Event System
Lighthouse offers a unified way of hooking into the complete execution lifecycle through Laravel's event system. You may use any Service Provider to register listeners.
You can find a complete list of all dispatched events in the events API reference.
# Adding Directives
You can add your custom directives to Lighthouse by listening for the
Check out the test suite for an example of how this works.
# Changing the default resolver
The first priority when looking for a resolver is always given to
After that, Lighthouse attempts to find a default resolver.
is expected to provide a resolver in case no resolver directive is defined for a field.
If the field is defined on the root
Lighthouse's default implementation looks for a class with the capitalized name
of the field in the configured default location.
Non-root fields fall back to webonyx's default resolver.
You may overwrite this by passing a
When the field is defined on the root
Subscription type, the
interface is used instead.