From d2de301ede907770bde066c7c2f5ea024faab8e4 Mon Sep 17 00:00:00 2001 From: Dayle Rees Date: Fri, 4 May 2012 18:44:43 +0100 Subject: [PATCH] added custom compilers to blade Signed-off-by: Dayle Rees --- laravel/blade.php | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/laravel/blade.php b/laravel/blade.php index 34eccd3a..66dd799b 100644 --- a/laravel/blade.php +++ b/laravel/blade.php @@ -26,8 +26,16 @@ class Blade { 'yield_sections', 'section_start', 'section_end', + 'extra', ); + /** + * An array of user defined compilers. + * + * @var array + */ + protected static $registered = array(); + /** * Register the Blade view engine with Laravel. * @@ -64,6 +72,22 @@ class Blade { }); } + /** + * Register a new blade compiler. + * + * + * Blade::register(function($view) { + * return str_replace('thing', 'another_thing', $view); + * }); + * + * + * @param closure $compiler + */ + public static function register($compiler) + { + static::$registered[] = $compiler; + } + /** * Determine if a view is "expired" and needs to be re-compiled. * @@ -386,6 +410,22 @@ class Blade { return preg_replace('/@endsection/', '', $value); } + /** + * Execute user defined compilers. + * + * @param string $value + * @return string + */ + protected static function compile_extra($value) + { + foreach (static::$registered as $compiler) + { + $value = $compiler($value); + } + + return $value; + } + /** * Get the regular expression for a generic Blade function. *