1 <?php 2 3 /** 4 * SCSSPHP 5 * 6 * @copyright 2012-2020 Leaf Corcoran 7 * 8 * @license http://opensource.org/licenses/MIT MIT 9 * 10 * @link http://scssphp.github.io/scssphp 11 */ 12 13 namespace ScssPhp\ScssPhp; 14 15 final class Warn 16 { 17 /** 18 * @var callable|null 19 * @phpstan-var (callable(string, bool): void)|null 20 */ 21 private static $callback; 22 23 /** 24 * Prints a warning message associated with the current `@import` or function call. 25 * 26 * This may only be called within a custom function or importer callback. 27 * 28 * @param string $message 29 * 30 * @return void 31 */ 32 public static function warning($message) 33 { 34 self::reportWarning($message, false); 35 } 36 37 /** 38 * Prints a deprecation warning message associated with the current `@import` or function call. 39 * 40 * This may only be called within a custom function or importer callback. 41 * 42 * @param string $message 43 * 44 * @return void 45 */ 46 public static function deprecation($message) 47 { 48 self::reportWarning($message, true); 49 } 50 51 /** 52 * @param callable|null $callback 53 * 54 * @return callable|null The previous warn callback 55 * 56 * @phpstan-param (callable(string, bool): void)|null $callback 57 * 58 * @phpstan-return (callable(string, bool): void)|null 59 * 60 * @internal 61 */ 62 public static function setCallback(callable $callback = null) 63 { 64 $previousCallback = self::$callback; 65 self::$callback = $callback; 66 67 return $previousCallback; 68 } 69 70 /** 71 * @param string $message 72 * @param bool $deprecation 73 * 74 * @return void 75 */ 76 private static function reportWarning($message, $deprecation) 77 { 78 if (self::$callback === null) { 79 throw new \BadMethodCallException('The warning Reporter may only be called within a custom function or importer callback.'); 80 } 81 82 \call_user_func(self::$callback, $message, $deprecation); 83 } 84 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body