webhappens / conditional-methods
Make method calls conditional by simply appending If or Unless when you call them.
Installs: 4 672
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/webhappens/conditional-methods
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: 2025-10-24 01:54:46 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.