You are here

public function AdminPathConfigEntityConverter::convert in Zircon Profile 8

Same name in this branch
  1. 8 core/lib/Drupal/Core/ParamConverter/AdminPathConfigEntityConverter.php \Drupal\Core\ParamConverter\AdminPathConfigEntityConverter::convert()
  2. 8 core/lib/Drupal/Core/ProxyClass/ParamConverter/AdminPathConfigEntityConverter.php \Drupal\Core\ProxyClass\ParamConverter\AdminPathConfigEntityConverter::convert()
Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/ParamConverter/AdminPathConfigEntityConverter.php \Drupal\Core\ParamConverter\AdminPathConfigEntityConverter::convert()

Converts path variables to their corresponding objects.

Parameters

mixed $value: The raw value.

mixed $definition: The parameter definition provided in the route options.

string $name: The name of the parameter.

array $defaults: The route defaults array.

Return value

mixed|null The converted parameter value.

Overrides EntityConverter::convert

File

core/lib/Drupal/Core/ParamConverter/AdminPathConfigEntityConverter.php, line 67
Contains \Drupal\Core\ParamConverter\AdminPathConfigEntityConverter.

Class

AdminPathConfigEntityConverter
Makes sure the unmodified ConfigEntity is loaded on admin pages.

Namespace

Drupal\Core\ParamConverter

Code

public function convert($value, $definition, $name, array $defaults) {
  $entity_type_id = $this
    ->getEntityTypeFromDefaults($definition, $name, $defaults);

  // If the entity type is dynamic, confirm it to be a config entity. Static
  // entity types will have performed this check in self::applies().
  if (strpos($definition['type'], 'entity:{') === 0) {
    $entity_type = $this->entityManager
      ->getDefinition($entity_type_id);
    if (!$entity_type
      ->isSubclassOf('\\Drupal\\Core\\Config\\Entity\\ConfigEntityInterface')) {
      return parent::convert($value, $definition, $name, $defaults);
    }
  }
  if ($storage = $this->entityManager
    ->getStorage($entity_type_id)) {

    // Make sure no overrides are loaded.
    return $storage
      ->loadOverrideFree($value);
  }
}