protected TypedConfigManager::getDefinitionWithReplacements($base_plugin_id, array $replacements, $exception_on_invalid = TRUE)
Gets a schema definition with replacements for dynamic names.
Parameters
string $base_plugin_id: A plugin ID.
array $replacements: An array of replacements for dynamic type names.
bool $exception_on_invalid: (optional) This parameter is passed along to self::getDefinition(). However, self::getDefinition() does not respect this parameter, so it is effectively useless in this context.
Return value
array A schema definition array.
File
- core/lib/Drupal/Core/Config/TypedConfigManager.php, line 155
Class
- TypedConfigManager
- Manages config schema type plugins.
Namespace
Drupal\Core\Config
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | protected function getDefinitionWithReplacements( $base_plugin_id , array $replacements , $exception_on_invalid = TRUE) { $definitions = $this ->getDefinitions(); $type = $this ->determineType( $base_plugin_id , $definitions ); $definition = $definitions [ $type ]; // Check whether this type is an extension of another one and compile it. if (isset( $definition [ 'type' ])) { $merge = $this ->getDefinition( $definition [ 'type' ], $exception_on_invalid ); // Preserve integer keys on merge, so sequence item types can override // parent settings as opposed to adding unused second, third, etc. items. $definition = NestedArray::mergeDeepArray( array ( $merge , $definition ), TRUE); // Replace dynamic portions of the definition type. if (! empty ( $replacements ) && strpos ( $definition [ 'type' ], ']' )) { $sub_type = $this ->determineType( $this ->replaceName( $definition [ 'type' ], $replacements ), $definitions ); // Merge the newly determined subtype definition with the original // definition. $definition = NestedArray::mergeDeepArray([ $definitions [ $sub_type ], $definition ], TRUE); $type = "$type||$sub_type" ; } // Unset type so we try the merge only once per type. unset( $definition [ 'type' ]); $this ->definitions[ $type ] = $definition ; } // Add type and default definition class. $definition += array ( 'definition_class' => '\Drupal\Core\TypedData\DataDefinition' , 'type' => $type , ); return $definition ; } |
Please login to continue.