This package is abandoned and no longer maintained. The author suggests using the symplify/easy-ci package instead.

Check your TWIG templates


Downloads total

Check your TWIG templates


composer require symplify/template-checker --dev


Check Latte Templates

  • for existing classes
  • for existing class constants
  • for existing static calls
vendor/bin/template-checker check-latte-template templates

Check Twig Controller Paths

final class SomeController
    public function index()
        return $this->render('does_path_exist.twig');
vendor/bin/template-checker check-twig-render src/Controller

Extract Static Calls from Latte Templates to FilterProvider

Do you have a static call in your template? It's a hidden filter. Let's decouple it so we can use DI and services as in the rest of project:

vendor/bin/template-checker extract-latte-static-call-to-filter templates

But that's just a dry run... how to apply changes?

vendor/bin/template-checker extract-latte-static-call-to-filter templates --fix

What happens? The static call will be replaced by a Latte filter:

 # any latte file

The filter will be provided

use App\Contract\Latte\FilterProviderInterface;
use App\SomeClass;

final class SomeMethodFilterProvider implements FilterProviderInterface
    public const FILTER_NAME = 'someMethod';

    public function __invoke(string $name): int
        return SomeClass::someStaticMethod($name);

    public function getName(): string
        return self::FILTER_NAME;

The file will be generated into /generated directory. Just rename namespaces and copy it to your workflow.

Do you want to know more about clean Latte filters? Read How to Get Rid of Magic, Static and Chaos from Latte Filters

Report Issues

In case you are experiencing a bug or want to request a new feature head over to the Symplify monorepo issue tracker


The sources of this package are contained in the Symplify monorepo. We welcome contributions for this package on symplify/symplify.