Атрибут Deprecated

(PHP 8 >= 8.4.0)

Введение

Атрибут помечает функциональность устаревшей. Устаревшая функциональность вызывает ошибки уровня E_USER_DEPRECATED.

Обзор класса

#[\Attribute]
final class Deprecated {
/* Свойства */
public readonly ?string $message;
public readonly ?string $since;
/* Методы */
public function __construct(?string $message = null, ?string $since = null)
}

Свойства

message

Необязательное сообщение, которое объясняет причину устаревания и возможную замену функциональности. Текст сообщения включается в предупреждение об устаревании.

since

Необязательная строка, которая указывает, с какого момента устарела функциональность. PHP не проверяет содержание строки и поэтому иногда строка включает сведения о версии, дате или другие значения, которые считает уместными. Строка включается в предупреждение об устаревании.

Функциональность самого́ PHP указывает в значении свойства since момент устаревания в виде мажорной и минорной версий, например '8.4'.

Примеры

<?php

#[\Deprecated(message: "use safe_replacement() instead", since: "1.5")]
function unsafe_function()
{
   echo "This is unsafe", PHP_EOL;
}

unsafe_function();

Результат выполнения приведённого примера в PHP 8.4 аналогичен:

Deprecated: Function unsafe_function() is deprecated since 1.5, use safe_replacement() instead in example.php on line 9
This is unsafe

Содержание

Добавить

Примечания пользователей 1 note

up
-1
miqrogroove at gmail dot com
9 days ago
Here is a bit of wisdom from the Attribute parser:

Fatal error: Attribute "Deprecated" cannot target parameter (allowed targets: function, method, class constant)

<?php
function unsafe_function(
   #[\Deprecated(message: "don't use hello param anymore", since: "1.5")]
   string $hello,
) {
   echo "This is unsafe", PHP_EOL;
}
To Top