project_start/phpstorm-stubs/meta/attributes/Deprecated.php

49 lines
2.0 KiB
PHP

<?php
namespace JetBrains\PhpStorm;
use Attribute;
#[Attribute(Attribute::TARGET_FUNCTION|Attribute::TARGET_METHOD|Attribute::TARGET_CLASS|Attribute::TARGET_CLASS_CONSTANT|Attribute::TARGET_PROPERTY|Attribute::TARGET_PARAMETER)]
class Deprecated
{
public const PHP_VERSIONS = [
"5.3",
"5.4",
"5.5",
"5.6",
"7.0",
"7.1",
"7.2",
"7.3",
"7.4",
"8.0",
"8.1",
"8.2",
"8.3"
];
/**
* Mark element as deprecated
*
* @param string $reason Reason for deprecation. It will be displayed by PhpStorm via the Deprecated inspection instead of the default message
* @param string $replacement Applicable only to function/method calls: IDE will suggest replacing a deprecated function call with the provided code template.
* The following variables are available in this template:
* <ul>
* <li>%parametersList%: parameters of the function call. For example, for the "f(1,2)" call, %parametersList% will be "1,2"</li>
* <li>%parameter0%,%parameter1%,%parameter2%,...: parameters of the function call. For example, for the "f(1,2)" call, %parameter1% will be "2"</li>
* <li>%name%: For "\x\f(1,2)", %name% will be "\x\f", for "$this->ff()", %name% will be "ff"</li>
* <li>%class%: If the attribute is provided for method "m", then for "$this->f()->m()", %class% will be "$this->f()"</li>
* </ul>
* The following example shows how to wrap a function call in another call and swap arguments:<br />
* "#[Deprecated(replacement: "wrappedCall(%name%(%parameter1%, %parameter0%))")] f($a, $b){}<br />
* f(1,2) will be replaced with wrappedCall(f(2,1))
* @param string $since Element is deprecated starting with the provided PHP language level, applicable only for PhpStorm stubs entries
*/
public function __construct(
$reason = "",
$replacement = "",
#[ExpectedValues(self::PHP_VERSIONS)] $since = "5.6"
) {}
}