Пометить функцию (метод) как deprecated
Пометить функцию (метод) как «устаревшее» можно через атрибут «Deprecated» (работает начиная с версии PHP 8.4).
#[\Deprecated]
function testFunction() {
return '12345';
}
testFunction(); // Deprecated: Function testFunction() is deprecated in /path/script.php on line 5
Теперь при вызове функции testFunction() будет выводится предупреждение, что функция является устаревшей (если включен вывод ошибок).
Также можно указывать свой текст.
#[\Deprecated("Вместо данной функции используйте output()")]
function testFunction() {
return '12345';
}
testFunction();
// Deprecated: Function testFunction() is deprecated, Вместо данной функции используйте output() in /path/script.php on line 5
Указать версию или дату, начиная с которой функция является устаревшей, можно через параметр since
:
#[\Deprecated(since: "2.4 (05.02.2025)")]
function testFunction() {
return '12345';
}
testFunction();
// Deprecated: Function testFunction() is deprecated since 2.4 (05.02.2025) in /path/script.php on line 5
Пометить методы, свойства и константы как derecated
Данный атрибут можно также задавать методам и константам классов:
class Lang
{
public $name = 'PHP';
#[\Deprecated]
public const VERS = '8.4';
#[\Deprecated]
public function getVers()
{
return $this->vers;
}
}
$lang = new Lang();
$lang::VERS; // Deprecated: Constant Lang::VERS is deprecated
$lang->getVers(); // Deprecated: Method Lang::getVers() is deprecated
При этом если задать атрибут свойству, то PHP вернёт ошибку:
class Lang
{
#[\Deprecated]
public $name = 'PHP';
}
// Fatal error: Attribute "Deprecated" cannot target property (allowed targets: function, method, class constant) in /home/user/scripts/code.php on line 4
Поддержать автора
Все статьи создаются и поддерживаются одним человеком,
если вам нравится контент, вы можете поддержать автора сайта