Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork24
Coding Standard rules for PHP projects with focus on Clean Architecture
License
symplify/coding-standard
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Coding standard rules for clean, consistent, and readable PHP code. No configuration needed—just install and let it handle the rest.
They run best withECS.
composer require symplify/coding-standard --devcomposer require phpecs/phpecs --dev
- Register in ECS config:
# ecs.phpuseSymplify\EasyCodingStandard\Config\ECSConfig;useSymplify\EasyCodingStandard\ValueObject\Set\SetList;return ECSConfig::configure() ->withSets([SetList::SYMPLIFY]);
- And run:
# dry-run without changesvendor/bin/ecs# apply changesvendor/bin/ecs --fix
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 docblock descriptions which duplicate their property name
/**- * @var string $name+ * @var string */ private $name;
Remove docblock descriptions which duplicate their method name
/**- * Get name * * @return string */ function getName() { }
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, seehttps://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+ ) { } }
About
Coding Standard rules for PHP projects with focus on Clean Architecture
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Contributors14
Uh oh!
There was an error while loading.Please reload this page.