diff --git a/src/Config.php b/src/Config.php index e445a9c5398ab693a1cdb31f0a019458174c751c..dbbb8d3783d3e1b2df058a08666812d0d1198760 100644 --- a/src/Config.php +++ b/src/Config.php @@ -41,6 +41,9 @@ final class Config extends PhpCsFixerConfig */ private $docHeaderfile = '.docheader'; + /** @var array<string, mixed> */ + private $ruleOverrides = []; + /** * Set cacheFile. * @@ -66,7 +69,7 @@ final class Config extends PhpCsFixerConfig */ public function getRules() { - return array_merge( + return array_replace( $this->ruleSets(), [ // Configuration && overrides @@ -100,10 +103,28 @@ final class Config extends PhpCsFixerConfig // Risky 'is_null' => ['use_yoda_style' => false], 'non_printable_character' => ['use_escape_sequences_in_strings' => true], - ] : [] + ] : [], + $this->ruleOverrides ); } + /** + * @param string $rule + * @param mixed $setting + */ + public function setRule(string $rule, $setting) + { + $this->ruleOverrides[$rule] = $setting; + } + + /** + * {@inheritDoc} + */ + public function setRules(array $rules) + { + $this->ruleOverrides = array_replace($this->ruleOverrides, $rules); + } + /** * @return string */