我只是在 Laravel 框架内使用刀片模板进行表演的简单问题。我们来谈谈大型项目。
我有兴趣知道在这样的if条件下执行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 } ?>
提前致谢
答案 0 :(得分:2)
刀片语法编译为原始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
(Laravel 4中的app/storage/views
)
你获得的唯一表现就是编译。理想情况下,只有在视图文件更改或第一次访问时才会发生这种情况。如果你问我,你肯定还有其他性能瓶颈需要先担心。 (特别是像数据库查询或只是糟糕的架构)
答案 1 :(得分:0)
Laravel只是将刀片语法转换为第一遍中临时视图文件中的普通php语法,这些文件存储在/app/storage
中。
因此blade
和常规php
命令之间基本没有性能差异
答案 2 :(得分:0)
无论如何,laravel编译和缓存模板时,唯一的轻微开销是在第一次访问刀片模板时,之后在性能上没有差别