Skip to content

Instantly share code, notes, and snippets.

Avatar
🤧
Code sniffing

Greg Sherwood gsherwood

🤧
Code sniffing
View GitHub Profile
@gsherwood
gsherwood / ruleset.xml
Created Dec 5, 2014
PSR2 with tabs instead of spaces
View ruleset.xml
<?xml version="1.0"?>
<ruleset name="MyStandard">
<description>PSR2 with tabs instead of spaces.</description>
<arg name="tab-width" value="4"/>
<rule ref="PSR2">
<exclude name="Generic.WhiteSpace.DisallowTabIndent"/>
</rule>
<rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
<rule ref="Generic.WhiteSpace.ScopeIndent">
<properties>
@gsherwood
gsherwood / CustomPHPCSRunner.php
Created Sep 8, 2016
A custom runner for PHP_CodeSniffer to process a single piece of content
View CustomPHPCSRunner.php
<?php
namespace MyCustomProject;
use PHP_CodeSniffer\Runner;
use PHP_CodeSniffer\Config;
use PHP_CodeSniffer\Reporter;
use PHP_CodeSniffer\Files\DummyFile;
use PHP_CodeSniffer\Util\Timing;
// Include the PHPCS autoloader however you need.
@gsherwood
gsherwood / 1. temp.php (before fixing)
Created Nov 4, 2014
PHPCS/PHPCBF PSR-2 auto-formatting example
View 1. temp.php (before fixing)
<?php
namespace Vendor\Package;
use FooInterface; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass;
class Foo extends Bar implements FooInterface {
public function sampleFunction($a,$b=null) {
if ($a === $b) { bar();
} else if ($a>$b) {
$foo->bar( $arg1 ); }
else {
BazClass::bar($arg2,$arg3 );
@gsherwood
gsherwood / InlineControlStructureSniff.php
Created Mar 23, 2018
Generic/InlineControlStructure: fixer moves new PHPCS annotations #1932
View InlineControlStructureSniff.php
<?php
/**
* Verifies that inline control statements are not present.
*
* @author Greg Sherwood <gsherwood@squiz.net>
* @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)
* @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
*/
namespace PHP_CodeSniffer\Standards\Generic\Sniffs\ControlStructures;
@gsherwood
gsherwood / JSTokenizer.php
Created Nov 21, 2016
Using PHP_CodeSniffer to tokenize a JS file
View JSTokenizer.php
<?php
namespace MyCustomProject;
use PHP_CodeSniffer\Runner;
use PHP_CodeSniffer\Config;
use PHP_CodeSniffer\Files\DummyFile;
// Include the PHPCS autoloader, however you need to.
require_once __DIR__.'/autoload.php';
@gsherwood
gsherwood / gist:8275236
Last active Feb 17, 2016
Possible fix for bug #20151 : Problem handling "if(): ... else: ... endif;" syntax
View gist:8275236
$ git diff
diff --git a/CodeSniffer/File.php b/CodeSniffer/File.php
index f45e307..e629fed 100644
--- a/CodeSniffer/File.php
+++ b/CodeSniffer/File.php
@@ -1446,7 +1446,7 @@ class PHP_CodeSniffer_File
if (PHP_CODESNIFFER_VERBOSITY > 1) {
$type = $tokens[$i]['type'];
$content = str_replace($eolChar, '\n', $tokens[$i]['content']);
- echo "\tStart scope map at $i: $type => $content".PHP_EOL;
@gsherwood
gsherwood / gist:6773172
Last active Dec 24, 2015
PHP_CodeSniffer (phpcs-fixer branch) run over ZF2. Shows all existing errors (warnings are muted) and which ones can be fixed automatically using phpcbf (docs: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Fixing-Errors-Automatically)
View gist:6773172
$ php scripts/phpcs ../zf2/library/Zend/ --standard=PSR2 -p --report=source -ns
PHP CODE SNIFFER VIOLATION SOURCE SUMMARY
--------------------------------------------------------------------------------
SOURCE COUNT
--------------------------------------------------------------------------------
[x] PSR2.Methods.FunctionCallSignature.Indent 328
[ ] PSR2.Methods.FunctionCallSignature.MultipleArguments 276
[x] PSR2.Methods.FunctionCallSignature.CloseBracketLine 248
[x] Squiz.WhiteSpace.ScopeClosingBrace.ContentBefore 230
View output
$ cat temp.php
<?php
class Client extends GuzzleClient implements ClientInterface {
/**
* {@inheritdoc}
*/
public function authenticatedRequest($method = 'GET', $url = null, UserInterface $user, $options = []) {
$duration = isset($options['timeout']) ? $options['timeout'] : NULL;
$options['query']['token'] = $user->acquireToken($duration);
@gsherwood
gsherwood / after.php
Created Jul 11, 2015
PHPCBF if/elseif/else test
View after.php
<?php
if ($foo) {
echo 'foo';
} elseif ($bar) {
echo 'bar';
} else {
echo 'else';
}
@gsherwood
gsherwood / SearchStringSniff.php
Created Jan 12, 2015
Example sniff to find a string with specific content
View SearchStringSniff.php
<?php
/**
* Generic_Sniffs_Strings_SearchStringSniff.
*
* PHP version 5
*
* @category PHP
* @package PHP_CodeSniffer
* @author Greg Sherwood <gsherwood@squiz.net>
* @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)