Skip to content

alexkarand/coding-standard

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ECG Magento Code Sniffer Coding Standard

SensioLabsInsight Medal

ECG Magento Code Sniffer Coding Standard is a set of rules and sniffs for PHP_CodeSniffer tool.

It allows automatically check your code against some of the common Magento and PHP coding issues, like:

  • raw SQL queries;
  • SQL queries inside a loop;
  • direct instantiation of Mage and Enterprise classes;
  • unnecessary collection loading;
  • excessive code complexity;
  • use of dangerous functions;
  • use of PHP Superglobals;

and many others.

Both Magento and Magento 2 are supported.

Installation

Before starting using our coding standard install PHP_CodeSniffer.

The recommended installation method for PHPCS is globally with Composer:

composer global require "squizlabs/php_codesniffer=*"

Make sure Composer's bin directory (defaulted to ~/.composer/vendor/bin/) is in your PATH.

Clone or download this repo somewhere on your computer or install it with Composer:

composer require magento-ecg/coding-standard

Note: PHP_CodeSniffer 3.x is now required to run our coding standard. To install PHP_CodeSniffer 2.x compatible version:

composer require magento-ecg/coding-standard:4.*

Add the ECG standards directory to PHP_CodeSniffer's installed paths:

$ ./vendor/bin/phpcs --config-set installed_paths /path/to/your/folder/vendor/magento-ecg/coding-standard

You can check Installation by running following command:

$ ./vendor/bin/phpcs -i

It should do the following output:

The installed coding standards are EcgM2, PEAR, Zend, PSR2, MySource, Squiz, PSR1, PSR12 and Magento2

Usage CLI Tool

Select a standard to run with CodeSniffer: EcgM2 for Magento 2

Run CodeSniffer:

$ ./vendor/bin/phpcs --standard=EcgM2,PSR2,Magento2 /path/to/code

This package is compatible with Composer Installer Plugins for PHPCS coding standards (such as https://github.com/Dealerdirect/phpcodesniffer-composer-installer) and can be automatically registered with PHPCS during installation.

To check design templates, you must specify phtml in the --extensions argument: --extensions=php,phtml

Usage Hook pre-commit

Get hook file from the existing repository.

$ /path/to/your/folder/vendor/magento-ecg/coding-standard/.githooks

Install Hooks on the project. Copy hook into the project GIT folder

cp -R ./vendor/magento-ecg/coding-standard/.githooks ./

To automate hooks installation for all developers, it needs to include the following lines into your project's composer.json

    "scripts": {
        "post-install-cmd": [
            "git config core.hooksPath .githooks"
        ],
        "post-update-cmd": [
            "git config core.hooksPath .githooks"
        ]
    }

Run composer install to refresh the project state.

composer install

You are done! Now, each product commit will be validated for an alignment with Magento Coding Standards.

Usage PHPStorm

PhpStorm provides code style check through integration with the PHP Code Sniffer tool, which validates your code for consistency with a coding standard and best practices.

Once Tool installed and configured in PhpStorm, the tool is available in any opened PHP file. Errors and warnings reported by PHP Code Sniffer on-the-fly are displayed as popup messages.

Install coding standard for development See Installation steps.

Configure PhpStorm

  • Open Preference: "Settings > Preferences > Editor > Inspections > PHP > Quality Tools".
  • Select a checkbox next to "PHP Code Sniffer validation" option.
  • On the right-hand pane of the page, configure the PHP Code Sniffer tool using the controls in the "Options" area:
  • From the "Severity" list, choose the "Error" for the PHP Code Sniffer inspection.
  • From the "Scope" list, choose the "Changed Files" to limit the inspection application to only changed files.
  • In the "Check files with extensions" field, provide the comma-separated list of file extensions that should be checked by PHP Code Sniffer.
  • To have PHP Code Sniffer report warnings in addition to errors, select the "Show warnings as..." checkbox and choose the "Errors" from the list.
  • Choose installed coding standard path as the main for standards
  • Select "EcgM2" it the "Coding standard" list.

https://www.jetbrains.com/help/phpstorm/using-php-code-sniffer.html#installing-configuring-code-sniffer

Note: We would also suggest enabling PHP Mess Detector validation as well.

Note: in case of using a Docker or VM, It needs to configure new PHPCS CLI Interpreter which will point out to VM/Docker.

Requirements

PHP 5.4 and up.

Checkout the php-5.3-compatible branch to get the PHP 5.3 version.

Contribution

Please feel free to contribute new sniffs or any fixes or improvements for the existing ones.

About

Magento PHP_CodeSniffer Coding Standard

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 96.2%
  • HTML 2.8%
  • Shell 1.0%