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