Articles

Die Database API wirft bei Fehlern Ausnahmen, die abgefangen werden können, indem man Datenbankoperationen in try {} catch() {}-Blöcke einschließt, wie im folgenden Beispiel gezeigt:


Die Datenbankebene von Drupal bietet keine datenbankübergreifende Abstraktion für SQL-Funktionen. Um Portabilität zwischen den unterstützten Datenbank-Engines zu gewährleisten, sollte Ihr Code nur solche Funktionen verwenden, die als Teil des ANSI-Standards bekannt sind und von allen von Drupal unterstützten Datenbanken unterstützt werden. Die folgende Liste ist immer noch unvollständig. Die hier verwendete Form wird empfohlen, da andere Syntaxvarianten möglicherweise nicht in allen Datenbanken funktionieren.


System von Entities in Drupal 8
Entities sind typisierte Klassen mit Methoden
Generische Methoden |
$entity->id() |
Entity-Typ-spezifische Methoden | $node->getTitle() |


- Drupal 7 – Entities waren allgemeine stdClass-Objekte.
- Drupal 8 – Entities sind jetzt typisierte Objekte, wobei jeder Entitätstyp eine Klasse definiert, die für Instanzen dieser Entität verwendet wird.
Anforderungen
Entity-Klassen müssen im Namensraum Entity des Moduls platziert werden, das den Entitätstyp bereitstellt, z.B. \Drupal\[module_name]\Entity. Das bedeutet, dass die PHP-Klassendateien der Entität im Modulverzeichnis unter src/Entity zu finden sind.


Behandelt die Methoden der allgemeinen Objekt-API
- Entity::create()
- Entity::load()
- Entity::save()
- Entity::id()
- Entity::bundle()
- Entity::isNew()
- Entity::label()
Spezifischere APIs werden in bestimmten Kapiteln behandelt.


In Drupal 8 sind Bundles eine Art Container für Informationen, die Felddefinitionen oder Einstellungen enthalten. Sie werden manchmal auch „Subtypen“ genannt. Bundles sind optional und befinden sich in der Hierarchie der Informationscontainer unter den Entity-Typen.


Konfigurationsobjekte verwenden die Entity-API, um Konfigurationen in der Datenbank zu speichern.
Unterschiede im Vergleich zu Content Entities
- Integriert sich mit der CMI-API für Exportfähigkeit
- Keine Felder
- Schema-Datei (Content Entity verwendet hook_schema())
Tutorials


Diese Spickzettel enthält eine Übersicht über häufig verwendete Methoden, Klassen und Schnittstellen für Content-Entities.


Zielpublikum
Diese Dokumentation richtet sich in erster Linie an Entwickler mit Erfahrung in objektorientiertem PHP, Drupal 6 oder Drupal 7 sowie an diejenigen, die die Prinzipien von Drupal 8 erlernen möchten.
Dokumentation zur Erstellung eines Content Entity Typs in Drupal 8 enthält eine vollständige Liste der verfügbaren Optionen.
Erstellung eines Content Types ohne Bundle in Drupal 8.
In diesem Fall erstellen wir ein Drupal 8 Content Entity Objekt ohne Bundles.


Diese Seite ist eine Kopie der Konfiguration „Standardmäßig aktivieren“ im Drupal 8 Modul. Dies sollte als veraltet betrachtet werden.
Das Erstellen eines benutzerdefinierten Inhaltstyps ist dank der neuen Konfigurations-API, die mit Drupal 8 eingeführt wurde, ziemlich einfach geworden.
