它是如何完成的 - Laravel Blade 语句

How it's done - Laravel Blade statements

它是如何完成的,例如我们可以在 blade 视图中有这样的东西:

@if (count($records) === 1) 
(...)

分析bladeCompiler.php文件后,可以看出这是转换为PHP,例如有这样一种方法:

protected function compileIf($expression)
{
    return "<?php if{$expression}: ?>";
}

然后由 "compileString" 方法间接使用,该方法接受 returns 一个字符串。

但是然后呢?我在整个项目中找不到PHP的"eval"函数调用,这是怎么做到的?

Blade 编译完 PHP 代码后,Laravel 将结果放入 storage/framework/views/ 目录中的缓存文件中。然后直接调用该文件,因此您不需要任何 eval() 语句。