instance = new static::$facade_over_classname(); } /** * Log a deprecation to the error log. * * @param string $function The name of the deprecated function being called. */ private static function log_deprecation( $function ) { $message = sprintf( '%1$s is deprecated since version %2$s! Use %3$s instead.', static::class . '::' . $function, static::$deprecated_in_version, static::$facade_over_classname . '::' . $function ); // Only log when the message has not been logged before. if ( ! in_array( $message, self::$logged_messages, true ) ) { error_log( $message ); // phpcs:ignore self::$logged_messages[] = $message; } } /** * Executes when calling any function on an instance of this class. * * @param string $name The name of the function being called. * @param array $arguments An array of the arguments to the function call. */ public function __call( $name, $arguments ) { self::log_deprecation( $name ); return call_user_func_array( array( $this->instance, $name, ), $arguments ); } /** * Executes when calling any static function on this class. * * @param string $name The name of the function being called. * @param array $arguments An array of the arguments to the function call. */ public static function __callStatic( $name, $arguments ) { self::log_deprecation( $name ); return call_user_func_array( array( static::$facade_over_classname, $name, ), $arguments ); } }