编程

Laravel Blade模板静态分析

391 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获取安装和设置说明。Blade