我已经开始在Laravel工作,并使用.blade.php模板,但我无法理解使用blad.php的好处,同时还有一个母版页,为什么我们将代码放在其他一些页面中@sections和@yeild 像
masterpage.blade.php
<div>
@yeild(section)
</div>
index.balde.php
@section
Hellow world
@endsection
为什么我需要那样做?为什么我们不能只将文本放在同一页面而不是这个方法,如果我们这样编码会有什么好处。
答案 0 :(得分:3)
使用Blade with Laravel有很多好处,请在此处阅读 http://culttt.com/2013/09/02/using-blade-laravel-4/
答案 1 :(得分:3)
您的简短回答是我们在任何项目中都不需要Blade引擎。但是,使用它会带来许多好处。
与其他模板引擎一样, Blade 引擎通过一些替换来简化您的PHP脚本,例如:
<?php echo $foo ?>
已更改为{{ $foo }}
(减少8个字符)<?php if ($condition): ?>
已更改为@if ($condition)
(减少6个字符)<?php echo trans('lang.key') ?>
已更改为@lang('lang.key')
(减少11个字符)尝试计算在脚本中使用 Blade 引擎可以节省多少字符。
我喜欢 Blade 引擎的另一件事是我们可以创建自己的自定义控件结构。如果您厌倦了每次需要输出$var->format('Y-m-d H:i:s')
对象时键入DateTime
。您可以使用 Blade
Blade::extend(function($view, $compiler)
{
$pattern = $compiler->createMatcher('datetime');
return preg_replace($pattern, '$1<?php echo $2->format('m/d/Y H:i'); ?>', $view);
});
现在,您只需要$var->format('Y-m-d H:i:s')
替换@datetime($var)
。
通过支持部分, Blade 引擎可帮助开发人员以分层和逻辑的方式组织其视图文件。想象一下,您的网站的某些页面有HTML代码:主页,类别存档页面和单个帖子页面。所有页面都有相同的页眉,页脚和侧边栏。如果我们&#34;把我们的文本放在同一页面而不是做这个方法&#34;,那些文件的内容有很多相似之处,这导致未来的任何变化都非常痛苦。
使用 Blade 部分,创建一个简单的主布局文件
<html>
<body>
@section('sidebar')
<!-- this is header code -->
@show
@section('sidebar')
<!-- this is sidebar code -->
@show
<div class="container">
@yield('content')
</div>
@section('footer')
<!-- this is footer code -->
@show
</body>
</html>
在每个页面的视图文件中,您只需要处理页面的主要内容,而不是其他部分。