Skip to content

SocialEngine/sniffer-rules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

phpcs 2.0+ Laravel 5, Lumen 5 Command

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