Skip to content
/ types Public

Value objects and helpers for PHP.

License

Notifications You must be signed in to change notification settings

inteve/types

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inteve\Types

Build Status Downloads this Month Latest Stable Version License

Value objects and helpers for PHP.

Donate

Installation

Download a latest package or use Composer:

composer require inteve/types

Inteve\Types requires PHP 7.2.0 or later.

Usage

DatabaseDataType

use Inteve\Types\DatabaseDataType;

$type = new DatabaseDataType('INT', [10], ['UNSIGNED']);
$type->getType();
$type->getParameters();
$type->getOptions();
$type->hasOption('UNSIGNED'); // returns TRUE
$type->getOptionValue('UNSINGED'); // returns mixed|NULL

HexColor

use Inteve\Types\HexColor;

$color = new HexColor('0088FF');
$color->getValue(); // returns '0088ff'
$color->getCssValue(); // returns '#0088ff'

// from CSS color
$color = HexColor::fromCssColor('#0088ff');

Html

use Inteve\Types\Html;

$html = new Html('<p>Lorem &gt; ipsum</p>');
$html->getHtml();
(string) $html; // alias for getHtml()

$html->getPlainText(); // returns text without HTML tags & entities ('Lorem > ipsum')

It implements Nette\Utils\IHtmlString so can be used directly in Latte template ({$html}) without |noescape modifier.

Md5Hash

use Inteve\Types\Md5Hash;

$md5 = new Md5Hash($hash);
$md5->getHash(); // returns $hash

// from string
$md5 = Md5Hash::from('Lorem ipsum dolor.');

// from file
$md5 = Md5Hash::fromFile('/path/to/file');

PhpType

use Inteve\Types\PhpType;

$type = new PhpType('bool');
$type->getType();
(string) $type; // alias for getType()
$type->isBasicType(); // returns TRUE

$type = new PhpType(PhpType::class);
$type->isBasicType(); // returns FALSE

You can use static factories:

$type = PhpType::arrayType();
$type = PhpType::boolType();
$type = PhpType::floatType();
$type = PhpType::intType();
$type = PhpType::stringType();
$type = PhpType::classType(PhpType::class);

$type = PhpType::fromParameterType(new PhpParameterType('string'));

It implements Inteve\Types\IPhpParameterType.

PhpParameterType

use Inteve\Types\PhpParameterType;

$type = new PhpParameterType('bool');
$type->getType();
(string) $type; // alias for getType()
$type->isBasicType(); // returns TRUE

$type = new PhpParameterType(PhpParameterType::class);
$type->isBasicType(); // returns FALSE

You can use static factories:

$type = PhpParameterType::arrayType();
$type = PhpParameterType::boolType();
$type = PhpParameterType::floatType();
$type = PhpParameterType::intType();
$type = PhpParameterType::stringType();
$type = PhpParameterType::callableType();
$type = PhpParameterType::iterableType();
$type = PhpParameterType::selfType();
$type = PhpParameterType::objectType();
$type = PhpParameterType::classType(PhpParameterType::class);

$type = PhpParameterType::fromPhpType(new PhpType('string'));

It implements Inteve\Types\IPhpParameterType.

Url

use Inteve\Types\Url;

$url = new Url('https://example.com/page');
$url->getUrl();
(string) $url; // alias for getUrl()

License: New BSD License
Author: Jan Pecha, https://www.janpecha.cz/