Skip to content

Commit 85e250b

Browse files
committed
Support check looks for both attribute and contract, not just one. #1
1 parent 56d30aa commit 85e250b

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/DriverManager.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,17 +169,21 @@ public function supports(string $className): bool
169169
$this->ensureConfiguration();
170170
if (!class_exists($className)) return false;
171171
$reflection = new ReflectionClass($className);
172+
$requirementCount = 0;
173+
$requirementsMet = 0;
172174
if ($this->attributeClass !== null) {
175+
$requirementCount++;
173176
if (count($reflection->getAttributes($this->attributeClass)) > 0) {
174-
return true;
177+
$requirementsMet++;
175178
}
176179
}
177180
if ($this->contractClass !== null) {
181+
$requirementCount++;
178182
if ($reflection->implementsInterface($this->contractClass)) {
179-
return true;
183+
$requirementsMet++;
180184
}
181185
}
182-
return false;
186+
return $requirementCount > 0 && $requirementCount == $requirementsMet;
183187
}
184188

185189
/**

0 commit comments

Comments
 (0)