Check your TWIG templates
composer require symplify/template-checker --dev
- for existing classes
- for existing class constants
- for existing static calls
vendor/bin/template-checker check-latte-template templates
final class SomeController
{
public function index()
{
return $this->render('does_path_exist.twig');
}
}
vendor/bin/template-checker check-twig-render src/Controller
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
-{\App\SomeClass::someStaticMethod($value)}
+{$value|someStaticMethod}
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
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.