53 lines
1.2 KiB
PHP
53 lines
1.2 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file
|
|
* Contains \Drupal\language\LanguageConverter.
|
|
*/
|
|
|
|
namespace Drupal\language;
|
|
|
|
use Drupal\Core\Language\LanguageManagerInterface;
|
|
use Drupal\Core\ParamConverter\ParamConverterInterface;
|
|
use Symfony\Component\Routing\Route;
|
|
|
|
/**
|
|
* Converts parameters for upcasting entity IDs to full objects.
|
|
*/
|
|
class LanguageConverter implements ParamConverterInterface {
|
|
|
|
/**
|
|
* The language manager.
|
|
*
|
|
* @var \Drupal\Core\Language\LanguageManagerInterface
|
|
*/
|
|
protected $languageManager;
|
|
|
|
/**
|
|
* Constructs a new LanguageConverter.
|
|
*
|
|
* @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
|
|
* The language manager.
|
|
*/
|
|
public function __construct(LanguageManagerInterface $language_manager) {
|
|
$this->languageManager = $language_manager;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function convert($value, $definition, $name, array $defaults) {
|
|
if (!empty($value)) {
|
|
return $this->languageManager->getLanguage($value);
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function applies($definition, $name, Route $route) {
|
|
return (!empty($definition['type']) && $definition['type'] == 'language');
|
|
}
|
|
|
|
}
|