Skip to content

Commit 21e5110

Browse files
authored
Prevent exception when dynamically extending a class to add behaviors. (#225)
Fixes wintercms/winter#1460
1 parent e5759e2 commit 21e5110

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

src/Extension/ExtendableTrait.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public function extendableConstruct()
8484
return;
8585
}
8686

87-
foreach ($uses as $use) {
87+
foreach (array_unique($uses) as $use) {
8888
$useClass = $this->extensionNormalizeClassName($use);
8989

9090
/*
@@ -489,7 +489,7 @@ public static function extendableCallStatic($name, $params = null)
489489
throw new Exception(sprintf('Class %s contains an invalid $implement value', $className));
490490
}
491491

492-
foreach ($uses as $use) {
492+
foreach (array_unique($uses) as $use) {
493493
// Class alias checks not required here as the current name of the extension class doesn't
494494
// matter because as long as $useClassName is able to be instantiated the method will resolve
495495
$useClassName = str_replace('.', '\\', trim($use));

0 commit comments

Comments
 (0)