刀片模板与Laravel中的普通php

时间:2014-03-14 22:09:51

标签: php parsing laravel-4 blade

据我了解,Blade只是regex解析器,它会将任何Blade构造转换为PHP代码,然后从中生成简单HTML PHP。似乎此过程使加载Blade模板的文件速度变慢(因为额外的步骤Blade - > PHP)。如果是这样,为什么我要使用Blade?仅仅因为优雅的语法或Blade文件存储在cache

1 个答案:

答案 0 :(得分:34)

您使用Blade是因为您想使用Blade。就像你说它有更好的语法,一旦你知道它的简单语法,它就可以很快使用。

常规PHP:

<?php if ($user->isLogged()): ?>
    Welcome back, <strong><?= $user->name; ?></strong>
<?php endif; ?>

刀片:

@if ($user->isLogged())
    Welcome back, <strong>{{ $user->name }}</strong>
@endif

当然,这只是一个基本的控制结构。 Blade也提供了模板支持。

速度

两者之间几乎没有速度差异,因为在第一次加载时,Laravel将编译已更改为其PHP等价物的任何视图。后续页面加载将使用此编译文件(它们存储在app/storage/views)。

我想唯一的额外开销是初步检查以查看视图是否已编译。尽管如此。