From 5a0f7568836c5be60cea9cc98be4459c489d8f2d Mon Sep 17 00:00:00 2001 From: Ilaria Orlando Date: Thu, 19 Mar 2026 16:47:13 +0100 Subject: [PATCH 1/5] Remove ramsey/uuid and require symfony/uuid --- composer.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 55a2f5676d..7a74aa370b 100644 --- a/composer.json +++ b/composer.json @@ -32,8 +32,6 @@ "matthiasmullie/minify": "~1.3", "matthiasmullie/scrapbook": "^1.3", "pimple/pimple": "^3.2", - "ramsey/uuid": "^4.0", - "ramsey/uuid-doctrine": "^2.0", "simple-bus/doctrine-orm-bridge": "6.2.*", "simple-bus/symfony-bridge": "~6.2", "spoon/library": "^4.0", @@ -61,7 +59,8 @@ "twig/extra-bundle": "^3.23", "twig/cssinliner-extra": "^3.23", "twig/string-extra": "^3.23", - "twig/inky-extra": "^3.23" + "twig/inky-extra": "^3.23", + "symfony/uid": "*" }, "require-dev": { "jdorn/sql-formatter": "1.2.17", From 941d09d717b43e86c522d8b9ad44fe227f855a87 Mon Sep 17 00:00:00 2001 From: Ilaria Orlando Date: Thu, 19 Mar 2026 16:48:39 +0100 Subject: [PATCH 2/5] Add uuid dbal type and use it in doctrine configs --- app/config/doctrine.yml | 2 +- .../Resources/config/doctrine.yml | 2 +- src/Common/Doctrine/Type/UuidType.php | 68 +++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 src/Common/Doctrine/Type/UuidType.php diff --git a/app/config/doctrine.yml b/app/config/doctrine.yml index a3266c0560..eaf2fe887d 100644 --- a/app/config/doctrine.yml +++ b/app/config/doctrine.yml @@ -24,7 +24,7 @@ doctrine: datetime: Common\Doctrine\Type\UTCDateTimeType datetimetz: Common\Doctrine\Type\UTCDateTimeType time: Common\Doctrine\Type\UTCTimeType - uuid: Ramsey\Uuid\Doctrine\UuidType + uuid: Common\Doctrine\Type\UuidType orm: auto_generate_proxy_classes: "%kernel.debug%" diff --git a/src/Backend/Modules/MediaLibrary/Resources/config/doctrine.yml b/src/Backend/Modules/MediaLibrary/Resources/config/doctrine.yml index 1bc5b9ba36..3450c928dd 100644 --- a/src/Backend/Modules/MediaLibrary/Resources/config/doctrine.yml +++ b/src/Backend/Modules/MediaLibrary/Resources/config/doctrine.yml @@ -1,7 +1,7 @@ doctrine: dbal: types: - uuid: Ramsey\Uuid\Doctrine\UuidType + uuid: Common\Doctrine\Type\UuidType media_item_storage_type: Backend\Modules\MediaLibrary\Domain\MediaItem\StorageTypeDBALType media_item_type: Backend\Modules\MediaLibrary\Domain\MediaItem\TypeDBALType media_item_aspect_ratio: Backend\Modules\MediaLibrary\Domain\MediaItem\AspectRatioDBALType diff --git a/src/Common/Doctrine/Type/UuidType.php b/src/Common/Doctrine/Type/UuidType.php new file mode 100644 index 0000000000..267f53cca3 --- /dev/null +++ b/src/Common/Doctrine/Type/UuidType.php @@ -0,0 +1,68 @@ +toRfc4122(); + } + + if (is_string($value) || (is_object($value) && method_exists($value, '__toString'))) { + $string = (string) $value; + + if ($string !== '' && Uuid::isValid($string)) { + return $string; + } + } + + throw ConversionException::conversionFailed($value, self::NAME); + } + + public function getName(): string + { + return self::NAME; + } + + public function requiresSQLCommentHint(AbstractPlatform $platform): bool + { + return true; + } + + /** @return string[] */ + public function getMappedDatabaseTypes(AbstractPlatform $platform): array + { + return [self::NAME]; + } +} From da24df8c93a422d828c070f7092ec3cb373188b1 Mon Sep 17 00:00:00 2001 From: Ilaria Orlando Date: Thu, 19 Mar 2026 16:49:15 +0100 Subject: [PATCH 3/5] Remove all ramsey uuid use statements and use symfony uuid instead --- .../Domain/MediaGallery/MediaGallery.php | 1 - .../MediaGroup/Command/SaveMediaGroupHandler.php | 2 +- .../MediaLibrary/Domain/MediaGroup/MediaGroup.php | 11 +++++------ .../MediaGroup/MediaGroupDataTransferObject.php | 2 +- .../Domain/MediaGroup/MediaGroupType.php | 4 ++-- .../MediaGroupMediaItem/MediaGroupMediaItem.php | 12 +++++------- 6 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/Backend/Modules/MediaGalleries/Domain/MediaGallery/MediaGallery.php b/src/Backend/Modules/MediaGalleries/Domain/MediaGallery/MediaGallery.php index 6dbc5a2ba4..6b3ae83591 100644 --- a/src/Backend/Modules/MediaGalleries/Domain/MediaGallery/MediaGallery.php +++ b/src/Backend/Modules/MediaGalleries/Domain/MediaGallery/MediaGallery.php @@ -2,7 +2,6 @@ namespace Backend\Modules\MediaGalleries\Domain\MediaGallery; -use Ramsey\Uuid\Uuid; use Doctrine\ORM\Mapping as ORM; use Backend\Core\Engine\Model; use Backend\Modules\MediaLibrary\Domain\MediaGroup\MediaGroup; diff --git a/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/Command/SaveMediaGroupHandler.php b/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/Command/SaveMediaGroupHandler.php index 3f46c0c0f9..365be75a94 100644 --- a/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/Command/SaveMediaGroupHandler.php +++ b/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/Command/SaveMediaGroupHandler.php @@ -6,7 +6,7 @@ use Backend\Modules\MediaLibrary\Domain\MediaGroupMediaItem\MediaGroupMediaItem; use Backend\Modules\MediaLibrary\Domain\MediaItem\Exception\MediaItemNotFound; use Backend\Modules\MediaLibrary\Domain\MediaItem\MediaItemRepository; -use Ramsey\Uuid\Uuid; +use Symfony\Component\Uid\Uuid; final class SaveMediaGroupHandler { diff --git a/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroup.php b/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroup.php index 68a25c717a..bfbe3cebfc 100644 --- a/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroup.php +++ b/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroup.php @@ -10,8 +10,7 @@ use Doctrine\ORM\Mapping as ORM; use Doctrine\Common\Collections\ArrayCollection; use JsonSerializable; -use Ramsey\Uuid\Uuid; -use Ramsey\Uuid\UuidInterface; +use Symfony\Component\Uid\Uuid; /** * MediaGroup @@ -54,7 +53,7 @@ private function __construct( * @ORM\Id * @ORM\Column(type="uuid") */ - private UuidInterface $id, + private Uuid $id, /** * @ORM\Column(type="media_group_type") */ @@ -67,13 +66,13 @@ public static function create( Type $type ): self { return new self( - Uuid::uuid4(), + Uuid::v4(), $type ); } public static function createFromId( - UuidInterface $id, + Uuid $id, Type $type ): self { return new self( @@ -123,7 +122,7 @@ public function jsonSerialize(): array ]; } - public function getId(): UuidInterface + public function getId(): Uuid { return $this->id; } diff --git a/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroupDataTransferObject.php b/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroupDataTransferObject.php index f755525c34..e4c79b5b29 100644 --- a/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroupDataTransferObject.php +++ b/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroupDataTransferObject.php @@ -2,7 +2,7 @@ namespace Backend\Modules\MediaLibrary\Domain\MediaGroup; -use Ramsey\Uuid\Uuid; +use Symfony\Component\Uid\Uuid; class MediaGroupDataTransferObject { diff --git a/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroupType.php b/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroupType.php index 18a028b194..6a6dc7dfbf 100644 --- a/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroupType.php +++ b/src/Backend/Modules/MediaLibrary/Domain/MediaGroup/MediaGroupType.php @@ -8,7 +8,7 @@ use Backend\Modules\MediaLibrary\Domain\MediaItem\StorageType; use Backend\Modules\MediaLibrary\Domain\MediaItem\Type as MediaItemPossibleType; use Backend\Modules\MediaLibrary\Domain\MediaGroup\Type as MediaGroupPossibleType; -use Ramsey\Uuid\Uuid; +use Symfony\Component\Uid\Uuid; use SimpleBus\Message\Bus\Middleware\MessageBusSupportingMiddleware; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\CallbackTransformer; @@ -183,7 +183,7 @@ private function getMediaGroupFromMediaGroupData(array $mediaGroupData): MediaGr private function getMediaGroupTransformFunction(): callable { return static fn(MediaGroup $mediaGroup) => [ - 'id' => $mediaGroup->getId(), + 'id' => $mediaGroup->getId()->toRfc4122(), 'type' => $mediaGroup->getType(), 'mediaIds' => implode(',', $mediaGroup->getIdsForConnectedItems()), 'mediaGroup' => $mediaGroup, diff --git a/src/Backend/Modules/MediaLibrary/Domain/MediaGroupMediaItem/MediaGroupMediaItem.php b/src/Backend/Modules/MediaLibrary/Domain/MediaGroupMediaItem/MediaGroupMediaItem.php index 45df73de6e..0eebfa7e10 100644 --- a/src/Backend/Modules/MediaLibrary/Domain/MediaGroupMediaItem/MediaGroupMediaItem.php +++ b/src/Backend/Modules/MediaLibrary/Domain/MediaGroupMediaItem/MediaGroupMediaItem.php @@ -7,8 +7,7 @@ use Backend\Modules\MediaLibrary\Domain\MediaItem\MediaItem; use Backend\Modules\MediaLibrary\Domain\MediaGroup\MediaGroup; use JsonSerializable; -use Ramsey\Uuid\Doctrine\UuidGenerator; -use Ramsey\Uuid\UuidInterface; +use Symfony\Component\Uid\Uuid; /** * MediaGroup MediaItem @@ -18,11 +17,9 @@ class MediaGroupMediaItem implements JsonSerializable { /** - * @var UuidInterface + * @var Uuid * * @ORM\Id() - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class=UuidGenerator::class) * @ORM\Column(type="uuid", unique=true) */ private $id; @@ -81,6 +78,7 @@ private function __construct( MediaItem $item, int $sequence ) { + $this->id = Uuid::v4(); $this->group = $group; $this->item = $item; $this->createdOn = new DateTime(); @@ -102,14 +100,14 @@ public static function create( public function jsonSerialize(): array { return [ - 'id' => $this->id, + 'id' => $this->id->toRfc4122(), 'item' => $this->item, 'createdOn' => $this->createdOn->getTimestamp(), 'sequence' => $this->sequence, ]; } - public function getId(): int + public function getId(): Uuid { return $this->id; } From 3318ed24d4947cf6a6d47e84485151b2a1610672 Mon Sep 17 00:00:00 2001 From: Ilaria Orlando Date: Thu, 19 Mar 2026 17:09:47 +0100 Subject: [PATCH 4/5] Lock version --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 7a74aa370b..eeb95c9e67 100644 --- a/composer.json +++ b/composer.json @@ -60,7 +60,7 @@ "twig/cssinliner-extra": "^3.23", "twig/string-extra": "^3.23", "twig/inky-extra": "^3.23", - "symfony/uid": "*" + "symfony/uid": "^5.4" }, "require-dev": { "jdorn/sql-formatter": "1.2.17", From 1f97f2176e6151291a1b8452dcfd55ed887e2a56 Mon Sep 17 00:00:00 2001 From: Ilaria Orlando Date: Mon, 23 Mar 2026 12:02:41 +0100 Subject: [PATCH 5/5] Remove uuid generator --- .../MediaGalleries/Domain/MediaGallery/MediaGallery.php | 9 ++++----- .../Modules/MediaLibrary/Domain/MediaItem/MediaItem.php | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/Backend/Modules/MediaGalleries/Domain/MediaGallery/MediaGallery.php b/src/Backend/Modules/MediaGalleries/Domain/MediaGallery/MediaGallery.php index 2c71a695fc..1170b7972b 100644 --- a/src/Backend/Modules/MediaGalleries/Domain/MediaGallery/MediaGallery.php +++ b/src/Backend/Modules/MediaGalleries/Domain/MediaGallery/MediaGallery.php @@ -5,8 +5,8 @@ use Doctrine\ORM\Mapping as ORM; use Backend\Core\Engine\Model; use Backend\Modules\MediaLibrary\Domain\MediaGroup\MediaGroup; -use Symfony\Bridge\Doctrine\IdGenerator\UuidGenerator; use Common\ModuleExtraType; +use Symfony\Component\Uid\Uuid; /** * @ORM\Entity(repositoryClass="Backend\Modules\MediaGalleries\Domain\MediaGallery\MediaGalleryRepository") @@ -15,12 +15,10 @@ class MediaGallery { /** - * @var string + * @var Uuid * * @ORM\Id() - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class=UuidGenerator::class) - * @ORM\Column(type="uuid") + * @ORM\Column(type="uuid", unique=true) */ private $id; @@ -107,6 +105,7 @@ private function __construct( Status $status, ?string $text = null ) { + $this->id = Uuid::v4(); $this->userId = $userId; $this->action = $action; $this->title = $title; diff --git a/src/Backend/Modules/MediaLibrary/Domain/MediaItem/MediaItem.php b/src/Backend/Modules/MediaLibrary/Domain/MediaItem/MediaItem.php index 6d7502c6b8..7819e52ca4 100644 --- a/src/Backend/Modules/MediaLibrary/Domain/MediaItem/MediaItem.php +++ b/src/Backend/Modules/MediaLibrary/Domain/MediaItem/MediaItem.php @@ -15,7 +15,7 @@ use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException; use Backend\Modules\MediaLibrary\Domain\MediaFolder\MediaFolder; use Backend\Core\Engine\Model; -use Symfony\Bridge\Doctrine\IdGenerator\UuidGenerator; +use Symfony\Component\Uid\Uuid; /** * MediaItem @@ -26,12 +26,10 @@ class MediaItem implements JsonSerializable { /** - * @var string + * @var Uuid * * @ORM\Id() - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class=UuidGenerator::class) - * @ORM\Column(type="uuid") + * @ORM\Column(type="uuid", unique=true) */ private $id; @@ -163,6 +161,7 @@ private function __construct( MediaFolder $folder, int $userId ) { + $this->id = Uuid::v4(); $this->folder = $folder; $this->userId = $userId; $this->type = $type;