13. Language Entity or Class
● Each entity contains
– UUID - Universally unique identifier for this entity. (128)
– LANGCODE - varchar(12)
● Modules:
– Locale
– language
– translation @deprecated
– translation_entity
17. Entity API
● Controllers:
– EntityStorageControllerInterface
– EntityAccessControllerInterface
– EntityRenderControllerInterface
– EntityFormControllerInterface — many
– EntityTranslationControllerInterface
18. Entity NG
● Why Drupal 8 slow (x4) => entityBCdecorator
<?php
/**
* @file
* Contains DrupalCoreEntityEntity.
*/
/**
* Implements DrupalCoreEntityEntityInterface::getBCEntity().
*/
public function getBCEntity() {
return $this;
}
/**
* Implements DrupalCoreEntityEntityInterface::getNGEntity().
*/
public function getNGEntity() {
return $this;
}
19. Entity NG - BC
● Magic methods vs native properties
<?php
/**
* @file
* Contains DrupalCoreEntityEntityNG.
*/
/**
* Overrides Entity::getBCEntity().
*/
public function getBCEntity() {
if (!isset($this->bcEntity)) {
// Initialize field definitions so that we can pass them by reference.
$this->getPropertyDefinitions();
$this->bcEntity = new EntityBCDecorator($this, $this->fieldDefinitions);
}
return $this->bcEntity;
}
20. Fields NG
● Bundles are separated from entity definition
● Field and Field instance are config objects
● Todo:
– Replace most field-hooks with TypedData
– Review mega patches in sandboxes
– Allow use widgets and formatters for any data
object (none-configurable field)
23. Validation
● #2002152 by fago, amateescu: Implement
entity validation based on symfony validator.
●
● Make formatters and widgets work on
nonconfigurable fields
https://drupal.org/node/1950632
24. Todo
● [meta] Unified Entity Field API
– https://drupal.org/node/1346214
● Move entity-type specific storage logic into
entity classes
– https://drupal.org/node/1893772
● [META] Unify entity fields and field API
– https://drupal.org/node/1949932