A set of plug-in utilities for easier development of cloud-enabled software.
💿
composer require dakujem/cumulus
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
As of now, the library has no external dependencies.
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 |
Pipelines & middleware
$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.
Dsn
$dsn = new Dsn('mysqli:https://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).
Run unit tests using the following command:
$
composer test
Ideas or contribution is welcome. Please send a PR or file an issue.