Set of rules for PHP_CodeSniffer and PHP-CS-Fixer used by Symplify projects.
They run best with EasyCodingStandard.
composer require symplify/coding-standard --dev composer require symplify/easy-coding-standard --dev- Run with ECS:
# ecs.php use Symplify\EasyCodingStandard\Config\ECSConfig; +use Symplify\EasyCodingStandard\ValueObject\Set\SetList; return static function (ECSConfig $ecsConfig): void { + $ecsConfig->sets([SetList::SYMPLIFY]);Indexed PHP array item has to have one line per item
-$value = ['simple' => 1, 'easy' => 2]; +$value = ['simple' => 1, +'easy' => 2];Indexed PHP array opener [ and closer ] must be on own line
-$items = [1 => 'Hey']; +$items = [ +1 => 'Hey' +];Strict type declaration has to be followed by empty line
declare(strict_types=1); + namespace App;Array items, method parameters, method call arguments, new arguments should be on same/standalone line to fit line length.
🔧 configure it!
-function some($veryLong, $superLong, $oneMoreTime) -{ +function some( + $veryLong, + $superLong, + $oneMoreTime +) { } -function another( - $short, - $now -) { +function another($short, $now) { }Each chain method call must be on own line
-$someClass->firstCall()->secondCall(); +$someClass->firstCall() +->secondCall();Fixes @param, @return, @var and inline @var annotations broken formats
/** - * @param string + * @param string $name */ function getPerson($name) { }Remove "Created by PhpStorm" annotations
-/** - * Created by PhpStorm. - * User: ... - * Date: 17/10/17 - * Time: 8:50 AM - */ class SomeClass { }Remove useless PHPStorm-generated @todo comments, redundant "Class XY" or "gets service" comments etc.
-/** - * class SomeClass - */ class SomeClass { - /** - * SomeClass Constructor. - */ public function __construct() { - // TODO: Change the autogenerated stub - // TODO: Implement whatever() method. } }Add space after nowdoc and heredoc keyword, to prevent bugs on PHP 7.2 and lower, see https://laravel-news.com/flexible-heredoc-and-nowdoc-coming-to-php-7-3
$values = [ <<<RECTIFY Some content -RECTIFY, +RECTIFY +, 1000 ];Constructor param should be on a standalone line to ease git diffs on new dependency
final class PromotedProperties { - public function __construct(int $age, string $name) - { + public function __construct( + int $age, + string $name + ) { } }Indexed arrays must have 1 item per line
-$friends = [1 => 'Peter', 2 => 'Paul']; +$friends = [ + 1 => 'Peter', + 2 => 'Paul' +];Promoted property should be on standalone line
final class PromotedProperties { - public function __construct(public int $age, private string $name) - { + public function __construct( + public int $age, + private string $name + ) { } }