smile/magento2-smilelab-phpcs

PHPCS coding standard for Magento projects.

Package info

github.com/Smile-SA/magento2-smilelab-phpcs

Type:phpcodesniffer-standard

pkg:composer/smile/magento2-smilelab-phpcs

Statistics

Installs: 63 195

Dependents: 1

Suggesters: 0

Stars: 3

Open Issues: 0

4.0.1 2026-04-14 09:01 UTC

Suggests

None

Provides

None

Conflicts

None

Replaces

None

OSL-3.0 98ab6bd7b13622efc95c393baea55a2b58cfa54a

This package is auto-updated.

Last update: 2026-06-14 09:16:26 UTC


README

Description

This coding standard is meant to be used on Magento projects and modules.

It uses the following rulesets:

Installation

To use this ruleset, require it in composer:

composer require --dev smile/magento2-smilelab-phpcs

Rulesets

Two rulesets are available:

  • SmileLab (Magento >=2.4.4)
  • SmileLab-237-243 (Magento >=2.3.7 <2.4.4)

Older versions of Magento (<2.4.4) require a separate ruleset, because they use an outdated version of the Magento coding standard.

Configuration

Create a configuration file namedphpcs.xml.dist at the root of your project.

Example for a Magento project:

<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd">

 <arg name="basepath" value="."/>
 <arg name="extensions" value="php,phtml"/>
 <arg name="colors"/>
 <arg value="p"/>
 <arg value="s"/>
 
 <rule ref="SmileLab"/>

 <file>app/code</file>
 <file>app/design</file>
</ruleset>

Example for a community module:

<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd">

 <arg name="basepath" value="."/>
 <arg name="extensions" value="php,phtml"/>
 <arg name="colors"/>
 <arg value="p"/>
 <arg value="s"/>

 <config name="php_version" value="{{min_php_version}}"/>

 <rule ref="SmileLab"/>

 <file>.</file>
 <exclude-pattern>vendor/*</exclude-pattern>
</ruleset>

Where {{min_php_version}} is the minimum compatible version of PHP required by your module. For example, if the min version is PHP 7.4:

<config name="php_version" value="70400"/>

Usage

You can run phpcs with this command:

vendor/bin/phpcs --extensions=php,phtml

You can fix most of the errors found with:

vendor/bin/phpcbf --extensions=php,phtml

Guidelines

If your class overrides a method declared in a parent class, use @inheritdoc:

/**
 * @inheritdoc
 */
public function execute(InputInterface $input, OutputInterface $output): int
{
 // ...
}