{"id":14017,"date":"2023-12-12T04:42:41","date_gmt":"2023-12-12T04:42:41","guid":{"rendered":"https:\/\/www.bay20.com\/?p=14017"},"modified":"2025-09-24T15:54:51","modified_gmt":"2025-09-24T10:09:51","slug":"verwenden-von-uuids-mit-shopware-6","status":"publish","type":"post","link":"https:\/\/www.bay20.com\/de\/verwenden-von-uuids-mit-shopware-6\/","title":{"rendered":"Verwendung von UUIDs mit Shopware 6"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Einf\u00fchrung<\/h2>\n\n\n\n<p>Ein standardisierter 128-Bit-Bezeichner, der <a href=\"https:\/\/en.wikipedia.org\/wiki\/Universally_unique_identifier\" target=\"_blank\" rel=\"noreferrer noopener\">Universal Unique Identifier<\/a> (UUID), wird in Computersystemen verwendet, um Objekte oder Daten eindeutig zu identifizieren. Shopware 6 nutzt die UUID-Idee intensiv, um eine Vielzahl von Dingen zu identifizieren, von Bestellungen \u00fcber Kunden und Produkte bis hin zu allem, was dazwischen liegt. UUIDs sind nicht nur unerl\u00e4sslich f\u00fcr die Erf\u00fcllung zahlreicher gesch\u00e4ftlicher Anforderungen, die eindeutige Identifizierungsschemata erfordern, sondern auch f\u00fcr die Gew\u00e4hrleistung von Datenintegrit\u00e4t und Eindeutigkeit in verteilten Systemen.<\/p>\n\n\n\n<p>Ziel dieses Artikels ist es, einen umfassenden \u00dcberblick \u00fcber die Verwendung von UUIDs in Shopware 6 zu geben, einschlie\u00dflich der Erstellung neuer UUIDs, der \u00c4nderung bereits vorhandener UUIDs und deren effizienter Verwendung im gesamten Shopware-\u00d6kosystem. Um ein umfassendes Verst\u00e4ndnis zu gew\u00e4hrleisten, werden wir Codebeispiele untersuchen, die verschiedene UUID-bezogene Funktionen veranschaulichen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was ist UUID?<\/h2>\n\n\n\n<p>Die 128-Bit-Zahl, die als UUID oder Universal Unique Identifier bekannt ist, wird zur eindeutigen Identifizierung von Daten in Computersystemen verwendet. Eine UUID wird h\u00e4ufig als eine Reihe von Hexadezimalziffern dargestellt, die durch Bindestriche getrennt sind. Eine g\u00fcltige UUID ist zum Beispiel 550e8400-e29b-41d4-a716-446655440000. UUID gibt es in verschiedenen Varianten, die jeweils f\u00fcr einen bestimmten Anwendungsfall gedacht sind. Die am weitesten verbreitete Version ist Version 4, die Zufallszahlen verwendet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Warum verwendet Shopware 6 UUIDs?<\/h2>\n\n\n\n<p>Shopware 6 verwendet UUIDs f\u00fcr verschiedene Zwecke:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Unterscheidungskraft zwischen Systemen:<\/strong> Shopware 6 kann in umfangreichere und kompliziertere Systeme integriert werden. Um ID-Konflikte bei der Datensynchronisation von System zu System zu vermeiden, werden UUIDs verwendet.<\/li><li><strong>Datenintegrit\u00e4t: <\/strong>Da UUIDs nicht fortlaufend sind, k\u00f6nnen sie als Schutz vor unbefugtem Zugriff auf Daten dienen. UUIDs verraten im Gegensatz zu automatisch inkrementierenden IDs nicht die Anzahl der Eintr\u00e4ge, die sensible Informationen enthalten k\u00f6nnen.<\/li><li><strong>Skalierbarkeit:<\/strong> In verteilten Systemen, in denen es nicht immer m\u00f6glich ist, eine zentrale Datenbank auf die Verf\u00fcgbarkeit von IDs zu \u00fcberpr\u00fcfen, k\u00f6nnen UUIDs offline erzeugt werden und bleiben eindeutig.<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Erstellen von UUIDs in Shopware 6<\/h2>\n\n\n\n<p>Eine eingebaute Funktion von Shopware ist die F\u00e4higkeit, UUIDs zu generieren. Das folgende Beispiel zeigt, wie man den Shopware UUID-Dienst durch Generierung einer neuen UUID mit Hilfe von Symfonys Dependency Injection erh\u00e4lt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use Shopware\\Core\\Framework\\Uuid\\Uuid;\nuse Symfony\\Component\\DependencyInjection\\ContainerInterface;\n \nclass MyService\n{\n    private $container;\n \n    public function __construct(ContainerInterface $container)\n    {\n        $this-&gt;container = $container;\n    }\n \n    public function generateUuid()\n    {\n        $uuid = Uuid::randomHex();\n        return $uuid;\n    }\n}<\/code><\/pre>\n\n\n\n<p>In diesem Beispiel erstellen wir eine neue UUID mit der Funktion <strong>Uuid::randomHex<\/strong>() des Shopware Core Frameworks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Arbeiten mit vorhandenen UUIDs<\/h2>\n\n\n\n<p>Die Verwendung und \u00c4nderung aktueller UUIDs ist ebenfalls eine wichtige Komponente. Zum Beispiel die Verwendung der UUID, um eine Entit\u00e4t aus einem Repository abzurufen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use Shopware\\Core\\Framework\\DataAbstractionLayer\\Search\\Criteria;\nuse Shopware\\Core\\Framework\\DataAbstractionLayer\\EntityRepositoryInterface;\n\nclass MyEntityService\n{\n    private $entityRepository;\n\n    public function __construct(EntityRepositoryInterface $entityRepository)\n    {\n        $this-&gt;entityRepository = $entityRepository;\n    }\n\n    public function fetchEntityById($uuid)\n    {\n        $criteria = new Criteria(&#91;$uuid]);\n        $result = $this-&gt;entityRepository-&gt;search($criteria, Context::createDefaultContext());\n\n        return $result-&gt;get($uuid);\n    }\n}\n    }\n\n    public function generateUuid()\n    {\n        $uuid = Uuid::randomHex();\n        return $uuid;\n    }\n}<\/code><\/pre>\n\n\n\n<p>In diesem Zusammenhang akzeptiert die Funktion fetchEntityById eine UUID als Parameter und verwendet das EntityRepositoryInterface, um die zugeh\u00f6rige Entit\u00e4t aus der Datenbank abzurufen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00dcberlegungen zur Datenbank<\/h2>\n\n\n\n<p>In Shopware 6 werden UUIDs in der Regel als hexadezimale Zeichenketten in der Datenbank gespeichert, die aufgrund ihrer Lesbarkeit und der breiten Unterst\u00fctzung f\u00fcr Zeichenkettentypen in verschiedenen Datenbanken ausgew\u00e4hlt wurden. Wenn Sie sich jedoch f\u00fcr die Speicherung von UUIDs als bin\u00e4re Daten entscheiden, k\u00f6nnen Sie m\u00f6glicherweise Platz sparen und die Leistung verbessern. Jeder Ansatz hat seine Vor- und Nachteile, und die Wahl h\u00e4ngt stark von den besonderen Anforderungen Ihres Projekts ab.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Bew\u00e4hrte Praktiken<\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li>Verwenden Sie stets den Shopware Core UUID Service, um zu gew\u00e4hrleisten, dass die generierten UUIDs den Anforderungen und Standards von Shopware entsprechen.<\/li><li>Optimieren Sie die Datenbankspeicherung: Wenn es f\u00fcr Ihr Projekt sinnvoll ist, sollten Sie dar\u00fcber nachdenken, UUIDs in ein Format umzuwandeln, das weniger Speicherplatz ben\u00f6tigt, bevor Sie sie in die Datenbank einf\u00fcgen.<\/li><li>Vermeiden Sie eine \u00f6ffentliche Darstellung: Trotz ihrer Einzigartigkeit sollten UUIDs nicht ver\u00f6ffentlicht werden, es sei denn, dies ist unbedingt erforderlich, um Sicherheitsrisiken zu verringern.<\/li><li>Verwenden Sie Konsistenz: Wenn Sie sich entschlie\u00dfen, UUIDs in Ihren benutzerdefinierten Entit\u00e4ten zu verwenden, sollten Sie sich bem\u00fchen, sie konsistent in allen Ihren benutzerdefinierten Entit\u00e4ten anzuwenden.<\/li><li>Fehlersuche und Protokollierung: In Debugging-Sitzungen und Protokollen kann die Arbeit mit UUIDs eine gr\u00f6\u00dfere Herausforderung darstellen. F\u00fcr Debugging-Zwecke sollten Sie eine Mapping-Tabelle erstellen, um sie mit besser lesbaren Identifikatoren zu verkn\u00fcpfen.<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Schlussfolgerung<\/h2>\n\n\n\n<p>In Shopware 6 sind UUIDs unerl\u00e4sslich f\u00fcr die Wahrung der Datenintegrit\u00e4t, die eindeutige Identifizierung verschiedener Entit\u00e4ten und die Vereinfachung von Systemintegrationen. Bei der Verwendung von Shopware 6 kann das Verst\u00e4ndnis der Funktion und des Funktionierens von UUIDs entscheidend f\u00fcr die Entwicklung belastbarer und erweiterbarer L\u00f6sungen sein. Die Idee ist einfach, muss aber sorgf\u00e4ltig bedacht werden, von der Erstellung von UUIDs mit der in Shopware integrierten Funktion bis hin zu den besten Praktiken f\u00fcr die Datenbankspeicherung.<\/p>\n\n\n\n<p>Entwickler k\u00f6nnen sicherstellen, dass sie eine starke, skalierbare und sichere Methode f\u00fcr die Datenidentifizierung und -pflege verwenden, indem sie bew\u00e4hrte Verfahren befolgen und die Kerndienste von Shopware f\u00fcr UUID-Operationen nutzen.<\/p>\n\n\n\n<p><strong>Bitte kontaktieren Sie uns unter <strong><a href=\"mailto:manish@bay20.com\">manish@bay20.com<\/a><\/strong> oder rufen Sie uns unter <strong><a href=\"https:\/\/api.whatsapp.com\/send?phone=+918800519180&amp;text=Hi,%20I%20contacted%20you%20through%20your%20website.\">+91-8800519180<\/a><\/strong> an, wenn Sie Unterst\u00fctzung im Zusammenhang mit Shopware ben\u00f6tigen. Sie k\u00f6nnen auch die <strong><a href=\"https:\/\/www.bay20.com\/de\/shopware-entwicklungsunternehmen\/\">Shopware-<strong>Entwicklungsseite<\/strong><\/a><\/strong> besuchen, um die von uns angebotenen Dienstleistungen zu pr\u00fcfen.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A standardized 128-bit identifier called the Universal Unique Identifier (UUID) is used in computer systems to uniquely identify objects or data. Shopware 6 makes heavy use of the UUID idea to identify a wide range of things, from orders to customers and products, and everything in between.<\/p>\n","protected":false},"author":30,"featured_media":14077,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,78,115,91],"tags":[],"class_list":["post-14017","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ecommerce","category-shopware","category-shopware-6","category-shopware-6-anleitungen"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts\/14017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/comments?post=14017"}],"version-history":[{"count":10,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts\/14017\/revisions"}],"predecessor-version":[{"id":17021,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts\/14017\/revisions\/17021"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/media\/14077"}],"wp:attachment":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/media?parent=14017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/categories?post=14017"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/tags?post=14017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}