Skip to content

Commit 3349a3b

Browse files
Check that FeatureRequester class in options is valid
1 parent 656bc91 commit 3349a3b

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/LaunchDarkly/LDClient.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ public function __construct($apiKey, $options = array()) {
6464
} else {
6565
$featureRequesterClass = '\\LaunchDarkly\\GuzzleFeatureRequester';
6666
}
67+
68+
if (!is_a($featureRequesterClass, FeatureRequester::class, true)) {
69+
throw new \InvalidArgumentException;
70+
}
6771
$this->_featureRequester = new $featureRequesterClass($this->_baseUri, $apiKey, $options);
6872
}
6973

tests/LDClientTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22
namespace LaunchDarkly\Tests;
33

4+
use InvalidArgumentException;
45
use LaunchDarkly\FeatureRequester;
56
use LaunchDarkly\LDClient;
67
use LaunchDarkly\LDUserBuilder;
@@ -66,6 +67,11 @@ public function testToggleEventsOff() {
6667
$queue = getPrivateField($proc, '_queue');
6768
$this->assertEquals(0, sizeof($queue));
6869
}
70+
71+
public function testOnlyValidFeatureRequester() {
72+
$this->expectException(InvalidArgumentException::class);
73+
new LDClient("BOGUS_API_KEY", ['feature_requester_class' => 'stdClass']);
74+
}
6975
}
7076

7177

0 commit comments

Comments
 (0)