webhappens / conditional-methods
Make method calls conditional by simply appending If or Unless when you call them.
Installs: 3 727
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: ^7.3|^8.0
Requires (Dev)
- phpunit/phpunit: ^7.5.15|^8.4|^9.0
- symfony/var-dumper: ^4.3.4|^5.0
This package is auto-updated.
Last update: 2024-10-23 23:32:12 UTC
README
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
- Sam Leicester: sam@webhappens.co.uk
- Ben Gurney: ben@webhappens.co.uk
- Big thanks to the guys over at Spatie for the inspiration on this through their laravel-html package ❤️
- All Contributors
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.