1. Go to this page and download the library: Download ascetik/hypothetik library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ascetik / hypothetik example snippets
$not = Maybe::not(); // Maybe<null>
$some = Maybe::some('my value'); // Maybe<string>
$someobj = Maybe::some(new MyOwnInstance()); // Maybe<MyOwnInstance>
$nullAnyway = Maybe::some(null); // Maybe<null>
$any = Maybe::of(new MyOwnStringOption('any string value')); // Maybe<string>
$anyobj = Maybe::of(new MyOwnOption(new MyOwnInstance())); // Maybe<MyOwnInstance>
$anyNullObj = Maybe::of(new MyOwnNullOption()); // Maybe<null>
// version 0.3.0
$truthy = Maybe::some(true); // this is a truthy "When" instance
$falsy = Maybe::some(false); // this is a falsy "When" instance
$maybeThen = $some->then(strtoupper(...)); // retourne un nouveau Maybe contenant "MY VALUE"
echo $maybeThen->value(); // affiche "MY VALUE"
echo $some->then(strtoupper(...)) // return a new Maybe containing "MY VALUE"
->then(fn(string $value) => $value.' is not null')
->value(); // "MY VALUE is not null"
echo $not->value(); // prints nothing because null
echo $not->apply(strtoupper(...)); // null too, function is not applied
echo $not->then(strtoupper(...))->value(); // still null
echo $not->then(strtoupper(...)) // run strtoupper with a Maybe<null> won't work
->otherwise('i replace null') // new Maybe<string> available after first then() call
->then(fn(string $value) => $value . ' for demonstration') // run the function with the new instance
->value(); // prints "i replace null for demonstration"
echo $not->otherwise('i replace null') // new Maybe<string> available
->then(strtoupper(...)) // now transform initial string to upper case
->then(fn(string $value) => $value . ' for demonstration') // and append another string to the previous value
->value(); // prints "I REPLACE NULL for demonstration"
echo $some->otherwise('my other value') // initial $some instance returned
->then(strtoupper(...))
->then(fn(string $value) => $value . ' for demonstration')
->value(); // prints "MY VALUE for demonstration"
// with Some value
echo $some->either(toUpperCase(...))
->or(fn() => 'late value')
->value(); // prints "MY VALUE"
// with None value
echo $not->either(toUpperCase(...))
->or(fn() => 'late value')
->value(); // prints "late value"
// with Some value
echo $some->either(toUpperCase(...))
->or(fn() => 'late value')
->try() // returns a Maybe<string> from "$some" value
->then(fn(string $value) => $value . ' for demonstration')
->value(); // prints "MY VALUE for demonstration"
// with None value
echo $not->either(toUpperCase(...)) // won't run this function
->or(fn() => 'late value') // returns a new Either instance holding this new function
->try() // returns a Maybe<string> with "late value'
->then(fn(string $value) => $value . ' for demonstration') // append a string and return another Maybe with new complete string
->value(); // prints "late value for demonstration"
$phrase = 'this is just a test';
$when = Maybe::some(str_contains($phrase, 'just')); // truthy When
echo $when->value() ? 'valid' : 'invalid'; // 'valid'
$whenNot = Maybe::some(str_contains($phrase, 'only')); // falsy When
echo $whenNot->value() ? 'valid' : 'invalid'; // 'invalid'
$when = When::ever(true); // or false...
$truthyWhen = Maybe::some('/about') // instance of Maybe</about>
->then(fn (string $value) => str_starts_with($value, '/')) // instance of When<false>
->either(fn() => 'truthy result') // will be executed
->or(fn() => 'falsy result') // won't be executed
->try(); // Maybe<'truthy result'>
echo $when->value(); // 'truthy result'
$falsyWhen = Maybe::some('/about') // instance of Maybe</about>
->then(fn (string $value) => trim($value, '/')) // instance of Maybe<about>
->then(fn (string $value) => str_starts_with($value, '/')) // instance of When<false>
->either(fn() => 'truthy result') // won't be executed
->or(fn() => 'falsy result') // will be executed
->value(); // raw value
echo $when; // 'falsy result'
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.