There is no license information available for the latest version (dev-main) of this package.

Easy Coding Standard configurations for Craft CMS projects

Maintainers

👁 brandonkelly

Package info

github.com/craftcms/ecs

pkg:composer/craftcms/ecs

Statistics

Installs: 306 997

Dependents: 471

Suggesters: 0

Stars: 18

Open Issues: 4

dev-main 2024-08-07 21:54 UTC

Requires

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

Unknown License 3823f989668e12a85ba681f8c7f3fd8488e23066

This package is auto-updated.

Last update: 2026-06-08 02:05:11 UTC


README

This package provides Easy Coding Standard configurations for Craft CMS plugins and projects.

In general, we follow the PSR-12 coding style guide, with a couple alterations:

  • Multi-line function argument rules aren’t enforced. (¶4.4)
  • Spaces after the function keyword aren’t enforced. (¶7)
  • Visibility is not enforced for constants, for Craft 3 projects.

To install, run the following commands within your plugin or project:

composer config minimum-stability dev
composer config prefer-stable true
composer require craftcms/ecs:dev-main --dev

Then add an ecs.php file to the root of your plugin or project:

<?php

declare(strict_types=1);

use craft\ecs\SetList;
use Symplify\EasyCodingStandard\Config\ECSConfig;

return static function(ECSConfig $ecsConfig): void {
 $ecsConfig->parallel();
 $ecsConfig->paths([
 __DIR__ . '/src',
 __FILE__,
 ]);

 $ecsConfig->sets([SetList::CRAFT_CMS_3]); // for Craft 3 projects
 $ecsConfig->sets([SetList::CRAFT_CMS_4]); // for Craft 4 projects
};

Adjust the PATHS value to include all source/test code locations, and remove the appropriate SetList option, depending on whether this is for Craft 3 or Craft 4.

With that in place, you can check your plugin/project’s code with the following command:

vendor/bin/ecs check

And to automatically fix it as well, pass the --fix argument:

vendor/bin/ecs check --fix

You might also want to define check-cs and fix-cs scripts in composer.json:

{
 "...": "...",
 "scripts": {
 "check-cs": "ecs check --ansi",
 "fix-cs": "ecs check --ansi --fix"
 }
}

Then you could execute ECS using composer run-script:

composer run-script check-cs
composer run-script fix-cs