class Deprecation (View source)

Handles raising an notice when accessing a deprecated method, class, configuration, or behaviour.

Sometimes we want to mark that a method will be deprecated in some future version and shouldn't be used in new code, but not forbid in the current version - for instance when that method is still heavily used in framework or cms.

See https://docs.silverstripe.org/en/contributing/release_process/#deprecation

Constants

SCOPE_METHOD

SCOPE_CLASS

SCOPE_GLOBAL

SCOPE_CONFIG

Methods

public static 
void
enable(bool $showNoReplacementNotices = false)

Enable throwing deprecation warnings. By default, this excludes warnings for deprecated code which is called by core Silverstripe modules.

public static 
void
disable()

Disable throwing deprecation warnings.

public static 
mixed
withNoReplacement(callable $func) deprecated

Used to wrap deprecated methods and deprecated config get()/set() called from the vendor dir that projects have no ability to change.

public static 
mixed
withSuppressedNotice(callable $func)

Used to wrap deprecated methods and deprecated config get()/set() called from the vendor dir that projects have no ability to change.

protected static 
string
get_called_method_from_trace($backtrace, $level = 1)

Given a backtrace, get the method name from the immediate parent caller (the caller of #notice)

public static 
bool
fileIsInSupportedModule(string $file)

Check whether a file (path to file) is in a supported module

public static 
bool
isEnabled()

No description

public static 
bool
isTriggeringError()

If true, any E_USER_DEPRECATED errors should be treated as coming directly from this class.

public static 
void
setShouldShowForHttp(bool $value)

Determine whether deprecation warnings should be included in HTTP responses.

public static 
void
setShouldShowForCli(bool $value)

Determine whether deprecation warnings should be included in CLI responses.

public static 
bool
shouldShowForHttp()

If true, deprecation warnings should be included in HTTP responses.

public static 
bool
shouldShowForCli()

If true, deprecation warnings should be included in CLI responses.

public static 
bool
getShowNoticesCalledFromSupportedCode()

If true, deprecation warnings will be shown for deprecated code which is called by core Silverstripe modules.

public static 
void
setShowNoticesCalledFromSupportedCode(bool $value)

Set whether deprecation warnings will be shown for deprecated code which is called by core Silverstripe modules.

public static 
void
outputNotices()

No description

public static 
notice(string $atVersion, string $string = '', int $scope = Deprecation::SCOPE_METHOD)

Raise a notice indicating the method is deprecated if the version passed as the second argument is greater than or equal to the check version set via ::notification_version

public static 
void
noticeWithNoReplacment(string $atVersion, string $message = '', int $scope = Deprecation::SCOPE_METHOD)

Shorthand method to create a suppressed notice for something with no immediate replacement.

Details

static void enable(bool $showNoReplacementNotices = false)

Enable throwing deprecation warnings. By default, this excludes warnings for deprecated code which is called by core Silverstripe modules.

This will be overriden by the SS_DEPRECATION_ENABLED environment variable if present.

Parameters

bool $showNoReplacementNotices

If true, deprecation warnings will also be thrown for deprecated code which is called by core Silverstripe modules.

Return Value

void

static void disable()

Disable throwing deprecation warnings.

This will be overriden by the SS_DEPRECATION_ENABLED environment variable if present.

Return Value

void

static mixed withNoReplacement(callable $func) deprecated

deprecated 5.4.0 Use withSuppressedNotice() instead

Used to wrap deprecated methods and deprecated config get()/set() called from the vendor dir that projects have no ability to change.

Parameters

callable $func

Return Value

mixed

static mixed withSuppressedNotice(callable $func)

Used to wrap deprecated methods and deprecated config get()/set() called from the vendor dir that projects have no ability to change.

Parameters

callable $func

Return Value

mixed

static protected string get_called_method_from_trace($backtrace, $level = 1)

Given a backtrace, get the method name from the immediate parent caller (the caller of #notice)

Parameters

$backtrace

array - a backtrace as returned from debug_backtrace

$level
  • 1 (default) will return immediate caller, 2 will return caller's caller, etc.

Return Value

string
  • the name of the method

static bool fileIsInSupportedModule(string $file)

Check whether a file (path to file) is in a supported module

Parameters

string $file

Return Value

bool

static bool isEnabled()

No description

Return Value

bool

static bool isTriggeringError()

If true, any E_USER_DEPRECATED errors should be treated as coming directly from this class.

Return Value

bool

static void setShouldShowForHttp(bool $value)

Determine whether deprecation warnings should be included in HTTP responses.

Does not affect logging.

This will be overriden by the SS_DEPRECATION_SHOW_HTTP environment variable if present.

Parameters

bool $value

Return Value

void

static void setShouldShowForCli(bool $value)

Determine whether deprecation warnings should be included in CLI responses.

Does not affect logging.

This will be overriden by the SS_DEPRECATION_SHOW_CLI environment variable if present.

Parameters

bool $value

Return Value

void

static bool shouldShowForHttp()

If true, deprecation warnings should be included in HTTP responses.

Does not affect logging.

Return Value

bool

static bool shouldShowForCli()

If true, deprecation warnings should be included in CLI responses.

Does not affect logging.

Return Value

bool

static bool getShowNoticesCalledFromSupportedCode()

If true, deprecation warnings will be shown for deprecated code which is called by core Silverstripe modules.

Return Value

bool

static void setShowNoticesCalledFromSupportedCode(bool $value)

Set whether deprecation warnings will be shown for deprecated code which is called by core Silverstripe modules.

Parameters

bool $value

Return Value

void

static void outputNotices()

No description

Return Value

void

static notice(string $atVersion, string $string = '', int $scope = Deprecation::SCOPE_METHOD)

Raise a notice indicating the method is deprecated if the version passed as the second argument is greater than or equal to the check version set via ::notification_version

Parameters

string $atVersion

The version at which this notice should start being raised

string $string

The notice to raise

int $scope

Notice relates to the method or class context its called in.

static void noticeWithNoReplacment(string $atVersion, string $message = '', int $scope = Deprecation::SCOPE_METHOD)

Shorthand method to create a suppressed notice for something with no immediate replacement.

If $message is empty, then a standardised message will be used

Parameters

string $atVersion
string $message
int $scope

Return Value

void