Checkstyle automation for Twig
This package is auto-updated.
Last update: 2020-09-04 17:59:03 UTC
The missing checkstyle for twig!
Twigcs aims to be what phpcs is to php. It checks your codebase for violations on coding standards.
composer global require friendsoftwig/twigcs
Basically, just run:
On Symfony projects, you can run, for instance:
You will get a summary of the violations in the console. The exit code of the command is based on the severity of any violation found. By default, twigcs only tolerates notices, this can be changed at run time:
twigcs /path/to/views --severity error # Allows notices and warnings twigcs /path/to/views --severity notice # Disallows notices twigcs /path/to/views --severity ignore # Allows everything
With the example above, notices are still displayed but not altering the exit code.
You can also exclude relative subfolders of path like this:
twigcs /path/to/views --exclude vendor
Tips: You can use multiple exclude parameters.
By default TwigCS will output all lines that have violations regardless of whether they match the severity level
specified or not. If you only want to see violations that are greater than or equal to the severity level you've specified
you can use the
--display option. For example.
twigcs /path/to/views --severity error --display blocking
Would only display errors and not warnings.
Alternatively you can use
--display all which is the default behaviour as described above.
Twigcs can be used with your favorite CI server. The command itself will return a consistent exit code telling the CI job if it failed or succeeded. You can also have a nice xml report (checkstyle format):
twigcs /path/to/views --reporter checkstyle > /path/to/report.xml
By default twigcs is using Twig 3. This means that features like
filter tags or filtered loops using
if are not supported
anymore. You can use an older twig version using the
twigcs /path/to/views --twig-version 2
At the moment the only available standard is the official one from twig.
You can create a class implementing
RulesetInterface and supply it as a
--ruleset option to the CLI script:
twigcs /path/to/views --ruleset \MyApp\TwigCsRuleset
twigcs needs to be used via composer and the ruleset class must be reachable via composer's autoloader for this feature to work.
Also note that depending on your shell, you might need to escape backslashes in the fully qualified class name:
twigcs /path/to/views --ruleset \\MyApp\\TwigCsRuleset
For more complex needs, have a look at the custom ruleset documentation.
If you're upgrading from 3.x to 4.x or later, please read the upgrade guide.
Join us on Symfony Devs via the twigcs channel.
The master is the development branch, if you find any bug or false positive during style checking, please open an issue or submit a pull request.
When creating or changing a class, don't forget to add you as an
@author at the top of the file.