Commit 91998735 authored by Taylor Otwell's avatar Taylor Otwell

Improve the @layout blade expression, allow dynamic specification of templates.

parent e8e7db68
...@@ -119,9 +119,9 @@ class Blade { ...@@ -119,9 +119,9 @@ class Blade {
// be located on the first line of the template contents. // be located on the first line of the template contents.
$lines = preg_split("/(\r?\n)/", $value); $lines = preg_split("/(\r?\n)/", $value);
$layout = static::extract($lines[0], '@layout'); $pattern = static::matcher('layout');
$lines[] = "<?php echo render('{$layout}'); ?>"; $lines[] = preg_replace($pattern, '$1@include$2', $lines[0]);
// We will add a "render" statement to the end of the templates and // We will add a "render" statement to the end of the templates and
// and then slice off the @layout shortcut from the start so the // and then slice off the @layout shortcut from the start so the
...@@ -137,7 +137,7 @@ class Blade { ...@@ -137,7 +137,7 @@ class Blade {
*/ */
protected static function extract($value, $expression) protected static function extract($value, $expression)
{ {
preg_match('/'.$expression.'(\s*\(.*\))(\s*)/', $value, $matches); preg_match('/@layout(\s*\(.*\))(\s*)/', $value, $matches);
return str_replace(array("('", "')"), '', $matches[1]); return str_replace(array("('", "')"), '', $matches[1]);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment