Skip to content

Instantly share code, notes, and snippets.

View gsherwood's full-sized avatar
🤧
Code sniffing

Greg Sherwood gsherwood

🤧
Code sniffing
View GitHub Profile
@gsherwood
gsherwood / InlineControlStructureSniff.php
Created March 23, 2018 08:48
Generic/InlineControlStructure: fixer moves new PHPCS annotations #1932
<?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 November 21, 2016 22:02
Using PHP_CodeSniffer to tokenize a JS file
<?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 / CustomPHPCSRunner.php
Created September 8, 2016 02:21
A custom runner for PHP_CodeSniffer to process a single piece of content
<?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.
$ 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 July 11, 2015 00:05
PHPCBF if/elseif/else test
<?php
if ($foo) {
echo 'foo';
} elseif ($bar) {
echo 'bar';
} else {
echo 'else';
}
@gsherwood
gsherwood / SearchStringSniff.php
Created January 12, 2015 21:28
Example sniff to find a string with specific content
<?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)
@gsherwood
gsherwood / temp.php
Created December 18, 2014 21:46
phpcbf temp.php --standard=PSR2 --tab-width=4
<?php
namespace I18nMessages\Test\I18n;
use Cake\TestSuite\TestCase;
use I18nMessages\I18n\DbMessagesLoader;
/**
* Tests for DbMessagesLoader
*/
class DbMessagesLoaderTest extends TestCase
@gsherwood
gsherwood / ruleset.xml
Created December 5, 2014 20:06
PSR2 with tabs instead of spaces
<?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 / 1. temp.php (before fixing)
Created November 4, 2014 00:09
PHPCS/PHPCBF PSR-2 auto-formatting example
<?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 );
<?xml version="1.0"?>
<ruleset name="PSR2">
<description>The PSR-2 coding standard.</description>
<!-- PHP code MUST use the long <?php ?> tags or the short-echo <?= ?> tags; it MUST NOT use the other tag variations. -->
<rule ref="Generic.PHP.DisallowShortOpenTag.EchoFound">
<severity>0</severity>
</rule>
<!-- PHP code MUST use only UTF-8 without BOM. -->