Skip to content

Just a handy helper for callables and calling them!

License

Notifications You must be signed in to change notification settings

nabeghe/cally-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cally (Callable Helper for PHP)

Just a handy helper for callables and calling them!


🫡 Usage

🚀 Installation

You can install the package via composer:

composer require nabeghe/cally

Examples

Example - call:

An alternative to call_user_func_array where you can create an array callable and place the arguments directly in the array.

use Nabeghe\Cally\Cally;

class Math
{
    public static function multiple($number1, $number2)
    {
        return $number1 * $number2;
    }
}

$value = Cally::call([Math::class, 'multiple', 13], 14);

echo $value; // 182

Example - ob:

Execute a callable between ob_start, ob_get_contents, & ob_end_clean, and returns the final buffer.

use Nabeghe\Cally\Cally;

$output = Cally::ob(function () {
    echo 'nabeghe/cally';
});

echo $output; // nabeghe/cally

Example - action:

Invokes a series of callbacks sequentially and in order.

use Nabeghe\Cally\Cally;

Cally::action([
    function (&$number) {
        echo "Action 1 = $number\n";
        $number+=1;
    },
    function ($number) {
        echo "Action 2 = $number\n";
    },
], 13);

// Action 1 = 13
// Action 2 = 14

Example - filter:

Sequentially passes a value through a series of callbacks, updating it with each callback's output, and returns the final value.

use Nabeghe\Cally\Cally;

$value = Cally::filter([
    function ($value, $number) {
        echo "Filter 1 = $value\n";
        $value+=$number;
        return $value;
    },
    function ($value, $number) {
        echo "Filter 2 = $value\n";
        $value*=$number;
        return $value;
    },
], 13, 14);

echo "Value    = $value\n";

// Filter 1 = 13
// Filter 2 = 27
// Value    = 378

📖 License

Copyright (c) 2024 Hadi Akbarzadeh

Licensed under the MIT license, see LICENSE.md for details.