1. Go to this page and download the library: Download triun/value-object 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/ */
triun / value-object example snippets
interface ValueObject
{
/**
* Returns a object taking PHP native value(s) as argument(s).
*
* @return \Triun\ValueObject\ValueObject
*/
public static function fromNative();
/**
* Returns PHP native value(s)
*
* @return mixed
*/
public function toNative();
/**
* Compare two ValueObjectInterface and tells whether they can be considered equal.
*
* @param \Triun\ValueObject\ValueObject $object
*
* @return mixed
*/
public function equals(ValueObject $object);
/**
* Returns a string representation of the object.
*
* @return string
*/
public function __toString();
}
class InvalidNativeArgumentException extends \InvalidArgumentException
{
/**
* InvalidNativeArgumentException constructor.
*
* @param string $value
* @param array $allowed_types
*/
public function __construct($value, array $allowed_types)
{
$this->message = sprintf(
'Argument "%s" is invalid. Allowed types for argument are "%s".',
$value,
implode(', ', $allowed_types)
);
}
}
use Triun\ValueObject\ValueObject;
use Triun\ValueObject\Exceptions\InvalidNativeArgumentException;
class StringLiteral implements ValueObject
{
/**
* Native string
*
* @var string
*/
protected $value;
/**
* Returns a StringLiteral object given a PHP native string as parameter.
*
* @internal param string $value
*
* @return StringLiteral
*/
public static function fromNative()
{
$value = func_get_arg(0);
return new static($value);
}
/**
* Returns a StringLiteral object given a PHP native string as parameter.
*
* @param string $value
*/
public function __construct($value)
{
if (false === \is_string($value)) {
throw new InvalidNativeArgumentException($value, array('string'));
}
$this->value = $value;
}
/**
* Returns the value of the string
*
* @return string
*/
public function toNative()
{
return $this->value;
}
/**
* Tells whether two string literals are equal by comparing their values
*
* @param ValueObject $stringLiteral
*
* @return bool
*/
public function equals(ValueObject $stringLiteral)
{
if (static::class !== get_class($stringLiteral)) {
return false;
}
return $this->toNative() === $stringLiteral->toNative();
}
/**
* Tells whether the StringLiteral is empty
*
* @return bool
*/
public function isEmpty()
{
return \strlen($this->toNative()) == 0;
}
/**
* Returns the string value itself
*
* @return string
*/
public function __toString()
{
return $this->toNative();
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.