https://github.com/inteve/types
Value objects and helpers for PHP.
https://github.com/inteve/types
datatypes php
Last synced: 3 months ago
JSON representation
Value objects and helpers for PHP.
- Host: GitHub
- URL: https://github.com/inteve/types
- Owner: inteve
- License: other
- Created: 2018-05-03T14:25:52.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-07-05T10:11:05.000Z (almost 2 years ago)
- Last Synced: 2025-02-13T09:08:01.326Z (4 months ago)
- Topics: datatypes, php
- Language: PHP
- Homepage:
- Size: 67.4 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Funding: .github/funding.yml
- License: license.md
Awesome Lists containing this project
README
# Inteve\Types
[](https://github.com/inteve/types/actions)
[](https://packagist.org/packages/inteve/types)
[](https://github.com/inteve/types/releases)
[](https://github.com/inteve/types/blob/master/license.md)Value objects and helpers for PHP.
## Installation
[Download a latest package](https://github.com/inteve/types/releases) or use [Composer](http://getcomposer.org/):
```
composer require inteve/types
```Inteve\Types requires PHP 7.2.0 or later.
## Usage
* BinaryData
* EmailAddress
* [DatabaseDataType](#databasedatatype)
* Decimal
* [HexColor](#hexcolor)
* [Html](#html)
* IpAddress
* [Md5Hash](#md5hash)
* Password
* [PhpType](#phptype)
* [PhpParameterType](#phpparametertype)
* UniqueId
* [Url](#url)
* UrlPath
* UrlSlug### DatabaseDataType
```php
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
```php
use Inteve\Types\HexColor;$color = new HexColor('0088FF');
$color->getValue(); // returns '0088ff'
$color->getCssValue(); // returns '#0088ff'// from CSS color
$color = HexColor::fromCssColor('#0088ff');
```### Html
```php
use Inteve\Types\Html;$html = new Html('
Lorem > ipsum
');
$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
```php
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
```php
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:
```php
$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
```php
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:
```php
$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
```php
use Inteve\Types\Url;$url = new Url('https://example.com/page');
$url->getUrl();
(string) $url; // alias for getUrl()
```------------------------------
License: [New BSD License](license.md)
Author: Jan Pecha, https://www.janpecha.cz/