efabrica/phpstan-latte

0.17.1 2024-07-18 09:52 UTC

README

PHPStan 扩展,用于检查在 Presenter 或 Component 等上下文中编译的 Latte 模板。模板编译为 PHP 代码,然后根据配置的 规则级别 和加载的扩展的规则进行分析。

此扩展基于 Tomas Votruba 的 博客系列 和他的 symplify 和 reveal 包。

Preview

特性

  • 支持 Latte 2 和 Latte 3
  • 模板在渲染的上下文中进行分析(如果模板在多个位置使用,则可以使用不同的上下文进行分析)
  • 自动收集所有现有的模板变量、组件、简单表单、渲染调用等从 PHP 代码中。
  • 分析过滤器函数的存在性和参数。
  • 可以分析链接的存在性和参数(如果您配置了 applicationMapping)。
  • 可以使用应用程序容器中的预配置 latte 引擎(无需手动配置)
  • 分析模板中使用的组件、表单和表单字段的存在性
  • 分析包含模板的上下文中包含的模板
  • 可以解析渲染的模板路径,即使是从更复杂的表达式中(但仍然有限制)
  • 可以报告未分析的模板
  • 您可以使用注解来微调 Latte 模板的分析
  • 如果您使用某些非标准和使用渲染,您可以实现自己的模板解析器(实验性)

阅读 如何工作、何时不工作以及故障排除

安装

要使用此扩展,请通过 Composer 需求它

composer require efabrica/phpstan-latte --dev

如果您还安装了 phpstan/extension-installer,那么您就准备好了!

手动安装

将此行添加到您的 phpstan.neon 中

includes:
    - vendor/efabrica/phpstan-latte/rules.neon

建议与 phpstan-nette 扩展一起使用此扩展,以更好地分析模板。

配置

如果分析报告关于在外部包中设置的缺失上下文(变量/组件等)的错误,则需要设置选项 latte.collectedPaths,如 分析器配置 中所述。

注解

有些情况无法通过静态分析自动解决。

在这种情况下,可以使用注解行 @phpstan-latte-ignore@phpstan-latte-var 来指导解析器正确分析 Latte 模板。

如何使用注解

如何扩展此扩展

此扩展仅支持用于解析 Latte 文件路径、收集变量、组件、表单等的常用内置方法。然而,我们知道在野外有许多应用程序使用它们自己的方法来执行这些操作。这就是为什么我们创建了这个可扩展的扩展。有关更多信息,请参阅 这里

开发

变更日志

如果您想贡献您的 PR,我们表示欢迎。如果您想首先讨论您的想法,请创建问题。

感谢您使用此包。如果它对您有帮助或有改进之处,请告诉我们。