Streams architecture is designed to support systemic customization and extension.
Before continuing, please familiarize yourself with Laravel's service container.
Below is essential knowledge on how to extend streams core.
All basic services and components are "macroable" and allow direct extension via Laravel macros. Typically, you should declare collection macros in the boot method of a service provider.
use Streams\Core\Stream\Stream;
use Streams\Ui\Table\TableBuilder;
Stream::macro('table', function ($attributes = []) {
// Grab the UI config off the stream.
$configuration = Arr::get($this->ui, 'table', []);
$configuration = Arr::undot($configuration);
// Merge configured and passed attributes.
$attributes = array_merge($configuration, $attributes);
// Set the stream.
$attributes['stream'] = $this;
return new TableBuilder($attributes);
});
$table = Streams::make('contacts')->table();
The fundamental features and utilities offered by the Streams platform.
A full featured, universal, and extensible RESTful API.
Extensible, user-friendly, and performant control panel and user interface utilities and services.
CLI Tooling for Laravel Streams.