据我了解,Blade
只是regex
解析器,它会将任何Blade
构造转换为PHP
代码,然后从中生成简单HTML
PHP
。似乎此过程使加载Blade
模板的文件速度变慢(因为额外的步骤Blade
- > PHP
)。如果是这样,为什么我要使用Blade
?仅仅因为优雅的语法或Blade
文件存储在cache
?
答案 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
)。
我想唯一的额外开销是初步检查以查看视图是否已编译。尽管如此。