tourze/doctrine-uuid-bundle

0.0.3 2025-04-25 08:48 UTC

This package is auto-updated.

Last update: 2025-04-25 14:30:28 UTC


README

English | 中文 Latest Version Build Status Quality Score Total Downloads

A Symfony bundle for automatic UUID (v1/v4) assignment in Doctrine entities using PHP 8 attributes.

Features

  • Automatic UUID v1 and v4 assignment for entity properties
  • Zero configuration, works out of the box
  • Attribute-driven and easy to use
  • Seamless integration with Doctrine event system
  • Built-in logging for debugging
  • Extensible: custom UUID generation strategies supported
  • Nullable UUID fields supported
  • Automatic database schema updates
  • Compatible with Symfony 6.4+ and Doctrine 2.13+

Requirements

  • PHP 8.1 or higher
  • Symfony 6.4 or higher

Installation

composer require tourze/doctrine-uuid-bundle

Quick Start

Add the UuidV1Column or UuidV4Column attribute to your entity properties:

use Tourze\DoctrineUuidBundle\Attribute\UuidV1Column;
use Tourze\DoctrineUuidBundle\Attribute\UuidV4Column;
use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity]
class YourEntity
{
    #[ORM\Id]
    #[ORM\Column(type: 'uuid')]
    #[UuidV1Column]
    private string $uuidV1;

    #[ORM\Column(type: 'uuid')]
    #[UuidV4Column]
    private ?string $uuidV4 = null;
}

UUIDs will be automatically generated when the entity is persisted.

Advanced Usage

You may extend the Attribute or event listener to implement custom UUID generation logic.

Common Issues

  1. UUID not being generated: Ensure your entity uses the correct attributes and the bundle is registered in config/bundles.php.
  2. Database schema issues: Run php bin/console doctrine:schema:update --force to update your database schema.
  3. Performance considerations: UUID v1 is time-based and may be more suitable for database indexing than UUID v4.

Documentation

  • API Docs
  • Most configuration is automatic. For advanced extension, you may customize the event subscriber.

Contributing

  • Feel free to submit Issues and PRs
  • Follow PSR code style
  • Please ensure tests pass before submitting PRs
  • Fork the repo, create a branch, push and submit a PR

License

  • License: MIT
  • Author: Tourze

Changelog

See CHANGELOG

Workflow Diagram

See Mermaid.md for a visual workflow. 2. Create your feature branch (git checkout -b feature/amazing-feature) 3. Commit your changes (git commit -m 'Add some amazing feature') 4. Push to the branch (git push origin feature/amazing-feature) 5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.