blob: c4d3540c9604cc4ebf2bbfea0f975d3b09f23be1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<?php
declare(strict_types=1);
namespace Drupal\Core\ClassLoader;
/**
* Adds backwards compatibility support for deprecated classes.
*/
final class BackwardsCompatibilityClassLoader {
public function __construct(protected array $movedClasses) {}
/**
* Aliases a moved class to another class, instead of actually autoloading it.
*
* @param string $class
* The classname to load.
*/
public function loadClass(string $class): void {
if (isset($this->movedClasses[$class])) {
$moved = $this->movedClasses[$class];
if (isset($moved['deprecation_version']) && isset($moved['removed_version']) && isset($moved['change_record'])) {
// @phpcs:ignore
@trigger_error(sprintf('Class %s is deprecated in %s and is removed from %s, use %s instead. See %s', $class, $moved['deprecation_version'], $moved['removed_version'], $moved['class'], $moved['change_record']), E_USER_DEPRECATED);
}
class_alias($moved['class'], $class, TRUE);
}
}
}
|