Я б запропонував щось на зразок:
/**
* @deprecated Please use good_function_name() instead
* @since x.y.z Marked deprecated in favor of good_function_name()
* @see good_function_name()
*/
function bad_function_name() {
trigger_error(
'The ' . __FUNCTION__ . ' function is deprecated. ' .
'Please use good_function_name() instead.',
defined( 'E_USER_DEPRECATED' ) ? E_USER_DEPRECATED : E_USER_WARNING
);
return good_function_name();
}
Це призводить до того, що в журналах відображається попередження про припинення роботи разом із слідом стека. Природно, це спрацює лише в тому випадку, якщо ввімкнути журнал в WordPress.
Потрійний оператор є, тому що константа E_USER_DEPRECATED була введена лише в PHP 5.3.0. У старих версіях ми можемо перейти до простого попередження користувача.
З посібника PHP про константи помилок :
E_DEPRECATED Повідомлення про виконання часу. Увімкніть це, щоб отримувати попередження про код, який не працюватиме в наступних версіях.
Причина, що мені не подобається використовувати _doing_it_wrong або __deprecated_function, полягає в тому, що ці функції призначені лише для ядра WordPress. З посилання коду на ці функції:
Доступ до цієї функції позначено приватним. Це означає, що він не призначений для використання розробниками плагінів або тем, лише для інших основних функцій. Він перерахований тут для повноти.