PHP 8.3: class_alias() создание псевдонимов встроенных классов

Источник: «PHP 8.3: class_alias() supports aliasing built-in PHP classes»
PHP-функция 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. Этот параметр не влияет на встроенные классы, так как они не нуждаются в автозагрузке. Однако, несмотря на отсутствие значимого эффекта, передача значения в этот параметр все же разрешена и не вызывает никаких предупреждений или ошибок.

Дополнительные материалы

Предыдущая Статья

Руководство по стилизации скроллбара (полосы прокрутки) в CSS

Следующая Статья

Планирование периодической очистки базы данных на Laravel