mediawiki/mediawiki-codesniffer

MediaWiki 代码规范标准

安装数: 2,014,621

依赖项: 302

建议者: 0

安全性: 0

星标: 33

关注者: 12

分支: 11

类型:phpcodesniffer-standard


README

摘要

本项目实现了一组规则,用于与 PHP CodeSniffer 一起使用。

请参阅我们维基上的 MediaWiki 规范,了解由这些规则验证的编码规范的详细描述。:-)

如何安装

  1. 创建一个 composer.json 文件,将此项目添加为依赖项

    {
    	"require-dev": {
    		"mediawiki/mediawiki-codesniffer": "40.0.1"
    	},
    	"scripts": {
    		"test": [
    			"phpcs -p -s"
    		],
    		"fix": "phpcbf"
    	}
    }
    
  2. 创建一个 .phpcs.xml 文件,包含我们的配置

    <?xml version="1.0"?>
    <ruleset>
    	<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki"/>
    	<file>.</file>
    	<arg name="bootstrap" value="./vendor/mediawiki/mediawiki-codesniffer/utils/bootstrap-ci.php"/>
    	<arg name="extensions" value="php"/>
    	<arg name="encoding" value="UTF-8"/>
    </ruleset>
    
  3. 安装: composer update

  4. 运行: composer test

  5. 运行: composer fix 以自动修复一些错误,其他可能需要手动干预。

  6. 提交!

注意,对于大多数 MediaWiki 项目,我们还建议将 PHP 检查器添加到您的 composer.json 中 - 有关更多详细信息,请参阅 完整文档

配置

此代码规范标准提供的某些嗅探器允许您配置它们的工作细节。

  • MediaWiki.Classes.FullQualifiedClassName:此嗅探器默认禁用。

    <rule ref="MediaWiki.Classes.FullQualifiedClassName">
        <severity>5</severity>
        <properties>
            <property name="allowMainNamespace" value="false" />
            <property name="allowInheritance" value="false" />
            <property name="allowFunctions" value="false" />
        </properties>
    </rule>
    
  • MediaWiki.Usage.ExtendClassUsage:此嗅探器允许您排除全局变量,以防它们不能被 Config::getConfig() 调用所替换。已在列表中的示例包括 $wgTitle$wgUser

    <rule ref="MediaWiki.Usage.ExtendClassUsage">
        <properties>
            <property name="nonConfigGlobals[]" type="array" value="$wg...,$wg..." />
        </properties>
    </rule>
    
  • MediaWiki.Commenting.ClassLevelLicense:此嗅探器默认不执行任何操作。

    <rule ref="MediaWiki.Commenting.ClassLevelLicense">
        <properties>
            <property name="license" value="GPL-2.0-or-later" />
        </properties>
    </rule>
    
  • MediaWiki.NamingConventions.PrefixedGlobalFunctions:此嗅探器允许您定义一个忽略的全局函数列表和一个允许的前缀列表。默认情况下,唯一的允许前缀是 'wf',对应全局函数 wf...()

    <rule ref="MediaWiki.NamingConventions.PrefixedGlobalFunctions">
        <properties>
            <property name="allowedPrefixes[]" value="wf,..." />
            <property name="ignoreList[]" value="...,..." />
        </properties>
    </rule>
    
  • MediaWiki.NamingConventions.ValidGlobalName:此嗅探器允许您定义一个忽略的全局变量列表和一个允许的前缀列表。默认情况下,唯一的允许前缀是 'wg',对应全局变量 $wg...

    <rule ref="MediaWiki.NamingConventions.ValidGlobalName">
        <properties>
            <property name="allowedPrefixes[]" value="wg,..." />
            <property name="ignoreList[]" value="...,..." />
        </properties>
    </rule>
    
  • MediaWiki.Arrays.TrailingComma:此嗅探器允许您强制多行数组有尾随逗号,这使得 Git 差分更美观。它还可以强制单行数组没有尾随逗号。默认情况下,它不执行任何操作。

    <rule ref="MediaWiki.Arrays.TrailingComma">
        <properties>
            <property name="singleLine" value="false" />
            <property name="multiLine" value="true" />
        </properties>
    </rule>