PHPackages                             jeckel-lab/advanced-types - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. jeckel-lab/advanced-types

AbandonedArchivedSymfony-bundle[Utility &amp; Helpers](/categories/utility)

jeckel-lab/advanced-types
=========================

Advanced PHP types for DDD projects

0.3.1(5y ago)1309[5 PRs](https://github.com/Jeckel-Lab/advanced-types/pulls)1MITPHPPHP ^7.2

Since Nov 14Pushed 4y ago1 watchersCompare

[ Source](https://github.com/Jeckel-Lab/advanced-types)[ Packagist](https://packagist.org/packages/jeckel-lab/advanced-types)[ RSS](/packages/jeckel-lab-advanced-types/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (17)Versions (18)Used By (1)

[![CircleCI](https://camo.githubusercontent.com/86155a1b103b027aca3d69982cd98f66990d3754c99dbf93d55adaecf09fbd80/68747470733a2f2f636972636c6563692e636f6d2f67682f4a65636b656c2d4c61622f616476616e6365642d74797065732e7376673f7374796c653d737667)](https://circleci.com/gh/Jeckel-Lab/advanced-types)[![Latest Stable Version](https://camo.githubusercontent.com/c844b44f556728203355a167e8abb022696b2561aacffa3ca97298e40399f8f5/68747470733a2f2f706f7365722e707567782e6f72672f6a65636b656c2d6c61622f616476616e6365642d74797065732f762f737461626c65)](https://packagist.org/packages/jeckel-lab/advanced-types) [![Total Downloads](https://camo.githubusercontent.com/a041b24fc0a1ebc803d83265335bf9c9752b7d37db615ccd6ac158c78a8ec1ad/68747470733a2f2f706f7365722e707567782e6f72672f6a65636b656c2d6c61622f616476616e6365642d74797065732f646f776e6c6f616473)](https://packagist.org/packages/jeckel-lab/advanced-types)[![Build Status](https://camo.githubusercontent.com/f343c091de849c73b763192871a496be5ae7db1113ca58ff24c4d65caa54109b/68747470733a2f2f7472617669732d63692e6f72672f4a65636b656c2d4c61622f616476616e6365642d74797065732e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/Jeckel-Lab/advanced-types)[![codecov](https://camo.githubusercontent.com/bbecbdd5d625746638ae79b30c332208e20fe09e20eaf9f00b6f9ec1945fa446/68747470733a2f2f636f6465636f762e696f2f67682f6a65636b656c2d6c61622f616476616e6365642d74797065732f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/jeckel-lab/advanced-types)[![Dependabot Status](https://camo.githubusercontent.com/ada2a3222a9974cb0bc066889709df5a6d2832424d50db13becb8798822ea02b/68747470733a2f2f6170692e646570656e6461626f742e636f6d2f6261646765732f7374617475733f686f73743d676974687562267265706f3d4a65636b656c2d4c61622f616476616e6365642d7479706573)](https://dependabot.com)

Advanced PHP Types
==================

[](#advanced-php-types)

- **Enum** (based on [marc-mabe/php-enum](https://github.com/marc-mabe/php-enum))

Installation
============

[](#installation)

```
composer require jeckel-lab/advanced-types
```

Types
=====

[](#types)

Enum
----

[](#enum)

See documentation of [marc-mabe/php-enum](https://github.com/marc-mabe/php-enum).

> The only addition is the implementation of `JsonSerializable` interface to serialize enum as it's value.

Value Object
============

[](#value-object)

- Color
- DateTimePeriod
- Email
- TimeDuration
- Url

Usage with doctrine
-------------------

[](#usage-with-doctrine)

Configure type DBAL:

```
# config/packages/doctrine.yaml

doctrine:
    dbal:
        types:
            color: JeckelLab\AdvancedTypes\DBAL\Types\ColorType
            email: JeckelLab\AdvancedTypes\DBAL\Types\EmailType
            time_duration: JeckelLab\AdvancedTypes\DBAL\Type\sTimeDurationType
            url: JeckelLab\AdvancedTypes\DBAL\Types\UrlType
```

Use it in your entity:

```
