Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Twigcs Laravel Package

friendsoftwig/twigcs

Twigcs is a checkstyle/linter for Twig templates, like phpcs for PHP. Scan template directories for coding standard violations, control exit codes via severity, and exclude paths. Install via Composer or PHIVE and run as a CLI tool.

View on GitHub
Deep Wiki
Context7

Upgrade

From 3.x to 4.x

If you're not using a custom coding standard, upgrading does not require any change on your side. Otherwise, the interface FriendsOfTwig\Twigcs\Ruleset\RulesetInterface has changed :

interface RulesetInterface
{
    public function __construct(int $twigMajorVersion); // This is new

    // [...]
}

And the following rules are removed and replaced by a regex based engine (also see the regengine documentation).

DelimiterSpacing

new Rule\DelimiterSpacing(Violation::SEVERITY_ERROR, 1),

Becomes

$configurator = new RulesetConfigurator();
$builder = new RulesetBuilder($configurator);

$configurator->setTagSpacingPattern('{% expr %}');
$configurator->setPrintStatementSpacingPattern('{{ expr }}');

new Rule\RegEngineRule(Violation::SEVERITY_ERROR, $builder->build()),

ParenthesisSpacing

new Rule\ParenthesisSpacing(Violation::SEVERITY_ERROR, 0, 1)

Becomes

$configurator = new RulesetConfigurator();
$builder = new RulesetBuilder($configurator);

$configurator->setEmptyParenthesesSpacingPattern('()');
$configurator->setParenthesesSpacingPattern('(expr)');

new Rule\RegEngineRule(Violation::SEVERITY_ERROR, $builder->build()),

ArraySeparatorSpacing

new Rule\ArraySeparatorSpacing(Violation::SEVERITY_ERROR, 0, 1)

Becomes

$configurator = new RulesetConfigurator();
$builder = new RulesetBuilder($configurator);

$configurator->setListSpacingPattern('expr, expr'); // Dictates spaces between values
$configurator->setArraySpacingPattern('[expr]'); // Dictates spaces between the [] and the inside of the array.
$configurator->setEmptyArraySpacingPattern('[]');

new Rule\RegEngineRule(Violation::SEVERITY_ERROR, $builder->build()),

HashSeparatorSpacing

new Rule\HashSeparatorSpacing(Violation::SEVERITY_ERROR, 0, 1)

Becomes

$configurator = new RulesetConfigurator();
$builder = new RulesetBuilder($configurator);

$configurator->setHashSpacingPattern('{key: expr, key: expr}');
$configurator->setEmptyHashSpacingPattern('{}');

new Rule\RegEngineRule(Violation::SEVERITY_ERROR, $builder->build()),

OperatorSpacing

new Rule\OperatorSpacing(Violation::SEVERITY_ERROR, [
    '==', '!=', '<', '>', '>=', '<=',
    '+', '-', '/', '*', '%', '//', '**',
    'not', 'and', 'or',
    '~',
    'is', 'in'
], 1),
new Rule\PunctuationSpacing(
    Violation::SEVERITY_ERROR,
    ['|', '.', '..', '[', ']'],
    0,
    new TokenWhitelist([
        ')',
        \Twig\Token::NAME_TYPE,
        \Twig\Token::NUMBER_TYPE,
        \Twig\Token::STRING_TYPE
    ], [2])
)

Becomes

$configurator = new RulesetConfigurator();
$builder = new RulesetBuilder($configurator);

$configurator->setUnaryOpSpacingPattern('op expr');
$configurator->setBinaryOpSpacingPattern('expr op expr');
$configurator->setRangeOpSpacingPattern('expr..expr'); // Handles the special case of expressions like "range(1..10)"

new Rule\RegEngineRule(Violation::SEVERITY_ERROR, $builder->build()),

TernarySpacing

new Rule\TernarySpacing(Violation::SEVERITY_ERROR, 1)

Becomes

$configurator = new RulesetConfigurator();
$builder = new RulesetBuilder($configurator);

$configurator->setTernarySpacingPattern('expr ? expr : expr||expr ?: expr');

new Rule\RegEngineRule(Violation::SEVERITY_ERROR, $builder->build()),

SliceShorthandSpacing

new Rule\SliceShorthandSpacing(Violation::SEVERITY_ERROR)

Becomes

$configurator = new RulesetConfigurator();
$builder = new RulesetBuilder($configurator);

$configurator->setSliceSpacingPattern('[expr:expr]');

new Rule\RegEngineRule(Violation::SEVERITY_ERROR, $builder->build()),
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin