diff --git a/src/Domain/Traits/HasInvariants.php b/src/Domain/Traits/HasInvariants.php index 88dba1a..ce66569 100644 --- a/src/Domain/Traits/HasInvariants.php +++ b/src/Domain/Traits/HasInvariants.php @@ -46,7 +46,7 @@ trait HasInvariants */ final public static function invariants(): array { - if (empty(static::$_invariantsCache[static::class])) { + if (array_key_exists(static::class, static::$_invariantsCache) === false) { $invariants = []; foreach (get_class_methods(static::class) as $invariant) { @@ -91,6 +91,10 @@ final public static function invariants(): array */ private function check(callable $filter = null, callable $onFail = null): void { + if ($this->skipChecking()) { + return; + } + $violations = []; $invariants = filter( @@ -132,4 +136,10 @@ private function check(callable $filter = null, callable $onFail = null): void $onFail($violations); } } + + private function skipChecking(): bool + { + $key = 'COMPLEX_HEARTH_SKIP_INVARIANTS_CHECKING'; + return (bool)($_ENV[$key] ?? getenv($key)); + } }