我正在使用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文件)
你有什么建议?
答案 0 :(得分:3)
太多的筑巢,在Laravel真的是一个不好的做法。 我们试图使代码干净,但这有时会导致性能折衷。 这就是为什么我最终决定创建一个小型磁带库,在生产过程中使刀片变平,从而将性能提高了x10倍。
从这里试试: https://packagist.org/packages/te-cho/compile-blades
基本上,它所做的就是它需要刀片文件,并且它将包含和产量放在一个刀片文件中,而不包含任何包含和屈服。
答案 1 :(得分:0)
根据official Laravel documentation
所有Blade视图都被编译为纯PHP代码并缓存,直到被修改为止,这意味着Blade实质上为您的应用程序增加了零开销
我想,如果您不篡改您的缓存配置,上面的声明将使它变得直截了当。
换句话说,不要害怕充分利用刀片模板引擎。