driveto/phpstan-twig

PHPStan 的 Twig 扩展

0.0.1 2022-08-15 07:32 UTC

This package is not auto-updated.

Last update: 2024-09-24 14:16:40 UTC


README

受到 @TomasVortuba 博客系列启发 - https://tomasvotruba.com/blog/stamp-1-how-to-compile-twig-to-php/

已知问题

  • 性能
    • 目前,模板仅按顺序处理
    • 相同的模板包含相同的变量在多个模板中会被多次检查
    • 当包含模板的深度更高时,内存使用量较大
  • 不支持方法名称猜测。我相信模板引擎不应该猜测程序员想要使用哪个方法。因此,如果您想使用方法,请使用完整名称和括号 {{ class.fullMethodName() }}

安装

要使用此扩展,请在 Composer 中引入它

composer require --dev driveto/phpstan-twig

在您的 PHPStan 配置中包含 extension.neon

includes:
    - vendor/driveto/phpstan-twig/extension.neon

在 phpstan.neon 中添加到 Twig 服务的路径

parameters:
    twig:
        twigEnvironmentLoader: tests/TwigEnvironmentLoader.php

Twig 加载器示例

use App\Kernel;
use Symfony\Component\Dotenv\Dotenv;

require __DIR__ . '/../vendor/autoload.php';

(new Dotenv())->bootEnv(__DIR__ . '/../.env');

$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$kernel->boot();
return $kernel->getContainer()->get('twig');