diff --git a/src/Core/Cache/CacheStateManager.php b/src/Core/Cache/CacheStateManager.php index fe19c23..5ac1cf7 100644 --- a/src/Core/Cache/CacheStateManager.php +++ b/src/Core/Cache/CacheStateManager.php @@ -27,8 +27,8 @@ protected function getHash(): string { $transformerHash = parent::getHash(); - $aspects = $this->aspectManager->getAspects(); - $aspectHash = md5(serialize($aspects)); + $aspectAdviceNames = $this->aspectManager->getAspectAdviceNames(); + $aspectHash = md5(serialize($aspectAdviceNames)); return $transformerHash . $aspectHash; } diff --git a/src/Core/Container/AspectManager.php b/src/Core/Container/AspectManager.php index 7021cbd..43eaf67 100644 --- a/src/Core/Container/AspectManager.php +++ b/src/Core/Container/AspectManager.php @@ -212,6 +212,22 @@ public function getAspectAdviceContainers(): array return $this->aspectAdviceContainers; } + /** + * Get the aspect advice names. + * + * @return string[] + */ + public function getAspectAdviceNames(): array + { + $aspectAdviceNames = []; + foreach ($this->aspects as $aspect) { + foreach ($this->aspectAdviceContainers[$aspect] as $adviceContainer) { + $aspectAdviceNames[] = $adviceContainer->getName(); + } + } + return $aspectAdviceNames; + } + /** * Get the advice containers by advice names. *