LanguageConverter.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace Drupal\language;
  3. use Drupal\Core\Language\LanguageManagerInterface;
  4. use Drupal\Core\ParamConverter\ParamConverterInterface;
  5. use Symfony\Component\Routing\Route;
  6. /**
  7. * Converts parameters for upcasting entity IDs to full objects.
  8. */
  9. class LanguageConverter implements ParamConverterInterface {
  10. /**
  11. * The language manager.
  12. *
  13. * @var \Drupal\Core\Language\LanguageManagerInterface
  14. */
  15. protected $languageManager;
  16. /**
  17. * Constructs a new LanguageConverter.
  18. *
  19. * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
  20. * The language manager.
  21. */
  22. public function __construct(LanguageManagerInterface $language_manager) {
  23. $this->languageManager = $language_manager;
  24. }
  25. /**
  26. * {@inheritdoc}
  27. */
  28. public function convert($value, $definition, $name, array $defaults) {
  29. if (!empty($value)) {
  30. return $this->languageManager->getLanguage($value);
  31. }
  32. return NULL;
  33. }
  34. /**
  35. * {@inheritdoc}
  36. */
  37. public function applies($definition, $name, Route $route) {
  38. return (!empty($definition['type']) && $definition['type'] == 'language');
  39. }
  40. }