webhappens/conditional-methods

Make method calls conditional by simply appending If or Unless when you call them.

v0.3.0 2021-01-23 15:27 UTC

This package is auto-updated.

Last update: 2024-10-23 23:32:12 UTC


README

tests

Conditional methods

Make method calls conditional by simply appending If or Unless when you call them. Conditional methods allow you to pass a condition to determine whether they should be run or not, removing the need to wrap them inside logic. This is especially useful when you are chaining.

Installation

Install via composer:

composer require webhappens/conditional-methods

Insert the ConditionalMethods trait into your class:

use \WebHappens\ConditionalMethods\ConditionalMethods;

If your class is already using the __call method, add the following to it:

public function __call($method, $arguments)
{
    if ($type = static::matchConditionalMethod($method)) {
        return $this->callConditionalMethod($type, $method, $arguments);
    }

    // ...

    // throw new \BadMethodCallException();
}

If

Append If to the end of any method call and pass your condition as the first argument.

$insurer->renewIf($car->insuranceIsDue(), $car);

This replaces the need to do something like:

if ($car->insuranceIsDue()) {
    $insurer->renew($car);
}

Unless

Unless works in the same way as If except the condition is inverted.

Append Unless to the end of any method call and pass your condition as the first argument.

$insurer->renewUnless($car->insuranceIsValid(), $car);

Credits

Our Str class is just a copy of some functions from Laravel's Str helper.

License

The MIT License (MIT). Please see License File for more information.