From 78a20e7ba949e0ad8508d7dd828dbcf36f0e928a Mon Sep 17 00:00:00 2001 From: Perreal Guillaume <guillaume.perreal@irstea.fr> Date: Fri, 19 Apr 2019 13:32:10 +0200 Subject: [PATCH] =?UTF-8?q?Tiens=20compte=20de=20la=20version=20de=20PHP?= =?UTF-8?q?=20pour=20certaines=20r=C3=A8gles.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Config.php | 83 +++++++++++++++++++++++++++++++------------------- 1 file changed, 51 insertions(+), 32 deletions(-) diff --git a/src/Config.php b/src/Config.php index 707b3ad..f911ec8 100644 --- a/src/Config.php +++ b/src/Config.php @@ -69,9 +69,46 @@ final class Config extends PhpCsFixerConfig */ public function getRules() { + $phpVersion = $this->findRequiredPHPVersion(); + $risky = $this->getRiskyAllowed(); + return array_replace( - $this->ruleSets(), - [ + $this->ruleSets($phpVersion, $risky), + $this->baseRules($phpVersion, $risky), + $this->ruleOverrides + ); + } + + /** + * @param float $phpVersion + * @param bool $risky + * + * @return array + */ + private function ruleSets($phpVersion, $risky) + { + return [ + '@PSR2' => true, + '@Symfony' => true, + '@Symfony:risky' => $risky, + '@PHP56Migration' => $phpVersion >= 5.6, + '@PHP56Migration:risky' => $risky && $phpVersion >= 5.6, + '@PHP70Migration' => $phpVersion >= 7.0, + '@PHP70Migration:risky' => $risky && $phpVersion >= 7.0, + '@PHP71Migration' => $phpVersion >= 7.1, + '@PHP71Migration:risky' => $risky && $phpVersion >= 7.1, + ]; + } + + /** + * @param float $phpVersion + * @param bool $risky + * + * @return array + */ + public function baseRules($phpVersion, $risky) + { + $rules = [ // Configuration && overrides 'binary_operator_spaces' => ['align_double_arrow' => true], 'blank_line_after_opening_tag' => false, @@ -98,21 +135,24 @@ final class Config extends PhpCsFixerConfig 'separate' => 'bottom', 'header' => $this->headerComment(), ], - ], - $this->getRiskyAllowed() ? [ - // Risky - 'is_null' => ['use_yoda_style' => false], - 'non_printable_character' => ['use_escape_sequences_in_strings' => true], - ] : [], - $this->ruleOverrides - ); + ]; + + if ($risky) { + $rules['is_null'] = ['use_yoda_style' => false]; + + if ($phpVersion >= 7.0) { + $rules['non_printable_character'] = ['use_escape_sequences_in_strings' => true]; + } + } + + return $rules; } /** * @param string $rule * @param mixed $setting */ - public function setRule(string $rule, $setting) + public function setRule($rule, $setting) { $this->ruleOverrides[$rule] = $setting; } @@ -173,27 +213,6 @@ final class Config extends PhpCsFixerConfig ); } - /** - * @return bool[] - */ - private function ruleSets() - { - $phpVersion = $this->findRequiredPHPVersion(); - $risky = $this->getRiskyAllowed(); - - return [ - '@PSR2' => true, - '@Symfony' => true, - '@Symfony:risky' => $risky, - '@PHP56Migration' => $phpVersion >= 5.6, - '@PHP56Migration:risky' => $risky && $phpVersion >= 5.6, - '@PHP70Migration' => $phpVersion >= 7.0, - '@PHP70Migration:risky' => $risky && $phpVersion >= 7.0, - '@PHP71Migration' => $phpVersion >= 7.1, - '@PHP71Migration:risky' => $risky && $phpVersion >= 7.1, - ]; - } - /** * @return float */ -- GitLab