diff --git a/laravel/html.php b/laravel/html.php index 33d91dd6..4e8dfb43 100644 --- a/laravel/html.php +++ b/laravel/html.php @@ -9,6 +9,13 @@ class HTML { */ public static $macros = array(); + /** + * Cache application encoding locally to save expensive calls to config::get(). + * + * @var string + */ + public static $encoding = null; + /** * Registers a custom macro. * @@ -31,7 +38,7 @@ public static function macro($name, $macro) */ public static function entities($value) { - return htmlentities($value, ENT_QUOTES, Config::get('application.encoding'), false); + return htmlentities($value, ENT_QUOTES, static::encoding(), false); } /** @@ -42,7 +49,7 @@ public static function entities($value) */ public static function decode($value) { - return html_entity_decode($value, ENT_QUOTES, Config::get('application.encoding')); + return html_entity_decode($value, ENT_QUOTES, static::encoding()); } /** @@ -55,7 +62,7 @@ public static function decode($value) */ public static function specialchars($value) { - return htmlspecialchars($value, ENT_QUOTES, Config::get('application.encoding'), false); + return htmlspecialchars($value, ENT_QUOTES, static::encoding(), false); } /** @@ -431,6 +438,16 @@ protected static function obfuscate($value) return $safe; } + /** + * Get the appliction.encoding without needing to request it from Config::get() each time. + * + * @return string + */ + protected static function encoding() + { + return static::$encoding ?: static::$encoding = Config::get('application.encoding'); + } + /** * Dynamically handle calls to custom macros. *