Setup
Outside Laravel
The stream components will work, as-is, even outside a regular Laravel application. However, depending on your needs, you may have to manually configure a few things before able to achieve desired behaviour. Where such is relevant, the documentation will make it clear.
Inside Laravel
To gain the most of this package, you should register its service provider and publish its assets.
Register Service Provider
In your config/app.php
, register StreamServiceProvider
.
return [
// ... previous not shown ... //
/*
|--------------------------------------------------------------------------
| Autoloaded Service Providers
|--------------------------------------------------------------------------
*/
'providers' => [
\Aedart\Streams\Providers\StreamServiceProvider::class
// ... remaining services not shown ... //
],
];
Publish Assets
Run vendor:publish
to publish this package's configuration.
php artisan vendor:publish
You should now have a new config/streams.php
configuration available in your application.
Publish Assets for Athenaeum Core Application
When using this package with an Athenaeum Core Application, then run the following command to publish assets:
php {your-cli-app} vendor:publish-all
Configuration
The config/streams.php
configuration allows you to add and customise different "profiles" for the stream "locking" and "transaction" mechanisms. Feel free to thinker with these as you see fit.
More information about the mentioned mechanisms are covered in later sections.
<?php
return [
/*
|--------------------------------------------------------------------------
| Default Stream profiles
|--------------------------------------------------------------------------
*/
'default_lock' => env('STREAM_LOCK', 'default'),
'default_transaction' => env('STREAM_TRANSACTION', 'default'),
/*
|--------------------------------------------------------------------------
| Lock profiles
|--------------------------------------------------------------------------
*/
'locks' => [
'default' => [
'driver' => \Aedart\Streams\Locks\Drivers\FLockDriver::class,
'options' => [
'sleep' => 10_000,
'fail_on_timeout' => true
]
]
],
// ... remaining not shown...
];