1. Go to this page and download the library: Download mixteer/reshi 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/ */
mixteer / reshi example snippets
$assertThat = new Assertion;
$title = "The Pragmatic Programmer";
# Fails if the title is not a string
# Using an instance of Assertion
$assertThat($title)->isString();
# Using a static method
Assertion::assertIsString($title);
# Fails if the title is null
# Using an instance of Assertion
$assertThat($title)->isNotNull();
# Using a static method
Assertion::assertIsNotNull($title);
function assertThat($param)
{
$assertThat = new Assertion;
return $assertThat($param);
}
class User
{
protected $name;
public function changeName($name)
{
// Make sure the name is a string and is not empty
assertThat($name)->isString();
$assertThat($name)->isNotEmpty(); // !Don't this to check if a string is empty in production code
}
}
function assertThat($param)
{
static $assertion = [];
if (count($assertion) > 0) {
$assertThat = $assertion[0];
$assertThat->changeParameter($param);
} else {
$assertThat = new Assertion;
$assertion[] = $assertThat($param);
}
return $assertThat;
}
class User
{
protected $name;
public function changeName($name)
{
// Make sure the name is a string and is not empty
assertThat($name)->isString();
$assertThat($name)->isNotEmpty(); // !Don't this to check if a string is empty in production code
}
}
class User
{
protected $name = "";
protected $assertThat = null;
public function __construct()
{
$this->assertThat = new Assertion;
}
public function changeName($name)
{
$this->assertThat($name)->isString();
$this->name = $name;
}
public function getName()
{
return $this->name;
}
// Without this method, the code would fail with a message such as the method User::assertThat() could not be found.
public function __call($method, $args)
{
if (is_callable(array($this, $method))) {
return call_user_func_array($this->{$method}, $args);
}
}
}
namespace Domain\Model;
use Reshi\Assertion;
function assertThat($param)
{
static $assertion = [];
if (count($assertion) > 0) {
$assertThat = $assertion[0];
$assertThat->changeParameter($param);
} else {
$assertThat = new Assertion;
$assertion[] = $assertThat($param);
}
return $assertThat;
}
class LayerSupertype
{
protected $id;
// Method common to all domain models go here
}
namespace Domain\Model\Users;
use function Domain\Model\assertThat;
class User
{
protected $name = "";
public function changeName($name)
{
assertThat($name)->isString();
$this->name = $name;
}
public function getName()
{
return $this->name;
}
}
namespace MyConstraints;
use Reshi\ReshiConstraint;
class HasBeenSet implements ReshiConstraint
{
const NAME = "HAS_BEEN_SET";
public function __construct()
{
}
public function evaluate($param)
{
if (isset($param)) {
return true;
}
return false;
}
public function getName()
{
return self::NAME;
}
}
namespace MyAssertions;
use Reshi\Assertion;
use MyConstraints\HasBeenSet;
class MyAssertion extends Assertion
{
public static function assertHasBeenSert($param)
{
self::$callFromInside += 1; // This is used for backstracing - must always be there
return self::assertThat($param, new HasBeenSet);
}
public function hasBeenSet()
{
self::$callFromInside += 1;
return self::assertHasBeen($this->param);
}
public static function assertHasNotBeenSert($param)
{
self::$callFromInside += 1; // This is used for backstracing - must always be there
return self::assertThat($param, new HasBeenSet, false); // Pass false to get the constraint to fial if its evaluation returns true
}
public function hasNotBeenSet()
{
self::$callFromInside += 1;
return self::assertHasNotBeen($this->param);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.