Data sources are a pattern for collecting the metadata in an extensible way in the Clockwork server-side library. Each data source collects data about a particular topic, eg. a PhpDataSource, LaravelDataSource, or DoctrineDataSource.
Creating a new data source is as simple as creating a class implementing the
Clockwork\DataSource\DataSourceInterface interface. Though instead of implementing the interface we recommend extending the
Clockwork\DataSource\DataSource base class, which will make you compliant with future interface changes.
You need to implement a single
resolve(Request $request) method that will receive the
Request data object and extends it with your custom data.
For example, our application uses a custom session implementation, let's create a data source that adds the session data to Clockwork:
class SessionDataSource extends DataSource
public function resolve(Request $request)
$request->session = session()->all();
To use the new data source we need to register it with the main Clockwork class:
For more inspiration take a look at the existing data sources included in Clockwork.