pieweb/internal-php-coding-standards

Custom PHPCS coding standards

Maintainers

Package info

github.com/pie/internal-php-coding-standards

Type:phpcodesniffer-standard

pkg:composer/pieweb/internal-php-coding-standards

Statistics

Installs: 5

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.4 2026-04-23 10:45 UTC

This package is auto-updated.

Last update: 2026-04-23 10:45:47 UTC


README

Internal PHPCS ruleset extending the WordPress Coding Standards with Pie-specific rules.

Link to composer package: https://packagist.org/packages/pieweb/internal-php-coding-standards

Rules

Inherits all WordPress rules, plus:

Sniff Description
PieStandard.PHP.DiscouragedEmpty Discourages use of empty() in favour of explicit checks
PieStandard.PHP.AvoidNestedDirname Discourages nesting dirname() calls to traverse directories
PieStandard.PHP.AvoidLooseTruthiness Discourages bare if ( $var ) and if ( ! $var ) checks
PieStandard.WordPress.EnqueueFilemtimeVersion Requires filemtime() for asset versioning in wp_enqueue_* calls

Setup

1. Require globally

composer global require pieweb/internal-php-coding-standards

2. Set the standard in VS Code (.vscode/settings.json or user settings)

"phpsab.standard": "PieStandard"

3. Verify the standard is registered

phpcs -i

PieStandard should appear in the list.

To update to the latest version:

composer global update pieweb/internal-php-coding-standards

Adding a new sniff

1. Create the sniff class in PieStandard/Sniffs/{Category}/YourSniffNameSniff.php:

<?php
/**
 * Description of what this sniff checks.
 *
 * @package PieStandard
 */

namespace PieStandard\Sniffs\{Category};

use PHP_CodeSniffer\Sniffs\Sniff;
use PHP_CodeSniffer\Files\File;

/**
 * Full description of the rule and why it exists.
 */
class YourSniffNameSniff implements Sniff {

    /**
     * Returns the token types this sniff is interested in.
     *
     * @return int[]
     */
    public function register() {
        return array( T_STRING ); // Replace with relevant token(s).
    }

    /**
     * Processes the token.
     *
     * @param File $phpcs_file The file being scanned.
     * @param int  $stack_ptr  The position of the current token in the stack.
     *
     * @return void
     */
    public function process( File $phpcs_file, $stack_ptr ) {
        // Your logic here.
        $phpcs_file->addWarning( 'Your warning message.', $stack_ptr, 'ErrorCode' );
    }
}

Categories follow the same convention as WordPress sniffs: PHP, WordPress, WhiteSpace, NamingConventions, etc.

2. Register the sniff in PieStandard/ruleset.xml:

<rule ref="PieStandard.{Category}.YourSniffName"/>

3. Tag a new release and push:

git add .
git commit -m "Add YourSniffName sniff"
git tag x.x.x
git push && git push origin x.x.x

Then update globally to pick up the new version:

composer global update pieweb/internal-php-coding-standards