From d2de301ede907770bde066c7c2f5ea024faab8e4 Mon Sep 17 00:00:00 2001 From: Dayle Rees Date: Fri, 4 May 2012 18:44:43 +0100 Subject: [PATCH 1/2] 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. * From b870807e1a71036d7170aae37713ed1560d47de9 Mon Sep 17 00:00:00 2001 From: Dayle Rees Date: Fri, 4 May 2012 19:02:44 +0100 Subject: [PATCH 2/2] renamed blade::register to blade::extend Signed-off-by: Dayle Rees --- laravel/blade.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/laravel/blade.php b/laravel/blade.php index 66dd799b..7e6a2469 100644 --- a/laravel/blade.php +++ b/laravel/blade.php @@ -26,7 +26,7 @@ class Blade { 'yield_sections', 'section_start', 'section_end', - 'extra', + 'extensions', ); /** @@ -34,7 +34,7 @@ class Blade { * * @var array */ - protected static $registered = array(); + protected static $extensions = array(); /** * Register the Blade view engine with Laravel. @@ -76,16 +76,16 @@ class Blade { * Register a new blade compiler. * * - * Blade::register(function($view) { + * Blade::extend(function($view) { * return str_replace('thing', 'another_thing', $view); * }); * * * @param closure $compiler */ - public static function register($compiler) + public static function extend($compiler) { - static::$registered[] = $compiler; + static::$extensions[] = $compiler; } /** @@ -416,9 +416,9 @@ class Blade { * @param string $value * @return string */ - protected static function compile_extra($value) + protected static function compile_extensions($value) { - foreach (static::$registered as $compiler) + foreach (static::$extensions as $compiler) { $value = $compiler($value); }