【问题标题】:How can we customize Wordpress coding standards and use them in VSCode?我们如何自定义 Wordpress 编码标准并在 VSCode 中使用它们?
【发布时间】:2018-07-19 17:48:18
【问题描述】:

我们如何在 Windows 上自定义 Wordpress coding standards 并将它们与 VSCode 一起使用? 我正在尝试在全球范围内这样做,所以我不必为每个项目都这样做(我认为目前这不是一个坏主意?)但我想同样的事情可以应用于本地项目,只有路径应该改变。

首先,我已将它们安装在 C:\wamp64\www\_standards\wpcs 中,并使用以下方法设置了正确的路径:

phpcs --config-set installed_paths C:\wamp64\www\_standards\wpcs

现在当我执行phpcs -i 时,我可以看到已安装 WordPress 标准

The installed coding standards are MySource, PEAR, PSR1, PSR12, PSR2, Squiz, Zend, WordPress, WordPress-Core, WordPress-Docs, WordPress-Extra and WordPress-VIP

在 VSCode 用户设置中我做了

"phpcs.enable": true,
"phpcs.standard": "WordPress"

到目前为止,一切似乎都运行良好。现在,我如何自定义它们并禁用一些东西,比如Spaces must be used to indent lines; tabs are not allowed

里面写了about using custom ruleshere is their sample file,所以我创建了C:\wamp64\www\_standards\phpcs.xml文件

<?xml version="1.0"?>
<ruleset name="Custom">

     <!-- Enable colors in report -->
     <arg name="colors"/>

     <!-- Add source codes in the report -->
     <arg value="s"/>

     <!-- Load WordPress Coding standards -->
     <rule ref="WordPress"/>

     <!-- Customize -->
     <rule ref="WordPress">
          <exclude name="Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed" />
     </rule>

</ruleset>

这样在我做phpcs -i 之后什么都没有出现(甚至没有出现 WordPress 标准)

phpcs --config-set installed_paths C:\wamp64\www\_posao\_standards\wpcs,C:\wamp64\www\_posao\_standards

但是,如果我将 phpcs.xml 重命名为 ruleset.xml 并重复之前安装路径的代码,我会得到这个

The installed coding standards are MySource, PEAR, PSR1, PSR12, PSR2, Squiz, Zend, WordPress, WordPress-Core, WordPress-Docs, WordPress-Extra, WordPress-VIP and _standards

所以我在 VSCode 中更改了用户设置

phpcs.standard": "_standards"

现在,如何将 _standards 重命名为更好的名称,如何首先加载 WordPress 标准并用自定义规则覆盖它?因为文件的内容(即使已加载)也不会被使用 - 当我手动调用 phpcs page.php 时,我仍然会得到 Spaces must be used to indent lines; tabs are not allowed

编辑:因此,由于我在项目之外安装了 WPCS,并且 config-set 已经指向该文件夹,因此我只在 Wordpress 主题中放置了 phpcs.xml 文件,现在我可以手动调用 phpcs page.php - 它工作得很好。但是现在的问题是我不能在VSCode中设置它保存文件后自动运行?

【问题讨论】:

  • 请注意,您不需要像以前那样安装 XML 文件,因为您没有编写任何自定义嗅探类。您可以只使用文件的完整路径作为“标准”参数。例如,phpcs --standard=/path/to/ruleset.xml ...。希望您可以将该路径作为standard 输入到VSCode 中,它也可以正常工作。

标签: php wordpress visual-studio-code codesniffer


【解决方案1】:

几点建议:

  • phpcs.xml 文件(也可以是 phpcs.xml.dist 和其他具有首选顺序的类似变体)(不是 ruleset.xml),应该位于 项目 代码的根目录中,而不是在您安装 WPCS 的目录中。
  • 然后 VS Code 配置将成为该 phpcs.xml 文件的路径(绝对或相对):

    "phpcs.standard": "/path/to/project/phpcs.xml"

    "phpcs.standard": "./phpcs.xml"

您仍然需要确保您所指的phpcs 可执行文件已注册WordPress 标准。

参考:https://marketplace.visualstudio.com/items?itemName=ikappas.phpcs

【讨论】:

    【解决方案2】:

    经过长时间的搜索和试用,我启用了 WordPress 编码标准 (WPCS)。这是我在 Windows 10 (Home) 机器上所做的。

    请注意,我只在 Visual Studio Code 中激活了 WPCS,而不是在项目范围内使用 composer.json./vendor/ 激活

    我遵循的步骤:

    1. 在 cmd 或 git bash 中运行 composer global require "squizlabs/php_codesniffer=*"

    安装路径为:

    C:\Users\{YOUR USER}\AppData\Roaming\Composer\vendor\bin

    1. 安装 phpcs VSCode 扩展(由 Ioannis Kappas 提供)
    2. 在 VSCode 中,文件 » 首选项 » 设置 (ctrl + ,)
    3. 搜索“phpcs”
    4. 现在在 Phpcs: Executable Path 中输入:C:\Users\{YOUR USER}\AppData\Roaming\Composer\vendor\bin\phpcs(不要忘记在尾部添加 phpcs
    5. 在您计算机的某个位置,创建一个用于存储 WordPress 编码标准的目录(例如 coding-standards)(参考:tommcfarlin
    6. 在目录内(例如coding-standards/)运行命令:composer create-project wp-coding-standards/wpcs:dev-master --no-dev
    7. 打开命令窗口并运行:C:/Users/{YOUR USER}/AppData/Roaming/Composer/vendor/bin/phpcs --config-set installed_paths H:/coding-standards/wpcsH:/coding-standards/wpcs 将是您的路径,您在第 6 步中执行了此操作)

    installed_pathsC:\Users\{YOUR USER}\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\CodeSniffer.conf 中更新(覆盖)。如果您在步骤 7 中的命令以某种方式失败,您可以手动编辑 this 文件并在此处添加 WPCS 的路径。

    1. 在项目根目录中添加phpcs.xmlphpcs.xml.dist,内容如下:
    <?xml version="1.0"?>
    <ruleset name="YOURPROJECT">
        <config name="minimum_supported_wp_version" value="4.4.0" />
        <!-- <config name="testVersion" value="0.6-"/> -->
    
        <rule ref="WordPress-Core" />
        <rule ref="WordPress-Docs" />
        <rule ref="WordPress-Extra" />
    
        <rule ref="WordPress.WP.I18n">
            <properties>
                <property name="text_domain" type="array" value="your-text-domain" />
            </properties>
        </rule>
    
        <!-- Check all PHP files in directory tree by default. -->
        <arg name="extensions" value="php"/>
        <file>.</file>
    
        <exclude-pattern>/docker/*</exclude-pattern>
        <exclude-pattern>/node_modules/*</exclude-pattern>
        <exclude-pattern>/tests/*</exclude-pattern>
        <exclude-pattern>/vendor/*</exclude-pattern>
    </ruleset>
    

    这是一个模板。不要忘记使用您的项目数据更新minimum_supported_wp_version。有关示例模板,请参阅phpcs.xml.dist.sample - WordPress Coding Standard

    1. 如果有必要,重启 VSCode,你就完成了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 2010-12-15
      相关资源
      最近更新 更多