From 0616fed294d2e893a0e74da91514bdeab33e9207 Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Fri, 20 Jun 2014 16:13:17 +0100 Subject: [PATCH] Issue #2269003 by damiankloip, Berdir: Fixed Unnecessary high memory usage in EntityType::getKeys(). --- .../Core/Config/Entity/ConfigEntityType.php | 16 +++++----------- .../lib/Drupal/Core/Entity/ContentEntityType.php | 5 +++-- core/lib/Drupal/Core/Entity/EntityType.php | 15 +++++++++++---- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigEntityType.php b/core/lib/Drupal/Core/Config/Entity/ConfigEntityType.php index 7960edc272da..2b5dfd54342f 100644 --- a/core/lib/Drupal/Core/Config/Entity/ConfigEntityType.php +++ b/core/lib/Drupal/Core/Config/Entity/ConfigEntityType.php @@ -63,8 +63,11 @@ class ConfigEntityType extends EntityType { /** * {@inheritdoc} */ - public function getControllerClasses() { - return parent::getControllerClasses() + array( + public function __construct($definition) { + parent::__construct($definition); + // Always add a default 'uuid' key. + $this->entity_keys['uuid'] = 'uuid'; + $this->controllers += array( 'storage' => 'Drupal\Core\Config\Entity\ConfigEntityStorage', ); } @@ -94,15 +97,6 @@ public function getConfigPrefix() { return $config_prefix; } - /** - * {@inheritdoc} - */ - public function getKeys() { - // Always add a default 'uuid' key. - return array('uuid' => 'uuid') + parent::getKeys(); - } - - /** * {@inheritdoc} */ diff --git a/core/lib/Drupal/Core/Entity/ContentEntityType.php b/core/lib/Drupal/Core/Entity/ContentEntityType.php index f69f9017bc54..4be18fe196e0 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityType.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityType.php @@ -15,8 +15,9 @@ class ContentEntityType extends EntityType implements ContentEntityTypeInterface /** * {@inheritdoc} */ - public function getControllerClasses() { - return parent::getControllerClasses() + array( + public function __construct($definition) { + parent::__construct($definition); + $this->controllers += array( 'storage' => 'Drupal\Core\Entity\ContentEntityDatabaseStorage', ); } diff --git a/core/lib/Drupal/Core/Entity/EntityType.php b/core/lib/Drupal/Core/Entity/EntityType.php index ac49238aeaa7..728b3ec34f05 100644 --- a/core/lib/Drupal/Core/Entity/EntityType.php +++ b/core/lib/Drupal/Core/Entity/EntityType.php @@ -217,6 +217,15 @@ public function __construct($definition) { foreach ($definition as $property => $value) { $this->{$property} = $value; } + + // Ensure defaults. + $this->entity_keys += array( + 'revision' => '', + 'bundle' => '' + ); + $this->controllers += array( + 'access' => 'Drupal\Core\Entity\EntityAccessController', + ); } /** @@ -259,7 +268,7 @@ public function isFieldDataCacheable() { * {@inheritdoc} */ public function getKeys() { - return $this->entity_keys + array('revision' => '', 'bundle' => ''); + return $this->entity_keys; } /** @@ -318,9 +327,7 @@ public function isSubclassOf($class) { * {@inheritdoc} */ public function getControllerClasses() { - return $this->controllers + array( - 'access' => 'Drupal\Core\Entity\EntityAccessController', - ); + return $this->controllers; } /** -- GitLab