. namespace core; use Attribute; /** * Attribute to describe a deprecated item. * * @package core * @copyright 2023 Andrew Lyons * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ #[Attribute] class deprecated { /** * A deprecated item. * * This attribute can be applied to any function, class, method, constant, property, enum, etc. * * Note: The mere presence of the attribute does not do anything. It must be checked by some part of the code. * * @param mixed $descriptor A brief descriptor of the thing that was deprecated. * @param null|string $since When it was deprecated * @param null|string $reason Why it was deprecated * @param null|string $replacement Any replacement for the deprecated thing * @param null|string $mdl Link to the Moodle Tracker issue for more information */ public function __construct( public readonly mixed $descriptor, public readonly ?string $since = null, public readonly ?string $reason = null, public readonly ?string $replacement = null, public readonly ?string $mdl = null, public readonly bool $final = false, public readonly bool $emit = true, ) { } }