Symfony Language Tools, the official Symfony LSP server announced on August 17, jumped through ten releases in six days to reach version 0.16. New capabilities include linking custom Twig functions/filters to their PHP implementations with completion, hover and navigation; typed Twig templates via the types tag; support for Twig components from bundles; XML service definition indexing; Doctrine metadata from XML/YAML mappings; fallback asset resolution for non-AssetMapper setups; running PHP inside Docker or a VM for runtime indexing; new editor support (Zed extension, OpenCode integration, VS Code socket connection on Windows); and performance work including streamed indexing, linear scaling tests on large codebases, and a configurable 2GB memory ceiling. The tool is tested against real-world applications like Kimai, Mautic, Sulu Demo, Sylius and Shopware, and remains in beta.

6m read timeFrom symfony.com
Post cover image
Table of contents
Twig Knows Your PHPTyped Twig TemplatesComponents from BundlesReal Applications as TestsXML ServicesDoctrine Beyond AttributesPlain Old Public AssetsYour PHP Can Stay in DockerMore EditorsSaying LessIndexing at ScaleStill a Beta

Questions this post answers

How do I configure Symfony Language Tools to use a PHP executable running inside a Docker container?

Set the symfonyLsp.phpCommand setting to the docker exec command (for example docker compose exec -T php php) and symfonyLsp.containerProjectRoot to the project path inside the container, such as /app. The application then boots inside Docker for runtime indexing while navigation still opens files on the host; the same approach works with a virtual machine or any isolated PHP command. daily.dev surfaces setup details like this for developers wiring Symfony tooling into containerized workflows.

Which real-world Symfony applications are used to test the Symfony Language Tools LSP server?

The test matrix runs against pinned revisions of Kimai, Mautic, Sulu Demo, Sylius, Shopware and Symfony Demo, covering Symfony 6.4, 7.4 and 8.1. Each application is indexed from cold and warm states, booted, and exercised with real completion, hover, navigation, references, code action and rename requests to catch assumptions that small test fixtures miss. Developers evaluating a new Symfony tool's reliability can track its testing rigor via daily.dev.

Does Symfony Language Tools support code completion inside XML service definition files?

Not yet for completion, though navigation, references and rename already work across XML, YAML and PHP service definitions. Version 0.16 added indexing of services, aliases, parameters, decorators, tags and references declared in XML, but completion specifically inside XML files remains unsupported as of this release. Keep track of evolving PHP tooling gaps like this one on daily.dev before you hit them yourself.

9K Impressions