diff --git a/core/modules/field/lib/Drupal/field/FieldInstanceStorageController.php b/core/modules/field/lib/Drupal/field/FieldInstanceStorageController.php index f0b8266..e6af293 100644 --- a/core/modules/field/lib/Drupal/field/FieldInstanceStorageController.php +++ b/core/modules/field/lib/Drupal/field/FieldInstanceStorageController.php @@ -14,6 +14,7 @@ use Drupal\Core\Config\StorageInterface; use Drupal\Core\Entity\EntityManager; use Drupal\Core\Extension\ModuleHandler; +use Drupal\Core\KeyValueStore\KeyValueStoreInterface; /** * Controller class for field instances. @@ -40,7 +41,14 @@ class FieldInstanceStorageController extends ConfigStorageController { protected $entityManager; /** - * Constructs a FieldStorageController object. + * The state keyvalue collection. + * + * @var \Drupal\Core\KeyValueStore\KeyValueStoreInterface + */ + protected $state; + + /** + * Constructs a FieldInstanceStorageController object. * * @param string $entity_type * The entity type for which the instance is created. @@ -54,8 +62,10 @@ class FieldInstanceStorageController extends ConfigStorageController { * The entity manager. * @param \Drupal\Core\Extension\ModuleHandler $module_handler * The module handler. + * @param \Drupal\Core\KeyValueStore\KeyValueStoreInterface $state + * The state key value store. */ - public function __construct($entity_type, array $entity_info, ConfigFactory $config_factory, StorageInterface $config_storage, EntityManager $entity_manager, ModuleHandler $module_handler) { + public function __construct($entity_type, array $entity_info, ConfigFactory $config_factory, StorageInterface $config_storage, EntityManager $entity_manager, ModuleHandler $module_handler, KeyValueStoreInterface $state) { $this->entityType = $entity_type; $this->entityInfo = $entity_info; $this->hookLoadArguments = array(); @@ -72,6 +82,7 @@ public function __construct($entity_type, array $entity_info, ConfigFactory $con $this->configStorage = $config_storage; $this->entityManager = $entity_manager; $this->moduleHandler = $module_handler; + $this->state = $state; } /** @@ -84,7 +95,8 @@ public static function createInstance(ContainerInterface $container, $entity_typ $container->get('config.factory'), $container->get('config.storage'), $container->get('plugin.manager.entity'), - $container->get('module_handler') + $container->get('module_handler'), + $container->get('keyvalue') ); } @@ -125,8 +137,7 @@ public function loadByProperties(array $conditions = array()) { // Merge deleted instances (stored in state) if needed. if ($include_deleted) { - $state = \Drupal::state(); - $deleted_instances = $state->get('field.instance.deleted') ?: array(); + $deleted_instances = $this->state->get('field.instance.deleted') ?: array(); foreach ($deleted_instances as $id => $config) { $instances[$id] = $this->entityManager->getStorageController($this->entityType)->create($config); } diff --git a/core/modules/field/lib/Drupal/field/FieldStorageController.php b/core/modules/field/lib/Drupal/field/FieldStorageController.php index 53ca2fa..59e5e28 100644 --- a/core/modules/field/lib/Drupal/field/FieldStorageController.php +++ b/core/modules/field/lib/Drupal/field/FieldStorageController.php @@ -14,6 +14,7 @@ use Drupal\Core\Config\StorageInterface; use Drupal\Core\Entity\EntityManager; use Drupal\Core\Extension\ModuleHandler; +use Drupal\Core\KeyValueStore\KeyValueStoreInterface; /** * Controller class for fields. @@ -35,6 +36,13 @@ class FieldStorageController extends ConfigStorageController { protected $entityManager; /** + * The state keyvalue collection. + * + * @var \Drupal\Core\KeyValueStore\KeyValueStoreInterface + */ + protected $state; + + /** * Constructs a FieldStorageController object. * * @param string $entity_type @@ -49,8 +57,10 @@ class FieldStorageController extends ConfigStorageController { * The entity manager. * @param \Drupal\Core\Extension\ModuleHandler $module_handler * The module handler. + * @param \Drupal\Core\KeyValueStore\KeyValueStoreInterface $state + * The state key value store. */ - public function __construct($entity_type, array $entity_info, ConfigFactory $config_factory, StorageInterface $config_storage, EntityManager $entity_manager, ModuleHandler $module_handler) { + public function __construct($entity_type, array $entity_info, ConfigFactory $config_factory, StorageInterface $config_storage, EntityManager $entity_manager, ModuleHandler $module_handler, KeyValueStoreInterface $state) { $this->entityType = $entity_type; $this->entityInfo = $entity_info; $this->hookLoadArguments = array(); @@ -67,6 +77,7 @@ public function __construct($entity_type, array $entity_info, ConfigFactory $con $this->configStorage = $config_storage; $this->entityManager = $entity_manager; $this->moduleHandler = $module_handler; + $this->state = $state; } /** @@ -79,7 +90,8 @@ public static function createInstance(ContainerInterface $container, $entity_typ $container->get('config.factory'), $container->get('config.storage'), $container->get('plugin.manager.entity'), - $container->get('module_handler') + $container->get('module_handler'), + $container->get('keyvalue') ); } @@ -107,7 +119,7 @@ public function loadByProperties(array $conditions = array()) { // Merge deleted fields (stored in state) if needed. if ($include_deleted) { - $deleted_fields = \Drupal::state()->get('field.field.deleted') ?: array(); + $deleted_fields = $this->state->get('field.field.deleted') ?: array(); foreach ($deleted_fields as $id => $config) { $fields[$id] = $this->entityManager->getStorageController($this->entityType)->create($config); }