dakujem/cumulus

☁ A set of utilities for easier development of cloud-enabled software.

2.0.2 2024-04-24 14:42 UTC

This package is auto-updated.

Last update: 2024-04-24 14:46:58 UTC


README

PHP from Packagist PHP Test Coverage Status

A set of plug-in utilities for easier development of cloud-enabled software.

💿 composer require dakujem/cumulus

📒 Changelog

Documentation

Included classes:

As of now, the library has no external dependencies.

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

$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://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).

Testing

Run unit tests using the following command:

$ composer test

Contributing

Ideas or contribution is welcome. Please send a PR or file an issue.