diff --git a/src/Models/Concerns/Virtue.php b/src/Models/Concerns/Virtue.php index a4f47dc..549d825 100644 --- a/src/Models/Concerns/Virtue.php +++ b/src/Models/Concerns/Virtue.php @@ -18,7 +18,8 @@ trait Virtue { use HasRelations; - private ?Collection $classAttributes = null; + /** @var array|null */ + private static ?array $classAttributes = []; public function initializeVirtue(): void { @@ -164,11 +165,12 @@ private function resolveMultipleAttributes(string $attributeClass): Collection private function classAttributes(): Collection { - if (is_null($this->classAttributes)) { + $class = static::class; + if (! array_key_exists($class, self::$classAttributes) || is_null(self::$classAttributes[$class])) { $reflectionClass = new ReflectionClass(static::class); - $this->classAttributes = Collection::make($reflectionClass->getAttributes()); + self::$classAttributes[$class] = Collection::make($reflectionClass->getAttributes()); } - return $this->classAttributes; + return self::$classAttributes[$class]; } }