, (*1)
or-else
, (*2)
This package adds an orElse-trait to your project., (*3)
Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website., (*4)
Support us
, (*5)
We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products., (*6)
We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall., (*7)
Install
You can install the package via composer:
``` bash
$ composer require spatie/or-else, (*8)
## Postcardware
You're free to use this package (it's [MIT-licensed](LICENSE.md)), but if it makes it to your production environment you are required to send us a postcard from your hometown, mentioning which of our package(s) you are using.
Our address is: Spatie, Kruikstraat 22, 2018 Antwerp, Belgium.
The best postcards will get published on the open source page on our website.
## Usage
When implementing the `OrElse`-trait to a class, all methods of the class will have a `OrElse`-variant.
That variant has an extra parameter that will be returned if the original function returns `null` or `false`.
Consider this simple class that implements the `orElse`-trait.
```php
use Spatie\OrElse\OrElse;
class TestClass {
use OrElse;
/**
* This function will return the given argument.
*
* @return string
*/
public function willReturn($value)
{
return $value;
}
}
The trait dynamically adds a willReturnOrElse-method., (*9)
$testClass = new TestClass;
$testClass->willReturn('value'); // returns 'value';
$testClass->willReturnOrElse('value', 'otherValue'); // returns 'value';
$testClass->willReturnOrElse(null, 'otherValue'); // returns 'otherValue';
$testClass->willReturnOrElse(false, 'otherValue'); // returns 'otherValue';
$testClass->willReturnOrElse(false, function() { return 'closureValue'; }); // returns 'closureValue';
Change log
Please see CHANGELOG for more information what has changed recently., (*10)
Testing
bash
$ composer test, (*11)
Contributing
Please see CONTRIBUTING for details., (*12)
Security
If you've found a bug regarding security please mail security@spatie.be instead of using the issue tracker., (*13)
Credits
About Spatie
Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website., (*14)
License
The MIT License (MIT). Please see License File for more information., (*15)