De Database API genereert uitzonderingen (exceptions) bij fouten, die kunnen worden opgevangen door databasebewerkingen in try {} catch() {} blokken te plaatsen, zoals in dit voorbeeld:
Het databaseniveau van Drupal biedt geen cross-database abstractie van SQL-functies. Om draagbaarheid tussen de ondersteunde databasesystemen te garanderen, moet je code alleen die functies gebruiken waarvan bekend is dat ze deel uitmaken van de ANSI-standaard en ondersteund worden in alle databases die Drupal ondersteunt. Het volgende is nog steeds een onvolledige lijst. De hier gebruikte vorm wordt aanbevolen, omdat andere varianten van de syntaxis mogelijk niet in alle databases werken.
Drupal 8 Entity-systeem
Entiteiten zijn getypeerde klassen met methoden
| Generieke methoden |
$entity->id() |
| Entiteit type specifieke methoden | $node->getTitle() |
- Drupal 7 - Entity waren algemene stdClass-objecten.
- Drupal 8 - Entity zijn nu objecten met specifieke typisering, waarbij elk entity type een klasse definieert die zal worden gebruikt voor instanties van die entity.
Vereisten
Bevat methodes van de algemene Entity API
- Entity::create()
- Entity::load()
- Entity::save()
- Entity::id()
- Entity::bundle()
- Entity::isNew()
- Entity::label()
Meer specifieke API’s worden behandeld in afzonderlijke hoofdstukken.
In Drupal 8 zijn bundles een soort container voor informatie die velddefinities of instellingen bevatten. Ze worden soms “subtypes” genoemd. Bundles zijn optioneel en bevinden zich onder entity types in de hiërarchie van informatiecontainers.
Configuratie-objecten gebruiken de Entity API om configuratie in de database op te slaan.
Verschillen ten opzichte van Content Entity
- Integreert met de CMI API voor exportmogelijkheden
- Geen velden
- Schema-bestand (Content Entity gebruikt hook_schema())
Tutorials
Deze cheatsheet bevat een overzicht van veelgebruikte methodes, klassen en interfaces voor content entities.
![]()
Doelgroep
Deze documentatie is in de eerste plaats bedoeld voor ontwikkelaars met ervaring in objectgeoriënteerd PHP-programmeren, Drupal 6 of Drupal 7, en ook voor degenen die de principes van Drupal 8 willen leren.
Documentatie over het aanmaken van een content entity type in Drupal 8 bevat een volledige lijst met beschikbare opties.
Een inhoudstype zonder bundle opbouwen in Drupal 8
In dit geval maken we een Drupal 8-contentobject aan dat geen enkele bundle heeft.
Deze pagina is een kopie van de configuratie “Enable by default” in de Drupal 8-module. Dit moet worden beschouwd als verouderd.
Het aanmaken van een custom inhoudstype is vrij eenvoudig geworden dankzij de nieuwe configuratie-API die met Drupal 8 wordt geleverd.