class AliasRepositoryDecorator in Language neutral aliases 3.x
Same name and namespace in other branches
- 8.2 src/AliasRepositoryDecorator.php \Drupal\language_neutral_aliases\AliasRepositoryDecorator
Alias repository service decorator.
Makes the repository only consider neutral language aliases.
Hierarchy
- class \Drupal\path_alias\AliasRepository implements AliasRepositoryInterface
- class \Drupal\language_neutral_aliases\AliasRepositoryDecorator
Expanded class hierarchy of AliasRepositoryDecorator
1 string reference to 'AliasRepositoryDecorator'
1 service uses AliasRepositoryDecorator
File
- src/
AliasRepositoryDecorator.php, line 14
Namespace
Drupal\language_neutral_aliasesView source
class AliasRepositoryDecorator extends AliasRepository {
/**
* The database connection.
*
* @var \Drupal\Core\Database\Connection
*/
protected $connection;
/**
* The real alias repository service.
*
* @var \Drupal\path_alias\AliasRepository
*/
protected $repository;
/**
* Constructs an AliasRepositoryDecorator.
*.
* @param \Drupal\path_alias\AliasRepository $repository
* The alias repository to decorate.
* This is intentionally *not* typed as a different class is used when
* updating from Drupal <8.8.
* @param \Drupal\Core\Database\Connection
* The database connection used to retrieve aliases.
*/
public function __construct($repository, Connection $connection) {
parent::__construct($connection);
$this->repository = $repository;
}
/**
* {@inheritdoc}
*/
public function preloadPathAlias($preloaded, $langcode) {
return $this->repository
->preloadPathAlias($preloaded, LanguageInterface::LANGCODE_NOT_SPECIFIED);
}
/**
* {@inheritdoc}
*/
public function lookupBySystemPath($path, $langcode) {
return $this->repository
->lookupBySystemPath($path, LanguageInterface::LANGCODE_NOT_SPECIFIED);
}
/**
* {@inheritdoc}
*/
public function lookupByAlias($alias, $langcode) {
return $this->repository
->lookupByAlias($alias, LanguageInterface::LANGCODE_NOT_SPECIFIED);
}
/**
* {@inheritdoc}
*/
public function pathHasMatchingAlias($initial_substring) {
// Have to override as we can't pass a language code to the original.
$query = $this
->getBaseQuery();
$query
->addExpression(1);
return (bool) $query
->condition('base_table.path', $this->connection
->escapeLike($initial_substring) . '%', 'LIKE')
->condition('base_table.langcode', LanguageInterface::LANGCODE_NOT_SPECIFIED)
->range(0, 1)
->execute()
->fetchField();
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AliasRepository:: |
protected | function | Adds path alias language fallback conditions to a select query object. | |
AliasRepository:: |
protected | function | Returns a SELECT query for the path_alias base table. | 1 |
AliasRepositoryDecorator:: |
protected | property |
The database connection. Overrides AliasRepository:: |
|
AliasRepositoryDecorator:: |
protected | property | The real alias repository service. | |
AliasRepositoryDecorator:: |
public | function |
Searches a path alias for a given alias. Overrides AliasRepository:: |
|
AliasRepositoryDecorator:: |
public | function |
Searches a path alias for a given Drupal system path. Overrides AliasRepository:: |
|
AliasRepositoryDecorator:: |
public | function |
Check if any alias exists starting with $initial_substring. Overrides AliasRepository:: |
|
AliasRepositoryDecorator:: |
public | function |
Pre-loads path alias information for a given list of system paths. Overrides AliasRepository:: |
|
AliasRepositoryDecorator:: |
public | function |
Constructs an AliasRepositoryDecorator.
. Overrides AliasRepository:: |