Laravel刀片性能

时间:2015-06-05 18:10:22

标签: php laravel

我正在使用laravel blade文件,我想知道这种方法是否会减慢我的网站速度。 这是我的文件结构:

show.blade.php文件:

<div class="table-sections">
   ...
   @include('elements/table',['name' => 'table1','blocks' => $blocks1])
   ...
   @include('elements/table',['name' => 'table2','blocks' => $blocks2])
   ...
</div>

table.blade.php文件:

...
@foreach($blocks as $block)
   ...
   @foreach($block['sections'] as $section)
      ...
      @foreach($section['rows'] as $row)
          ...
          @include('elements/row','row' => $row)
          ...
      @endforeach
      ...
   @endforeach
   ...
@endforeach
...

row.blade.php文件:

...
@foreach($row['attributes'] as $attribute)
   ...
   // Making the '<td>' elements with their respective attributes and html
   ...
@endforeach
...

我有很多嵌套的'foreach'块控制部分,所以我想知道在这种情况下是否最好不使用刀片(例如row.blade.php文件)

你有什么建议?

2 个答案:

答案 0 :(得分:3)

太多的筑巢,在Laravel真的是一个不好的做法。 我们试图使代码干净,但这有时会导致性能折衷。 这就是为什么我最终决定创建一个小型磁带库,在生产过程中使刀片变平,从而将性能提高了x10倍。

从这里试试: https://packagist.org/packages/te-cho/compile-blades

基本上,它所做的就是它需要刀片文件,并且它将包含和产量放在一个刀片文件中,而不包含任何包含和屈服。

答案 1 :(得分:0)

根据official Laravel documentation

所有Blade视图都被编译为纯PHP代码并缓存,直到被修改为止,这意味着Blade实质上为您的应用程序增加了零开销

我想,如果您不篡改您的缓存配置,上面的声明将使它变得直截了当。

换句话说,不要害怕充分利用刀片模板引擎。