PHPackages                             guikingone/symfony-uid-doctrine - 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. [Database &amp; ORM](/categories/database)
4. /
5. guikingone/symfony-uid-doctrine

ActiveLibrary[Database &amp; ORM](/categories/database)

guikingone/symfony-uid-doctrine
===============================

Allow the use of symfony/uid as Doctrine field type

0.1.1(5y ago)121.9k[1 issues](https://github.com/Guikingone/SymfonyUidDoctrine/issues)MITPHPPHP &gt;=7.2CI failing

Since Jun 23Pushed 5y ago1 watchersCompare

[ Source](https://github.com/Guikingone/SymfonyUidDoctrine)[ Packagist](https://packagist.org/packages/guikingone/symfony-uid-doctrine)[ RSS](/packages/guikingone-symfony-uid-doctrine/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (6)Versions (4)Used By (0)

guikingone/symfony-uid-doctrine
===============================

[](#guikingonesymfony-uid-doctrine)

[![SymfonyUidDoctrine](https://github.com/Guikingone/SymfonyUidDoctrine/workflows/SymfonyUidDoctrine/badge.svg?branch=master)](https://github.com/Guikingone/SymfonyUidDoctrine/workflows/SymfonyUidDoctrine/badge.svg?branch=master)[![SymfonyUidDoctrine - Configuration](https://github.com/Guikingone/SymfonyUidDoctrine/workflows/SymfonyUidDoctrine%20-%20Configuration/badge.svg?branch=master)](https://github.com/Guikingone/SymfonyUidDoctrine/workflows/SymfonyUidDoctrine%20-%20Configuration/badge.svg?branch=master)

The `guikingone/symfony-uid-doctrine` aim to provide the support of `Symfony/Uid` as a `Doctrine` type.

Installation
------------

[](#installation)

Consider using `Packagist` and `Composer` when installing the following project:

```
composer require guikingone/symfony-uid-doctrine
```

Configuration
-------------

[](#configuration)

### Uuid

[](#uuid)

```
Doctrine\DBAL\Types\Type::addType('uuid', Guikingone\SymfonyUid\Doctrine\Uuid\UuidType::class);
```

```
# config/packages/doctrine.yaml
doctrine:
    dbal:
        types:
            uuid: Guikingone\SymfonyUid\Doctrine\Uuid\UuidType
```

### Ulid

[](#ulid)

```
Doctrine\DBAL\Types\Type::addType('ulid', Guikingone\SymfonyUid\Doctrine\Ulid\UlidType::class);
```

```
# config/packages/doctrine.yaml
doctrine:
    dbal:
        types:
            ulid: Guikingone\SymfonyUid\Doctrine\Ulid\UlidType
```

Usage
-----

[](#usage)

### Uuid

[](#uuid-1)

```
use Doctrine\ORM\Mapping as ORM;
use Guikingone\SymfonyUid\Doctrine\Uuid\UuidGenerator;

/**
 * @ORM\Entity
 * @ORM\Table(name="posts")
 */
class Post
{
    /**
     * @var Symfony\Component\Uid\Uuid
     *
     * @ORM\Id
     * @ORM\Column(type="uuid", unique=true)
     * @ORM\GeneratedValue(strategy="CUSTOM")
     * @ORM\CustomIdGenerator(class=UuidGenerator::class)
     */
    protected $id;

    public function getId(): Uuid
    {
        return $this->id;
    }
}
```

If you don't want to use the generator, consider using the `__construct()` method:

```
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Uid\Uuid;

/**
 * @ORM\Entity
 * @ORM\Table(name="posts")
 */
class Post
{
    /**
     * @var Symfony\Component\Uid\Uuid
     *
     * @ORM\Id
     * @ORM\Column(type="uuid", unique=true)
     */
    protected $id;

    public function __construct()
    {
        $this->id = Uuid::v4();
    }

    public function getId(): Uuid
    {
        return $this->id;
    }
}
```

### Ulid

[](#ulid-1)

```
use Doctrine\ORM\Mapping as ORM;
use Guikingone\SymfonyUid\Doctrine\Ulid\UlidGenerator;

/**
 * @ORM\Entity
 * @ORM\Table(name="posts")
 */
class Post
{
    /**
     * @var Symfony\Component\Uid\Ulid
     *
     * @ORM\Id
     * @ORM\Column(type="ulid", unique=true)
     * @ORM\GeneratedValue(strategy="CUSTOM")
     * @ORM\CustomIdGenerator(class=UlidGenerator::class)
     */
    protected $id;

    public function getId(): Ulid
    {
        return $this->id;
    }
}
```

If you don't want to use the generator, consider using the `__construct()` method:

```
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Uid\Ulid;

/**
 * @ORM\Entity
 * @ORM\Table(name="posts")
 */
class Post
{
    /**
     * @var Symfony\Component\Uid\Ulid
     *
     * @ORM\Id
     * @ORM\Column(type="ulid", unique=true)
     */
    protected $id;

    public function __construct()
    {
        $this->id = new Ulid();
    }

    public function getId(): Ulid
    {
        return $this->id;
    }
}
```

Contributing
------------

[](#contributing)

Contributions are welcome! Please read [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Total

2

Last Release

2131d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b1ea408dc1a7f312337f13b3a6f01446ccb69e9d53d801abbda36bf38d1f640b?d=identicon)[Guillaume Loulier](/maintainers/Guillaume%20Loulier)

---

Top Contributors

[![Guikingone](https://avatars.githubusercontent.com/u/13744329?v=4)](https://github.com/Guikingone "Guikingone (2 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/guikingone-symfony-uid-doctrine/health.svg)

```
[![Health](https://phpackages.com/badges/guikingone-symfony-uid-doctrine/health.svg)](https://phpackages.com/packages/guikingone-symfony-uid-doctrine)
```

###  Alternatives

[damienharper/auditor-bundle

Integrate auditor library in your Symfony projects.

4542.8M](/packages/damienharper-auditor-bundle)[sonata-project/entity-audit-bundle

Audit for Doctrine Entities

644989.8k1](/packages/sonata-project-entity-audit-bundle)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1022.4k](/packages/rcsofttech-audit-trail-bundle)[symfony/ai-store

Low-level abstraction for storing and retrieving documents in a vector store.

19292.4k53](/packages/symfony-ai-store)[pixelfederation/doctrine-resettable-em-bundle

Symfony bundle for decorating default entity managers using a resettable decorator.

20113.5k](/packages/pixelfederation-doctrine-resettable-em-bundle)[ahmed-bhs/doctrine-doctor

Runtime analysis tool for Doctrine ORM integrated into Symfony Web Profiler. Unlike static linters, it analyzes actual query execution at runtime to detect performance bottlenecks, security vulnerabilities, and best practice violations during development with real execution context and data.

813.1k](/packages/ahmed-bhs-doctrine-doctor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
