PHP 8.3: class_alias() создание псевдонимов встроенных классов
class_alias() может создавать псевдоним для заданного класса. Псевдоним ведёт себя точно так же, как и оригинальный класс.Возможность создания псевдонимов классов через функцию PHP class_alias() появилась в версии 5.3.0. Но, до PHP 8.3 попытка присвоить псевдоним встроенному классу приводила к выбрасыванию исключения ValueError:
// Недопустимо в PHP < 8.3
class_alias('stdClass', 'MyNewClass');
class_alias('Traversable', 'NewTraversableInterface');ValueError: class_alias(): Argument #1 ($class) must be a user-defined class name, internal class name givenНачиная с версии PHP 8.3 и выше, появилась возможность создания через функцию class_alias() псевдонимов внутренних классов и интерфейсов. Приведённый фрагмент валиден, и class_alias() корректно присваивает псевдонимы и внутренним классам:
// Допустимо в PHP >= 8.3
class_alias('stdClass', 'MyNewClass');
class_alias('Traversable', 'NewTraversableInterface');Функция class_alias() принимает в качестве третьего параметра значение bool $autoload = true. Этот параметр не влияет на встроенные классы, так как они не нуждаются в автозагрузке. Однако, несмотря на отсутствие значимого эффекта, передача значения в этот параметр все же разрешена и не вызывает никаких предупреждений или ошибок.