typedphp / optional
A library to reduce the code required for null-checking.
0.2.1
2014-11-02 17:15 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- php: >=5.5.0
- mockery/mockery: 0.*
- phpunit/phpunit: 4.*
README
This library is inspired by the code of Johannes Schmitt and the writing of Igor Wiedler. It is intended to reduce the code required for null-checking. Part of TypedPHP.
Examples
<?php require("vendor/autoload.php"); use TypedPHP\Optional\Optional; class Foo { public function hello() { return new Bar(); } } class Bar { public function world() { return "hello world"; } } $optional = new Optional(new Foo()); $optional->hello()->world()->value(); // "hello world"
<?php require("vendor/autoload.php"); use TypedPHP\Optional\None; $none = new None(); $none->hello()->world()->value(); // null
<?php require("vendor/autoload.php"); use TypedPHP\Optional\None; $none = new None(); $none ->none(function() { print "none"; }); // "none" printed ->value(function($value) { print $value; }); // $value not printed use TypedPHP\Optional\Optional; $optional = new Optional("hello world"); $optional ->none(function() { print "none"; }); // "none" not printed ->value(function($value) { print $value; }); // "hello world" printed
Once an Optional
method call returns an empty value, it is transformed into a None
.
Installation
❯ composer require "typedphp/optional:*"
Testing
❯ composer create-project "typedphp/optional:*" . ❯ vendor/bin/phpunit