☁ Cumulus
, (*1)
A set of plug-in utilities for easier development of cloud-enabled software., (*2)
💿 composer require dakujem/cumulus, (*3)
📒 Changelog, (*4)
Documentation
Included classes:
- Pipeline
- 👉 Middleware and Pipelines
- a class for middleware and pipelines
- Dsn
- 👉 Data Source Name
- a DSN configuration wrapper and parser
- LazyIterator
- 👉 LazyIterator
- an iterator for on-demand data provisioning, (*5)
As of now, the library has no external dependencies., (*6)
Compatibility
dakujem/cumulus |
PHP |
^2.0 |
^8 onwards |
^1.5, ^1.6
|
7.2, 7.3, 7.4, 8.0
|
^1.4 |
7.2, 7.3, 7.4
|
Examples
Pipelines & middleware, (*7)
$foobarSuffixTube = Pipeline::tube([
function (string $a): string {
return $a . 'foo';
},
function (string $a): string {
return $a . 'bar';
},
]);
$foobarSuffixTube('iam'); // 'iamfoobar'
$foobarPrefixMiddleware = Pipeline::onion([
function (string $a, callable $next): string {
return $next('bar' . $a);
},
function (string $a, callable $next): string {
return $next('foo' . $a);
},
]);
$foobarPrefixMiddleware('youare'); // 'foobaryouare'
More in the documentation here: Middleware and Pipelines., (*8)
Dsn, (*9)
$dsn = new Dsn('mysqli://john:secret@localhost/my_db');
// with optional default values
$driver = $dsn->get('driver', 'mysqli');
$port = $dsn->get('port', 3306);
// without optional defaults
$user = $dsn->get('username');
// using magic and array accessors:
$user = $dsn->username;
$user = $dsn['username'];
$pass = $dsn->password ?? '';
More in the documentation here: Dsn (Data Source Name)., (*10)
Testing
Run unit tests using the following command:, (*11)
$ composer test, (*12)
Contributing
Ideas or contribution is welcome. Please send a PR or file an issue., (*13)