El atributo Deprecated

(PHP 8 >= 8.4.0)

Introducción

Este atributo se utiliza para marcar la funcionalidad como obsoleta. El uso de funcionalidad obsoleta hará que se emita un error E_USER_DEPRECATED.

A partir de PHP 8.5.0, este atributo también puede aplicarse a traits y a constantes de tiempo de compilación declaradas fuera de una clase.

Sinopsis de la clase

/* Propiedades */
public readonly ?string $message;
public readonly ?string $since;
/* Métodos */
public function __construct(?string $message = null, ?string $since = null)
}

Propiedades

message

Un mensaje opcional que explica la razón de la deprecación y la posible funcionalidad de reemplazo. Se incluirá en el mensaje de deprecación emitido.

since

Una cadena opcional que indica desde cuándo la funcionalidad está deprecada. El contenido no es validado por PHP y puede contener un número de versión, una fecha o cualquier otro valor que se considere apropiado. Se incluirá en el mensaje de deprecación emitido.

La funcionalidad que es parte de PHP utilizará Major.Minor como el valor de since, por ejemplo '8.4'.

Ejemplos

<?php

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

unsafe_function();

?>

La salida del ejemplo anterior en PHP 8.4 es similar a:

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

Historial de cambios

Versión Descripción
8.5.0 Deprecated ahora puede aplicarse a traits y a constantes de tiempo de compilación declaradas fuera de una clase, estas últimas mediante el nuevo objetivo Attribute::TARGET_CONSTANT.

Tabla de contenidos

+add a note

User Contributed Notes 1 note

up
0
miqrogroove at gmail dot com
15 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;
}