dsfgdsjfd78773 2018-01-28 11:22
浏览 70
已采纳

PHP CodeSniffer通过Composer的WordPress

Is there a way to install PHPCodeSniffer and WordPress Coding Standards for PHP_CodeSniffer per project via Composer? I've installed both as dev dependencies and set the installed path to WordPress Coding Standards in CodeSniffer.conf. Unfortunately phpcs can not resolve to the config file when I run the command in the terminal because it is looking in "vendor" folder for "vendor/squizlabs/php_codesniffer/CodeSniffer.conf"

Here is my project setup:

composer.json

{
    "require-dev": {
        "squizlabs/php_codesniffer": "^3.2",
        "wp-coding-standards/wpcs": "^0.14.0"
    }
}

CodeSniffer.conf

<?php
    $phpCodeSnifferConfig = array (
        'installed_paths' => 'vendor/wp-coding-standards/wpcs',
    )
?>

Terminal

vendor/bin/phpcs -p THEME_NAME --standard=WordPress

"ERROR: the "WordPress" coding standard is not installed. The installed coding standards are PEAR, Zend, PSR2, MySource, Squiz and PSR1"

  • 写回答

1条回答 默认 最新

  • drfls28608 2018-02-27 19:32
    关注

    First, you don't need to require PHP CodeSniffer explicitly, because wp-coding-standards/wpcs pulls it automatically.

    composer.json

    {
        "require-dev": {
            "wp-coding-standards/wpcs": "^0.14.0"
        }
    }
    

    is sufficient.

    To make CodeSniffer aware of the added coding standard, type on the console terminal:

    $ vendor/bin/phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs
    

    It will automatically create (and later find) the vendor/squizlabs/php_codesniffer/CodeSniffer.conf file.

    This should have happened automagically during the installation; the package contains instructions for that, but for some reason they were not executed.

    Now, check the installed standards:

    $ vendor/bin/phpcs -i
    The installed coding standards are MySource, PSR2, Squiz, Zend, PSR1, PEAR, WordPress-Extra, WordPress, WordPress-Core, WordPress-VIP and WordPress-Docs
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?