transprime-research/laravel-chained

1.0.0 2021-10-24 13:24 UTC

This package is auto-updated.

Last update: 2024-04-24 18:47:27 UTC


README

twitter_header_photo_2.png

Build Status Latest Stable Version Total Downloads Latest Unstable Version Latest Monthly Downloads License

About Laravel-chained

Laravel chained help to chain method calls on any class.

Do it Like a PRO 🆗

Installation

  • composer require transprime-research/laravel-chained

Quick Usage

Say we have this class with a lot of static methods. Instead of:

$value = Str::lower('ChainedOnStr');
$value = Str::snake($value);
$value = Str::before($value, '_');
$value = Str::length($value); //7

You use:

$value = chained(Str::class, )
    ->to('lower', 'ChainedOnStr')
    ->to('snake')
    ->to('before', '_')
    ->to('length')(); //14

Or Aliased method calls:

$value = chained(Str::class)
    ->lower('ChainedOnStr')
    ->snake()
    ->before('_')
    ->length()(); //7

Other Usages

tap() method

$value = chained(Str::class)
    ->to('lower', 'ChainedOnStr')
    ->tap(function ($res) {
        var_dump($res);
    })
    ->to('snake')
    ->to('length')
    ->up(); //Up is used instead of ()

Coming Soon

Chain on more classes

use Transprime\Chained\Chained;

$value = chained(DB::class)->to('resolveDb', 'ChainedOnStr')
    ->chain(Str::class, function (Chained $chain) {

        return $chain->to('lower')->to('snake');

    })
    ->chain(Arr::class, function (Chained $chain) {

        return $chain->to('wrap')->to('add', 1, 'using_add');
    })();
    
//Or

chained(DB::class)
    ->to('resolveDb', 'ChainedOnStr')
    ->chain(Str::class) // next calls use `Str` class
    ->to('lower')->to('snake')
    ->chain(Arr::class) // next calls use `Arr` class
    ->to('wrap')->to('add', 1, 'using_add')();

Api implementation to be decided

Additional Information

This package is part of a series of "Code Dare".

See other packages in this series here:

Contributions

For new features, checkout with prefix feature/#issueid e.g feature/#100-add-auto-deploy

  • Clone this repository
  • run sh dockerizer.sh or bash dockerizer.sh
  • execute into the docker environment with docker-compose exec conditional sh (sh can be another bash)
  • run tests with vendor/bin/phpunit

The docker setup was made easy using Laravel Dockerizer

Similar packages

Licence

MIT (See LICENCE file)