Cache application.encoding within HTML class to avoid unnecessary calls to Config::get();
Calling the "Config::get('application.encoding')" is expensive and within a large form (using the form builder) having it requested multiple times can result in a significant performance drag. Caching this value reduced calls to Config:get within our project from 1200+ to 125. All core tests appear to pass with this change in place.
This commit is contained in:
parent
1f005bd7e5
commit
6e44b4080a
|
@ -9,6 +9,13 @@ class HTML {
|
||||||
*/
|
*/
|
||||||
public static $macros = array();
|
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.
|
* Registers a custom macro.
|
||||||
*
|
*
|
||||||
|
@ -31,7 +38,8 @@ public static function macro($name, $macro)
|
||||||
*/
|
*/
|
||||||
public static function entities($value)
|
public static function entities($value)
|
||||||
{
|
{
|
||||||
return htmlentities($value, ENT_QUOTES, Config::get('application.encoding'), false);
|
if(static::$encoding===null) static::$encoding = Config::get('application.encoding');
|
||||||
|
return htmlentities($value, ENT_QUOTES, static::$encoding, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -42,7 +50,8 @@ public static function entities($value)
|
||||||
*/
|
*/
|
||||||
public static function decode($value)
|
public static function decode($value)
|
||||||
{
|
{
|
||||||
return html_entity_decode($value, ENT_QUOTES, Config::get('application.encoding'));
|
if(static::$encoding===null) static::$encoding = Config::get('application.encoding');
|
||||||
|
return html_entity_decode($value, ENT_QUOTES, static::$encoding);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,7 +64,8 @@ public static function decode($value)
|
||||||
*/
|
*/
|
||||||
public static function specialchars($value)
|
public static function specialchars($value)
|
||||||
{
|
{
|
||||||
return htmlspecialchars($value, ENT_QUOTES, Config::get('application.encoding'), false);
|
if(static::$encoding===null) static::$encoding = Config::get('application.encoding');
|
||||||
|
return htmlspecialchars($value, ENT_QUOTES, static::$encoding, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue