Skip to content

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

License

Notifications You must be signed in to change notification settings

webhappens/conditional-methods

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages