socialengine/sniffer-rules

A Lumen 5 and Laravel 5 SquizLabs Code Sniffer 2.0 artisan command. Detect violations of a defined coding standard. It helps your code remains clean and consistent.

2.3.0 2017-09-29 21:00 UTC

This package is not auto-updated.

Last update: 2024-11-23 17:58:04 UTC


README

Build Status Latest Stable Version License

This is a Laravel 5 package that hooks up SquizLabs CodeSniffer 2 into Laravel-based apps. It can also be used manually, so read on.

Detect violations of a defined coding standard. It helps your code remain clean and consistent. Available options are: PSR2, PSR1, Zend, PEAR, Squiz, PHPCS and SocialEngine.

Setup

Require this package in composer:

$ composer require socialengine/sniffer-rules

Laravel 5

In your config/app.php add 'SocialEngine\SnifferRules\ServiceProvider' to $providers array:

'providers' => [
    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    
    'SocialEngine\SnifferRules\ServiceProvider',

],

Laravel 5: Publish the configuration file

$ php artisan vendor:publish

Manual

Install our Standard by configuring PHP_CodeSniffer to look for it.

$ php ./vendor/bin/phpcs --config-set installed_paths ./vendor/socialengine/src/Socialengine/SnifferRules/Standard/

Usage

Laravel

$ php artisan sniff

To run the sniffer in a CI environment, the -n option should be set to remove interaction:

$ php artisan sniff -n

Manual

$ php ./vendor/bin/phpcs --standard=SocialEngine path/to/code 

It's encouraged to add a Makefile to your project that makes it trivial for other developers. Use Makefile in this directory and adjust as needed to fit your project requirements.

Travis

In combination with the Makefile, Travis has issues finding the standard, we had to add a before_script to make it work. See Unum repo for example.

before_script: php ./vendor/bin/phpcs --config-set installed_paths "`pwd`/vendor/socialengine/sniffer-rules/src/SocialEngine/SnifferRules/Standard/"

SocialEngine Coding Standards

Coding standards

Addendum and Clarifications

  • namespace should be on the same line as opening php tag. e.g.: <?php namespace SocialEngine\Amazing
  • Property names should be camelCase
  • Test names should use underscores, not camelCase. e.g.: test_cats_love_catnip

License

MIT