diff --git a/src/Config.php b/src/Config.php
index 707b3ad8212f0415b59bc0da64ce7ac2d4a05c90..f911ec8f02852af2ac7b5b1b9320664413937c88 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
      */