diff --git a/core/lib/Drupal/Core/Entity/Field/FieldItemBase.php b/core/lib/Drupal/Core/Entity/Field/FieldItemBase.php index 1c6ebd8..541e127 100644 --- a/core/lib/Drupal/Core/Entity/Field/FieldItemBase.php +++ b/core/lib/Drupal/Core/Entity/Field/FieldItemBase.php @@ -25,8 +25,8 @@ /** * Overrides \Drupal\Core\TypedData\TypedData::__construct(). */ - public function __construct(array $definition, $data_type, array $type_definition, $name = NULL, TypedDataInterface $parent = NULL) { - parent::__construct($definition, $data_type, $type_definition, $name, $parent); + public function __construct(array $definition, array $type_definition, $name = NULL, TypedDataInterface $parent = NULL) { + parent::__construct($definition, $type_definition, $name, $parent); // Initialize computed properties by default, such that they get cloned // with the whole item. foreach ($this->getPropertyDefinitions() as $name => $definition) { diff --git a/core/lib/Drupal/Core/Entity/Field/Type/EntityWrapper.php b/core/lib/Drupal/Core/Entity/Field/Type/EntityWrapper.php index 3e8fc59..a14926f 100644 --- a/core/lib/Drupal/Core/Entity/Field/Type/EntityWrapper.php +++ b/core/lib/Drupal/Core/Entity/Field/Type/EntityWrapper.php @@ -61,8 +61,8 @@ class EntityWrapper extends TypedData implements IteratorAggregate, ComplexDataI /** * Overrides TypedData::__construct(). */ - public function __construct(array $definition, $data_type, array $type_definition, $name = NULL, TypedDataInterface $parent = NULL) { - parent::__construct($definition, $data_type, $type_definition, $name, $parent); + public function __construct(array $definition, array $type_definition, $name = NULL, TypedDataInterface $parent = NULL) { + parent::__construct($definition, $type_definition, $name, $parent); $this->entityType = isset($this->definition['constraints']['EntityType']) ? $this->definition['constraints']['EntityType'] : NULL; } diff --git a/core/lib/Drupal/Core/Entity/Field/Type/Field.php b/core/lib/Drupal/Core/Entity/Field/Type/Field.php index b3e3474..3b7cb98 100644 --- a/core/lib/Drupal/Core/Entity/Field/Type/Field.php +++ b/core/lib/Drupal/Core/Entity/Field/Type/Field.php @@ -36,8 +36,8 @@ class Field extends ItemList implements FieldInterface { /** * Overrides TypedData::__construct(). */ - public function __construct(array $definition, $data_type, array $type_definition, $name = NULL, TypedDataInterface $parent = NULL) { - parent::__construct($definition, $data_type, $type_definition, $name, $parent); + public function __construct(array $definition, array $type_definition, $name = NULL, TypedDataInterface $parent = NULL) { + parent::__construct($definition, $type_definition, $name, $parent); // Always initialize one empty item as most times a value for at least one // item will be present. That way prototypes created by // \Drupal\Core\TypedData\TypedDataManager::getPropertyInstance() will diff --git a/core/lib/Drupal/Core/TypedData/TypedData.php b/core/lib/Drupal/Core/TypedData/TypedData.php index fd9558a..be375a7 100644 --- a/core/lib/Drupal/Core/TypedData/TypedData.php +++ b/core/lib/Drupal/Core/TypedData/TypedData.php @@ -7,7 +7,7 @@ namespace Drupal\Core\TypedData; -use Drupal\Component\Plugin\PluginBase; +use Drupal\Component\Plugin\PluginInspectionInterface; /** * The abstract base class for typed data. @@ -15,7 +15,7 @@ * Classes deriving from this base class have to declare $value * or override getValue() or setValue(). */ -abstract class TypedData extends PluginBase implements TypedDataInterface { +abstract class TypedData implements TypedDataInterface, PluginInspectionInterface { /** * The data definition. @@ -25,6 +25,13 @@ protected $definition; /** + * The type definition. + * + * @var array + */ + protected $typeDefinition; + + /** * The property name. * * @var string @@ -43,8 +50,6 @@ * * @param array $definition * The data definition. - * @param string $data_type - * The data type * @param array $type_definition * The data type definition. * @param string $name @@ -56,10 +61,9 @@ * * @see Drupal\Core\TypedData\TypedDataManager::create() */ - public function __construct(array $definition, $data_type, array $type_definition, $name = NULL, TypedDataInterface $parent = NULL) { + public function __construct(array $definition, array $type_definition, $name = NULL, TypedDataInterface $parent = NULL) { $this->definition = $definition; - $this->pluginId = $data_type; - $this->pluginDefinition = $type_definition; + $this->typeDefinition = $type_definition; $this->parent = $parent; $this->name = $name; } @@ -72,6 +76,20 @@ public function getType() { } /** + * {@inheritdoc} + */ + public function getPluginId() { + return $this->definition['type']; + } + + /** + * {@inheritdoc} + */ + public function getPluginDefinition() { + return $this->typeDefinition; + } + + /** * Implements \Drupal\Core\TypedData\TypedDataInterface::getDefinition(). */ public function getDefinition() { diff --git a/core/lib/Drupal/Core/TypedData/TypedDataFactory.php b/core/lib/Drupal/Core/TypedData/TypedDataFactory.php index 1521eff..0dbd3e6 100644 --- a/core/lib/Drupal/Core/TypedData/TypedDataFactory.php +++ b/core/lib/Drupal/Core/TypedData/TypedDataFactory.php @@ -58,7 +58,7 @@ public function createInstance($plugin_id, array $configuration, $name = NULL, $ throw new PluginException(sprintf('The plugin (%s) did not specify an instance class.', $plugin_id)); } - return new $class($configuration, $plugin_id, $type_definition, $name, $parent); + return new $class($configuration, $type_definition, $name, $parent); } } diff --git a/core/modules/locale/lib/Drupal/locale/LocaleTypedConfig.php b/core/modules/locale/lib/Drupal/locale/LocaleTypedConfig.php index 8333029..b4df7f1 100644 --- a/core/modules/locale/lib/Drupal/locale/LocaleTypedConfig.php +++ b/core/modules/locale/lib/Drupal/locale/LocaleTypedConfig.php @@ -52,11 +52,10 @@ class LocaleTypedConfig extends Element { */ // @todo Figure out signature. public function __construct(array $definition, $name, $langcode, \Drupal\locale\LocaleConfigManager $localeConfig) { - // @todo parent::__construct() needs a $plugin_id and $plugin_definition, - // but not sure how to get those. - $data_type = ''; + // @todo parent::__construct() needs a $type_definition, + // but not sure how to get one. $type_definition = array(); - parent::__construct($definition, $data_type, $type_definition, $name); + parent::__construct($definition, $type_definition, $name); $this->langcode = $langcode; $this->localeConfig = $localeConfig; } diff --git a/core/modules/text/lib/Drupal/text/TextProcessed.php b/core/modules/text/lib/Drupal/text/TextProcessed.php index 4a1679e..7d9f539 100644 --- a/core/modules/text/lib/Drupal/text/TextProcessed.php +++ b/core/modules/text/lib/Drupal/text/TextProcessed.php @@ -37,8 +37,8 @@ class TextProcessed extends TypedData { /** * Overrides TypedData::__construct(). */ - public function __construct(array $definition, $data_type, array $type_definition, $name = NULL, TypedDataInterface $parent = NULL) { - parent::__construct($definition, $data_type, $type_definition, $name, $parent); + public function __construct(array $definition, array $type_definition, $name = NULL, TypedDataInterface $parent = NULL) { + parent::__construct($definition, $type_definition, $name, $parent); if (!isset($definition['settings']['text source'])) { throw new InvalidArgumentException("The definition's 'source' key has to specify the name of the text property to be processed.");