Search by

mediawiki / mediawiki-codesniffer

hasharmediawikilegoktmwikimedia

MediaWiki CodeSniffer Standards

Package info

github.com/wikimedia/mediawiki-tools-codesniffer

Homepage

Type:phpcodesniffer-standard

pkg:composer/mediawiki/mediawiki-codesniffer

Statistics

Installs: 3 437 064

Dependents: 358

Suggesters: 0

Stars: 33


README

Abstract

This project implements a set of rules for use with PHP CodeSniffer.

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

How to install

  1. Create a composer.json which adds this project as a dependency. The latest version number can be found in HISTORY.md or on Packagist.

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

    
    
    	
    	.
    	
    	
    	
    
    
  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.

Configuration

Some of the sniffs provided by this codesniffer standard allow you to configure details of how they work.

  • MediaWiki.Classes.FullQualifiedClassName: This sniff is disabled by default.

    
        5
        
            
            
            
        
    
    
  • 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.

    
        
            
        
    
    
  • MediaWiki.Commenting.ClassLevelLicense: This sniff does nothing by default.

    
        
            
        
    
    
  • 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...().

    
        
            
            
        
    
    
  • 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....

    
        
            
            
        
    
    
  • 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.