编程

Laravel Blade 模板静态分析

778 2023-05-15 02:09:00

你是否曾经发布过 Blade 模板到生产环境,模板中意外缺失了一个变量或者方法有拼写错误。你是否想避免在生产环境中出现模板 bug?那就看看 rector 的作者的 Bladestan,它在 PHPStan 中为 Blade 模板添加了静态分析。

Can @phpstan statically analyse @laravelphp templates?

Hell yeah 😎🥳️https://t.co/m6txBPzwWh

— Tomas Votruba (@VotrubaT) March 24, 2023

此包查找所有视图调用,并查看渲染的变量在提供的模板中是否具有有效行为。例如,它将检查模板文件路径并确保其存在,检查变量,渲染模板,并使用 PHPStan 检查是否有任何违规行为。

以下是作者在博客文章中介绍 Bladestan 的一个例子:

下面的例子来自于作者介绍 Bladestand 的博文中:

@foreach($posts as $post)
{{ $post->getContet() }}
@endforeach

上例中,PHPStan 会返回如下报告:

blog.blade.php:17
rendered in: app/Http/Controllers/BlogController.php:20
--------------------------------------------------------------
 - '#Call to an undefined method App\\Entity\\Post\:\:getContet\(\)#'

Bladestan 负责静态检查 Blade 模板所需的一切,并使用现有的 PHPStan 设置,包括 Larastan。

要开始使用 Bladestan,您可以从 GitHub repo 获取安装和设置说明。