2017-25 © Pedro Peláez
 

library php-code-style

Set of PHP-CS-Fixer rules used in the development of Ely.by PHP projects

image

ely/php-code-style

Set of PHP-CS-Fixer rules used in the development of Ely.by PHP projects

  • Wednesday, April 18, 2018
  • by ErickSkrauch
  • Repository
  • 2 Watchers
  • 0 Stars
  • 87 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 4 Open issues
  • 2 Versions
  • 43 % Grown

The README.md

Ely.by PHP-CS-Fixer rules

Set of PHP-CS-Fixer rules used in development of Ely.by PHP projects. It's suited for PHP 7.4 and above., (*1)

Latest Version on Packagist Total Downloads ![Software License][ico-license] ![Build Status][ico-build-status], (*2)

Installation

First of all install Ely.by PHP-CS-Fixer rules via composer with PHP-CS-Fixer:, (*3)

composer require --dev friendsofphp/php-cs-fixer ely/php-code-style

Then create a file .php-cs-fixer.php with the following contents:, (*4)

<?php
$finder = \PhpCsFixer\Finder::create()
    ->in(__DIR__);

return \Ely\CS\Config::create()
    ->setFinder($finder);

And that's it. You can now find code style violations with following command:, (*5)

vendor/bin/php-cs-fixer --diff --dry-run -v fix 

And then completely fix them all with:, (*6)

vendor/bin/php-cs-fixer fix

Configuration

You can pass a custom set of rules to the \Ely\CS\Config::create() call. For example, it can be used to validate a project with PHP 7.4 compatibility:, (*7)

<?php
return \Ely\CS\Config::create([
    'trailing_comma_in_multiline' => [
        'elements' => ['arrays', 'arguments'],
    ],
])->setFinder($finder);

Code style

Our code style is based primarily on PSR-2, while borrowing some ideas from PSR-12 with some changes., (*8)

Example

This example encompasses some of the rules below as a quick overview:, (*9)

<?php
declare(strict_types=1);

namespace Vendor\Package;

use Vendor\Package\SomeNamespace\ClassA;

class Foo extends Bar implements FooInterface {
    use SomeTrait;

    private const SAMPLE_1 = 123;
    private const SAMPLE_2 = 321;

    public $field1;

    public Typed $field2;

    public function sampleFunction(
        int $a,
        private readonly int $b = null,
    ): array {
        if ($a === $this->b) {
            $result = bar();
        } else {
            $result = BazClass::bar($this->field1, $this->field2);
        }

        return $result;
    }

    public function setToNull(): self {
        $this->field1 = null;
        return $this;
    }

}

Key differences:, (*10)

  • Opening braces for classes MUST be on the same line., (*11)

  • Opening braces for methods MUST be on the next line., (*12)

Additional rules:, (*13)

  • There MUST be one empty line before return statement, except when there is only one statement before it., (*14)

    <?php
    
    function a() {
      $a = '123';
      return $a . ' is a number';
    }
    
    function b() {
      $a = '123';
      $b = 'is';
    
      return $a . ' ' . $b . ' a number';
    }
    
  • There MUST be one blank line around class body, but there MUST be no blank lines around anonymous class body., (*15)

    <?php
    class Test {
    
      public function method() {
          $obj = new class extends Foo {
              public function overriddenMethod() {
                  // code body
              }
          };
      }
    
    }
    
  • Visibility MUST be declared for all methods, properties and constants., (*16)

  • There MUST be one blank line after an each of if, switch, for, foreach, while and do-while bodies., (*17)

    <?php
    if (true) {
      // some actions here
    }
    
    echo 'the next statement is here';
    
  • There MUST be no alignment around multiline function parameters., (*18)

    <?php
    function foo(
      string $input,
      int $key = 0,
    ): void {}
    

The Versions

18/04 2018

dev-master

9999999-dev https://github.com/elyby/php-code-style

Set of PHP-CS-Fixer rules used in the development of Ely.by PHP projects

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

by Avatar ErickSkrauch
by Ely.by team

php-cs-fixer code style

17/04 2018

0.1.0

0.1.0.0 https://github.com/elyby/php-code-style

Set of PHP-CS-Fixer rules used in the development of Ely.by PHP projects

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

by Avatar ErickSkrauch
by Ely.by team

php-cs-fixer code style