Skip to content

Commit ddc278e

Browse files
authored
refactor: nullable optional args (#50)
- DX: nullable args are optional in Client interface Signed-off-by: Tom Carrio <[email protected]>
1 parent dc64dc8 commit ddc278e

File tree

5 files changed

+62
-62
lines changed

5 files changed

+62
-62
lines changed

src/OpenFeatureClient.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public function getMetadata(): MetadataInterface
127127
* with parameters flag key (string, required), default value (boolean | number | string | structure, required),
128128
* evaluation context (optional), and evaluation options (optional), which returns the flag value.
129129
*/
130-
public function getBooleanValue(string $flagKey, bool $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptionsInterface $options): bool
130+
public function getBooleanValue(string $flagKey, bool $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptionsInterface $options = null): bool
131131
{
132132
/** @var bool $value */
133133
$value = $this->getBooleanDetails($flagKey, $defaultValue, $context, $options)->getValue() ?? $defaultValue;
@@ -143,7 +143,7 @@ public function getBooleanValue(string $flagKey, bool $defaultValue, ?Evaluation
143143
* default value (boolean | number | string | structure, required), evaluation context (optional), and evaluation
144144
* options (optional), which returns an evaluation details structure.
145145
*/
146-
public function getBooleanDetails(string $flagKey, bool $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptionsInterface $options): EvaluationDetailsInterface
146+
public function getBooleanDetails(string $flagKey, bool $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptionsInterface $options = null): EvaluationDetailsInterface
147147
{
148148
return $this->evaluateFlag(FlagValueType::BOOLEAN, $flagKey, $defaultValue, $context, $options);
149149
}
@@ -156,7 +156,7 @@ public function getBooleanDetails(string $flagKey, bool $defaultValue, ?Evaluati
156156
* with parameters flag key (string, required), default value (boolean | number | string | structure, required),
157157
* evaluation context (optional), and evaluation options (optional), which returns the flag value.
158158
*/
159-
public function getStringValue(string $flagKey, string $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptionsInterface $options): string
159+
public function getStringValue(string $flagKey, string $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptionsInterface $options = null): string
160160
{
161161
/** @var string $value */
162162
$value = $this->getStringDetails($flagKey, $defaultValue, $context, $options)->getValue() ?? $defaultValue;
@@ -172,7 +172,7 @@ public function getStringValue(string $flagKey, string $defaultValue, ?Evaluatio
172172
* default value (boolean | number | string | structure, required), evaluation context (optional), and evaluation
173173
* options (optional), which returns an evaluation details structure.
174174
*/
175-
public function getStringDetails(string $flagKey, string $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptionsInterface $options): EvaluationDetailsInterface
175+
public function getStringDetails(string $flagKey, string $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptionsInterface $options = null): EvaluationDetailsInterface
176176
{
177177
return $this->evaluateFlag(FlagValueType::STRING, $flagKey, $defaultValue, $context, $options);
178178
}
@@ -190,7 +190,7 @@ public function getStringDetails(string $flagKey, string $defaultValue, ?Evaluat
190190
* -----------------
191191
* The client SHOULD provide functions for floating-point numbers and integers, consistent with language idioms.
192192
*/
193-
public function getIntegerValue(string $flagKey, int $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptionsInterface $options): int
193+
public function getIntegerValue(string $flagKey, int $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptionsInterface $options = null): int
194194
{
195195
/** @var int $value */
196196
$value = $this->getIntegerDetails($flagKey, $defaultValue, $context, $options)->getValue() ?? $defaultValue;
@@ -206,7 +206,7 @@ public function getIntegerValue(string $flagKey, int $defaultValue, ?EvaluationC
206206
* default value (boolean | number | string | structure, required), evaluation context (optional), and evaluation
207207
* options (optional), which returns an evaluation details structure.
208208
*/
209-
public function getIntegerDetails(string $flagKey, int $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptionsInterface $options): EvaluationDetailsInterface
209+
public function getIntegerDetails(string $flagKey, int $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptionsInterface $options = null): EvaluationDetailsInterface
210210
{
211211
return $this->evaluateFlag(FlagValueType::INTEGER, $flagKey, $defaultValue, $context, $options);
212212
}
@@ -224,7 +224,7 @@ public function getIntegerDetails(string $flagKey, int $defaultValue, ?Evaluatio
224224
* -----------------
225225
* The client SHOULD provide functions for floating-point numbers and integers, consistent with language idioms.
226226
*/
227-
public function getFloatValue(string $flagKey, float $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptionsInterface $options): float
227+
public function getFloatValue(string $flagKey, float $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptionsInterface $options = null): float
228228
{
229229
/** @var float $value */
230230
$value = $this->getFloatDetails($flagKey, $defaultValue, $context, $options)->getValue() ?? $defaultValue;
@@ -240,7 +240,7 @@ public function getFloatValue(string $flagKey, float $defaultValue, ?EvaluationC
240240
* default value (boolean | number | string | structure, required), evaluation context (optional), and evaluation
241241
* options (optional), which returns an evaluation details structure.
242242
*/
243-
public function getFloatDetails(string $flagKey, float $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptionsInterface $options): EvaluationDetailsInterface
243+
public function getFloatDetails(string $flagKey, float $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptionsInterface $options = null): EvaluationDetailsInterface
244244
{
245245
return $this->evaluateFlag(FlagValueType::FLOAT, $flagKey, $defaultValue, $context, $options);
246246
}
@@ -255,7 +255,7 @@ public function getFloatDetails(string $flagKey, float $defaultValue, ?Evaluatio
255255
*
256256
* @inheritdoc
257257
*/
258-
public function getObjectValue(string $flagKey, $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptionsInterface $options)
258+
public function getObjectValue(string $flagKey, $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptionsInterface $options = null)
259259
{
260260
/** @var mixed[] $value */
261261
$value = $this->getObjectDetails($flagKey, $defaultValue, $context, $options)->getValue() ?? $defaultValue;
@@ -275,7 +275,7 @@ public function getObjectValue(string $flagKey, $defaultValue, ?EvaluationContex
275275
*
276276
* @inheritdoc
277277
*/
278-
public function getObjectDetails(string $flagKey, $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptionsInterface $options): EvaluationDetailsInterface
278+
public function getObjectDetails(string $flagKey, $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptionsInterface $options = null): EvaluationDetailsInterface
279279
{
280280
return $this->evaluateFlag(FlagValueType::OBJECT, $flagKey, $defaultValue, $context, $options);
281281
}

src/implementation/flags/NoOpClient.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,42 +15,42 @@ class NoOpClient implements Client
1515
{
1616
private const CLIENT_NAME = 'no-op-client';
1717

18-
public function getBooleanValue(string $flagKey, bool $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptions $options): ?bool
18+
public function getBooleanValue(string $flagKey, bool $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptions $options = null): ?bool
1919
{
2020
return $defaultValue;
2121
}
2222

23-
public function getBooleanDetails(string $flagKey, bool $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptions $options): EvaluationDetails
23+
public function getBooleanDetails(string $flagKey, bool $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptions $options = null): EvaluationDetails
2424
{
2525
return EvaluationDetailsFactory::from($flagKey, $defaultValue);
2626
}
2727

28-
public function getStringValue(string $flagKey, string $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptions $options): ?string
28+
public function getStringValue(string $flagKey, string $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptions $options = null): ?string
2929
{
3030
return $defaultValue;
3131
}
3232

33-
public function getStringDetails(string $flagKey, string $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptions $options): EvaluationDetails
33+
public function getStringDetails(string $flagKey, string $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptions $options = null): EvaluationDetails
3434
{
3535
return EvaluationDetailsFactory::from($flagKey, $defaultValue);
3636
}
3737

38-
public function getIntegerValue(string $flagKey, int $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptions $options): int
38+
public function getIntegerValue(string $flagKey, int $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptions $options = null): int
3939
{
4040
return $defaultValue;
4141
}
4242

43-
public function getIntegerDetails(string $flagKey, int $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptions $options): EvaluationDetails
43+
public function getIntegerDetails(string $flagKey, int $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptions $options = null): EvaluationDetails
4444
{
4545
return EvaluationDetailsFactory::from($flagKey, $defaultValue);
4646
}
4747

48-
public function getFloatValue(string $flagKey, float $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptions $options): float
48+
public function getFloatValue(string $flagKey, float $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptions $options = null): float
4949
{
5050
return $defaultValue;
5151
}
5252

53-
public function getFloatDetails(string $flagKey, float $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptions $options): EvaluationDetails
53+
public function getFloatDetails(string $flagKey, float $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptions $options = null): EvaluationDetails
5454
{
5555
return EvaluationDetailsFactory::from($flagKey, $defaultValue);
5656
}
@@ -60,15 +60,15 @@ public function getFloatDetails(string $flagKey, float $defaultValue, ?Evaluatio
6060
*
6161
* @return mixed[]
6262
*/
63-
public function getObjectValue(string $flagKey, $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptions $options): array
63+
public function getObjectValue(string $flagKey, $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptions $options = null): array
6464
{
6565
return $defaultValue;
6666
}
6767

6868
/**
6969
* @param bool|string|int|float|DateTime|mixed[]|null $defaultValue
7070
*/
71-
public function getObjectDetails(string $flagKey, $defaultValue, ?EvaluationContextInterface $context, ?EvaluationOptions $options): EvaluationDetails
71+
public function getObjectDetails(string $flagKey, $defaultValue, ?EvaluationContextInterface $context = null, ?EvaluationOptions $options = null): EvaluationDetails
7272
{
7373
return EvaluationDetailsFactory::from($flagKey, $defaultValue);
7474
}

src/interfaces/flags/FeatureDetails.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@
1515
*/
1616
interface FeatureDetails
1717
{
18-
public function getBooleanDetails(string $flagKey, bool $defaultValue, ?EvaluationContext $context, ?EvaluationOptions $options): EvaluationDetails;
18+
public function getBooleanDetails(string $flagKey, bool $defaultValue, ?EvaluationContext $context = null, ?EvaluationOptions $options = null): EvaluationDetails;
1919

20-
public function getStringDetails(string $flagKey, string $defaultValue, ?EvaluationContext $context, ?EvaluationOptions $options): EvaluationDetails;
20+
public function getStringDetails(string $flagKey, string $defaultValue, ?EvaluationContext $context = null, ?EvaluationOptions $options = null): EvaluationDetails;
2121

22-
public function getIntegerDetails(string $flagKey, int $defaultValue, ?EvaluationContext $context, ?EvaluationOptions $options): EvaluationDetails;
22+
public function getIntegerDetails(string $flagKey, int $defaultValue, ?EvaluationContext $context = null, ?EvaluationOptions $options = null): EvaluationDetails;
2323

24-
public function getFloatDetails(string $flagKey, float $defaultValue, ?EvaluationContext $context, ?EvaluationOptions $options): EvaluationDetails;
24+
public function getFloatDetails(string $flagKey, float $defaultValue, ?EvaluationContext $context = null, ?EvaluationOptions $options = null): EvaluationDetails;
2525

2626
/**
2727
* @param mixed[] $defaultValue
2828
*/
29-
public function getObjectDetails(string $flagKey, $defaultValue, ?EvaluationContext $context, ?EvaluationOptions $options): EvaluationDetails;
29+
public function getObjectDetails(string $flagKey, $defaultValue, ?EvaluationContext $context = null, ?EvaluationOptions $options = null): EvaluationDetails;
3030
}

src/interfaces/flags/FeatureValues.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,18 @@
1616
*/
1717
interface FeatureValues
1818
{
19-
public function getBooleanValue(string $flagKey, bool $defaultValue, ?EvaluationContext $context, ?EvaluationOptions $options): ?bool;
19+
public function getBooleanValue(string $flagKey, bool $defaultValue, ?EvaluationContext $context = null, ?EvaluationOptions $options = null): ?bool;
2020

21-
public function getStringValue(string $flagKey, string $defaultValue, ?EvaluationContext $context, ?EvaluationOptions $options): ?string;
21+
public function getStringValue(string $flagKey, string $defaultValue, ?EvaluationContext $context = null, ?EvaluationOptions $options = null): ?string;
2222

23-
public function getIntegerValue(string $flagKey, int $defaultValue, ?EvaluationContext $context, ?EvaluationOptions $options): int;
23+
public function getIntegerValue(string $flagKey, int $defaultValue, ?EvaluationContext $context = null, ?EvaluationOptions $options = null): int;
2424

25-
public function getFloatValue(string $flagKey, float $defaultValue, ?EvaluationContext $context, ?EvaluationOptions $options): float;
25+
public function getFloatValue(string $flagKey, float $defaultValue, ?EvaluationContext $context = null, ?EvaluationOptions $options = null): float;
2626

2727
/**
2828
* @param mixed[] $defaultValue
2929
*
3030
* @return mixed[]
3131
*/
32-
public function getObjectValue(string $flagKey, $defaultValue, ?EvaluationContext $context, ?EvaluationOptions $options);
32+
public function getObjectValue(string $flagKey, $defaultValue, ?EvaluationContext $context = null, ?EvaluationOptions $options = null);
3333
}

0 commit comments

Comments
 (0)