Support passing old method name into deprecatedFunctionWarning
authorMatthew Wire <mjw@mjwconsult.co.uk>
Mon, 8 Jun 2020 11:49:30 +0000 (12:49 +0100)
committerMatthew Wire <mjw@mjwconsult.co.uk>
Mon, 8 Jun 2020 12:03:48 +0000 (13:03 +0100)
CRM/Core/Error.php

index 573cd4739ca8c013eddc07696b3b35a671c03057..808375d293ff41fccb84e98d17f1fc4dfe27a0d1 100644 (file)
@@ -1033,14 +1033,19 @@ class CRM_Core_Error extends PEAR_ErrorStack {
   /**
    * Output a deprecated function warning to log file.  Deprecated class:function is automatically generated from calling function.
    *
-   * @param $newMethod
+   * @param string $newMethod
    *   description of new method (eg. "buildOptions() method in the appropriate BAO object").
+   * @param string $oldMethod
+   *   optional description of old method (if not the calling method). eg. CRM_MyClass::myOldMethodToGetTheOptions()
    */
-  public static function deprecatedFunctionWarning($newMethod) {
-    $dbt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
-    $callerFunction = $dbt[1]['function'] ?? NULL;
-    $callerClass = $dbt[1]['class'] ?? NULL;
-    Civi::log()->warning("Deprecated function $callerClass::$callerFunction, use $newMethod.", ['civi.tag' => 'deprecated']);
+  public static function deprecatedFunctionWarning($newMethod, $oldMethod = NULL) {
+    if (!$oldMethod) {
+      $dbt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
+      $callerFunction = $dbt[1]['function'] ?? NULL;
+      $callerClass = $dbt[1]['class'] ?? NULL;
+      $oldMethod = "{$callerClass}::{$callerFunction}";
+    }
+    Civi::log()->warning("Deprecated function $oldMethod, use $newMethod.", ['civi.tag' => 'deprecated']);
   }
 
 }