使用Laravel Blades

时间:2014-04-22 03:02:52

标签: laravel-4 blade

我已经开始在Laravel工作,并使用.blade.php模板,但我无法理解使用blad.php的好处,同时还有一个母版页,为什么我们将代码放在其他一些页面中@sections和@yeild 像

masterpage.blade.php

<div>
 @yeild(section)
</div>

index.balde.php

@section
 Hellow world
@endsection

为什么我需要那样做?为什么我们不能只将文本放在同一页面而不是这个方法,如果我们这样编码会有什么好处。

2 个答案:

答案 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>

在每个页面的视图文件中,您只需要处理页面的主要内容,而不是其他部分。