Laravel 中的 Blade 模板中的 If 条件性能
If conditions performances in Blade templates in Laravel
我只是想问一个关于在 Laravel 框架内使用 blade 模板的性能的简单问题。让我们谈谈大型项目。
我很想知道像这样实现 if 条件是否更高效:
@if(isset($training))
<a class="btn" href="{{MYLIB\URL::training_url($sector, $category, $training)}}">Nu inschrijven<span class="icon-right"></span></a>
@endif
还是这样?
<?php if (isset($page)){ ?>
<h2>{{{ $page->title }}}</h2>
<?php } ?>
提前致谢
Laravel 只是在第一遍临时视图文件中将 blade 语法转换为正常的 php 语法,这些文件存储在 /app/storage
.
所以blade
和常规php
命令之间基本上没有性能差异
由于 laravel 编译和缓存模板,唯一的轻微开销是在第一次访问 blade 模板时,之后性能完全没有差异
Blade 语法编译为原始 PHP。这意味着:
@if(isset($page))
<h2>{{{ $page->title }}}</h2>
@endif
变成这样:
<?php if(isset($page)): ?>
<h2><?php echo e($page->title); ?></h2>
<?php endif; ?>
此编译模板然后存储在storage/framework/views
(app/storage/views
in Laravel 4)
结论
唯一的性能损失是编译。理想情况下,这只会在视图文件更改或首次访问时发生。如果您问我,您肯定首先要担心其他性能瓶颈。 (尤其是数据库查询或糟糕的架构)
我只是想问一个关于在 Laravel 框架内使用 blade 模板的性能的简单问题。让我们谈谈大型项目。
我很想知道像这样实现 if 条件是否更高效:
@if(isset($training))
<a class="btn" href="{{MYLIB\URL::training_url($sector, $category, $training)}}">Nu inschrijven<span class="icon-right"></span></a>
@endif
还是这样?
<?php if (isset($page)){ ?>
<h2>{{{ $page->title }}}</h2>
<?php } ?>
提前致谢
Laravel 只是在第一遍临时视图文件中将 blade 语法转换为正常的 php 语法,这些文件存储在 /app/storage
.
所以blade
和常规php
命令之间基本上没有性能差异
由于 laravel 编译和缓存模板,唯一的轻微开销是在第一次访问 blade 模板时,之后性能完全没有差异
Blade 语法编译为原始 PHP。这意味着:
@if(isset($page))
<h2>{{{ $page->title }}}</h2>
@endif
变成这样:
<?php if(isset($page)): ?>
<h2><?php echo e($page->title); ?></h2>
<?php endif; ?>
此编译模板然后存储在storage/framework/views
(app/storage/views
in Laravel 4)
结论
唯一的性能损失是编译。理想情况下,这只会在视图文件更改或首次访问时发生。如果您问我,您肯定首先要担心其他性能瓶颈。 (尤其是数据库查询或糟糕的架构)