From bafa242ce729e78e6faf0c600e452bbc81e0ee68 Mon Sep 17 00:00:00 2001 From: Luca Di Fazio Date: Tue, 18 Jun 2024 15:37:50 +0200 Subject: [PATCH 1/2] Fixes #81 --- src/Core/Cache/CacheStateManager.php | 4 ++-- src/Core/Container/AspectManager.php | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Core/Cache/CacheStateManager.php b/src/Core/Cache/CacheStateManager.php index fe19c23..1b667b0 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)); + $advices = $this->aspectManager->getAdvices(); + $aspectHash = md5(serialize($advices)); return $transformerHash . $aspectHash; } diff --git a/src/Core/Container/AspectManager.php b/src/Core/Container/AspectManager.php index 7021cbd..72c51eb 100644 --- a/src/Core/Container/AspectManager.php +++ b/src/Core/Container/AspectManager.php @@ -212,6 +212,16 @@ public function getAspectAdviceContainers(): array return $this->aspectAdviceContainers; } + /** + * Get the advice names. + * + * @return string[] + */ + public function getAdvices(): array + { + return array_keys($this->adviceContainers); + } + /** * Get the advice containers by advice names. * From dac7e713c4b982b44728a7e913b162889e48ba9a Mon Sep 17 00:00:00 2001 From: Luca Di Fazio Date: Tue, 18 Jun 2024 16:31:36 +0200 Subject: [PATCH 2/2] Make tests pass --- src/Core/Cache/CacheStateManager.php | 4 ++-- src/Core/Container/AspectManager.php | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Core/Cache/CacheStateManager.php b/src/Core/Cache/CacheStateManager.php index 1b667b0..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(); - $advices = $this->aspectManager->getAdvices(); - $aspectHash = md5(serialize($advices)); + $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 72c51eb..43eaf67 100644 --- a/src/Core/Container/AspectManager.php +++ b/src/Core/Container/AspectManager.php @@ -213,13 +213,19 @@ public function getAspectAdviceContainers(): array } /** - * Get the advice names. + * Get the aspect advice names. * * @return string[] */ - public function getAdvices(): array + public function getAspectAdviceNames(): array { - return array_keys($this->adviceContainers); + $aspectAdviceNames = []; + foreach ($this->aspects as $aspect) { + foreach ($this->aspectAdviceContainers[$aspect] as $adviceContainer) { + $aspectAdviceNames[] = $adviceContainer->getName(); + } + } + return $aspectAdviceNames; } /**