public function EntityConverter::applies

public EntityConverter::applies($definition, $name, Route $route)

Determines if the converter applies to a specific route and variable.

Parameters

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

string $name: The name of the parameter.

\Symfony\Component\Routing\Route $route: The route to consider attaching to.

Return value

bool TRUE if the converter applies to the passed route and parameter, FALSE otherwise.

Overrides ParamConverterInterface::applies

File

core/lib/Drupal/Core/ParamConverter/EntityConverter.php, line 77

Class

EntityConverter
Parameter converter for upcasting entity IDs to full objects.

Namespace

Drupal\Core\ParamConverter

Code

public function applies($definition, $name, Route $route) {
  if (!empty($definition['type']) && strpos($definition['type'], 'entity:') === 0) {
    $entity_type_id = substr($definition['type'], strlen('entity:'));
    if (strpos($definition['type'], '{') !== FALSE) {
      $entity_type_slug = substr($entity_type_id, 1, -1);
      return $name != $entity_type_slug && in_array($entity_type_slug, $route->compile()->getVariables(), TRUE);
    }
    return $this->entityManager->hasDefinition($entity_type_id);
  }
  return FALSE;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!ParamConverter!EntityConverter.php/function/EntityConverter::applies/8.1.x