2017 © Pedro Peláez
 

library mediawiki-codesniffer

MediaWiki CodeSniffer Standards

image

mediawiki/mediawiki-codesniffer

MediaWiki CodeSniffer Standards

  • Friday, July 27, 2018
  • by mediawiki
  • Repository
  • 12 Watchers
  • 21 Stars
  • 320,377 Installations
  • PHP
  • 115 Dependents
  • 0 Suggesters
  • 8 Forks
  • 0 Open issues
  • 32 Versions
  • 6 % Grown

The README.md

MediaWiki coding conventions

Abstract

This project implements a set of rules for use with [PHP CodeSniffer]0., (*1)

See MediaWiki conventions on our wiki for a detailed description of the coding conventions that are validated by these rules. :-), (*2)

How to install

  1. Create a composer.json which adds this project as a dependency:, (*3)

    {
        "require-dev": {
            "mediawiki/mediawiki-codesniffer": "40.0.1"
        },
        "scripts": {
            "test": [
                "phpcs -p -s"
            ],
            "fix": "phpcbf"
        }
    }
    
  2. Create a .phpcs.xml with our configuration:, (*4)

    <?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. Install: composer update
  4. Run: composer test
  5. Run: composer fix to auto-fix some of the errors, others might need manual intervention.
  6. Commit!

Note that for most MediaWiki projects, we'd also recommend adding a PHP linter to your composer.json – see the full documentation for more details., (*5)

Configuration

Some of the sniffs provided by this codesniffer standard allow you to configure details of how they work., (*6)

  • MediaWiki.Classes.FullQualifiedClassName: This sniff is disabled by default., (*7)

    <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: This sniff lets you exclude globals from being reported by the sniff, in case they cannot be replaced with a Config::getConfig() call. Examples that are already in the list include $wgTitle and $wgUser., (*8)

    <rule ref="MediaWiki.Usage.ExtendClassUsage">
        <properties>
            <property name="nonConfigGlobals[]" type="array" value="$wg...,$wg..." />
        </properties>
    </rule>
    
  • MediaWiki.Commenting.ClassLevelLicense: This sniff does nothing by default., (*9)

    <rule ref="MediaWiki.Commenting.ClassLevelLicense">
        <properties>
            <property name="license" value="GPL-2.0-or-later" />
        </properties>
    </rule>
    
  • MediaWiki.NamingConventions.PrefixedGlobalFunctions: This sniff lets you define a list of ignored global functions and a list of allowed prefixes. By default the only allowed prefix is 'wf', corresponding to the global function wf...()., (*10)

    <rule ref="MediaWiki.NamingConventions.PrefixedGlobalFunctions">
        <properties>
            <property name="allowedPrefixes[]" value="wf,..." />
            <property name="ignoreList[]" value="...,..." />
        </properties>
    </rule>
    
  • MediaWiki.NamingConventions.ValidGlobalName: This sniff lets you define a list of ignored globals and a list of allowed prefixes. By default the only allowed prefix is 'wg', for global variables $wg...., (*11)

    <rule ref="MediaWiki.NamingConventions.ValidGlobalName">
        <properties>
            <property name="allowedPrefixes[]" value="wg,..." />
            <property name="ignoreList[]" value="...,..." />
        </properties>
    </rule>
    
  • MediaWiki.Arrays.TrailingComma: This sniff lets you enforce that multi-line arrays have trailing commas, which makes Git diffs nicer. It can also enforce that single-line arrays have no trailing comma. By default, it does nothing., (*12)

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

The Versions

29/12 2017
21/10 2017
21/10 2017
24/09 2017
30/08 2017
13/08 2017
11/08 2017
23/07 2017
05/07 2017

0.8.x-dev

0.8.9999999.9999999-dev https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

05/07 2017

v0.8.1

0.8.1.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

01/07 2017

v0.10.0

0.10.0.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

20/06 2017

v0.9.0

0.9.0.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

04/05 2017

v0.8.0

0.8.0.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

22/09 2016

v0.8.0-alpha.1

0.8.0.0-alpha1 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

28/05 2016

v0.7.2

0.7.2.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

06/05 2016

v0.7.1

0.7.1.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

06/05 2016

v0.7.0

0.7.0.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

17/02 2016

v0.6.0

0.6.0.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

29/12 2015

v0.5.1

0.5.1.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

23/10 2015

v0.5.0

0.5.0.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

26/09 2015

v0.4.0

0.4.0.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

19/06 2015

v0.3.0

0.3.0.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

02/06 2015

v0.2.0

0.2.0.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki

05/01 2015

0.1.0

0.1.0.0 https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP

MediaWiki CodeSniffer Standards

  Sources   Download

GPL-2.0+

The Requires

 

The Development Requires

codesniffer mediawiki