Edit in GitHubLog an issue

Static analysis

This topic provides steps to set up most static analyzers that are used in our build pipeline to work in your local PHPStorm environment. This guide is written specifically for those using PHPStorm on MacOS.

Before you begin

If you have not already, verify that node and npm are installed. Then, in the application root directory, run npm install. After installation, ensure there is a node_modules directory in the root of your project before proceeding.

Javascript Code Style check

ESLint

  1. Go to PHPStorm preferences > Languages & Frameworks > JavaScript > Code Quality Tools > ESLint.
  2. Click Manual ESLint configuration.
  3. Fill in the adjacent input fields with the path to your node binary (the result of outputting which node in your terminal).
  4. Enter the path to your ESLint package: [magento_root]/node_modules/eslint
  5. Click Configuration File and in the adjacent input field enter the path to the ESLint file the application uses, which is located in vendor/magento/magento-coding-standard/eslint/.eslintrc-magento.

See the image below for example configuration:

ESLint

To verify it works, in any JS file add /** Hello world */ as a doc comment to any method, and you should see a warning about the comment being on one line.

PHPCS

  1. Go to PHPStorm preferences > Languages & Frameworks > PHP > Quality Tools > PHP_CodeSniffer.
  2. Click the ... button to bring up another configuration modal.
  3. Enter the PHP_CodeSniffer path: [magento_root]/vendor/bin/phpcs

Configuring for Magento Coding Standard

  1. Go to the Magento Coding Standard GitHub Repository
  2. Follow instructions within the README to install the Magento Coding Standard for PHPCS. Verify it is installed with vendor/bin/phpcs -i. You should see Magento2 in the output.
  3. Go to PHPStorm preferences > Editor > Inspections, and in the adjacent window go to PHP > Quality Tools > PHP_CodeSniffer validation.
  4. Under Coding Standard dropdown, select Magento2.

See the image below for example configuration:

PHPCS

To verify it works, add the following PHP snippet: $base = basename($_SERVER['SCRIPT_FILENAME']);. You should see a warning that the use of basename is forbidden, as well as the use of superglobals.

PHPMD

  1. Go to PHPStorm preferences > Languages & Frameworks > PHP > Quality Tools > Mess Detector.
  2. Click the ... button to bring up another configuration modal.
  3. Enter the PHP Mess Detector path: [magento_root]/vendor/phpmd/phpmd/src/bin/phpmd
  4. Go to PHPStorm preferences > Editor > Inspections and in the adjacent window go to > PHP > Quality Tools > PHP Mess Detector validation.
  5. Under custom rulesets, add the path to the PHPMD ruleset the application uses: [magento_root]/dev/tests/static/testsuite/Magento/Test/Php/_files/phpmd/ruleset.xml

See the image below for example configuration:

PHPMD

To verify it works, add an unused private method to a class, and you should see a warning from PHPMD about it not being used.

  • Privacy
  • Terms of Use
  • Do not sell or share my personal information
  • AdChoices
Copyright © 2024 Adobe. All rights reserved.