wavevision/coding-standard

The Wavevision PHP coding standard.

3.1.2 2020-01-30 14:11 UTC

README

Wavevision s.r.o.

Coding Standard

Build Status Coverage Status PHPStan Release PHP version TypeScript version

Code style rules and presets for PHP, SCSS and TypeScript. Also contains default PhpStorm project code style.

PHP

Rules for:

Installation

Via Composer

composer require --dev wavevision/coding-standard

Setup

Add to existing ruleset

<rule ref="vendor/wavevision/coding-standard/php/WavevisionCodingStandard/ruleset.xml"/>

or use directly

vendor/bin/phpcs <pathToSources> -p --standard=vendor/wavevision/coding-standard/php/WavevisionCodingStandard/ruleset.xml

SCSS and TypeScript

Rules and presets for:

Installation

Via yarn

yarn add --dev @wavevision/coding-standard

or npm

npm install --save-dev @wavevision/coding-standard

Setup

Following config examples can be further extended and customized according to project's needs compliant with respective library docs.

babel.config.js

module.exports = {
  presets: ['@wavevision/coding-standard/ts/babel'],
};

React version: @wavevision/coding-standard/ts/babel/react.

.eslintrc.js

module.exports = {
  extends: require.resolve('@wavevision/coding-standard/ts/eslint'),
  parserOptions: {
    project: 'tsconfig.json',
    tsconfigRootDir: '.',
  },
};

React version: @wavevision/coding-standard/ts/eslint/react.

postcss.config.js

module.exports = require('@wavevision/coding-standard/scss/postcss');

prettier.config.js

module.exports = require('@wavevision/coding-standard/ts/prettier');

stylelint.config.js

module.exports = {
  extends: '@wavevision/coding-standard/scss/stylelint',
};

tsconfig.json

{
  "extends": "@wavevision/coding-standard/ts/tsconfig.json",
  "include": ["./src/**/*"]
}

Polyfills

Should your project need it, import babel polyfills consisting of core-js and regenerator-runtime stable versions.

import '@wavevision/coding-standard/ts/polyfills';

Note: This might add unnecessary code to your bundle. Make sure your setup needs all the polyfills, otherwise, import required features only.

This should most likely happen in your project's top-level entry point.

PhpStorm

  1. Set File > Settings > Editor > CodeStyle > Scheme to Project
  2. Symlink phpstorm/style.xml to .idea/codeStyles/Project.xml