Skip to content

Commit 76daf79

Browse files
committed
Remove MemberContainer::value method
1 parent 006a18e commit 76daf79

13 files changed

+42
-74
lines changed

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@ All Notable changes to `bakame/http-strucured-fields` will be documented in this
1616

1717
### Fixed
1818

19-
- **[BC Break]** `Parameters::values` and `Parameters::value` decode `ByteSequence` and `Token` classes.
19+
- **[BC Break]** `Parameters::values` decode `ByteSequence` and `Token` classes.
2020
- **[BC Break]** `Parameters::values` no longer throw on invalid state; value is skipped from returned array.
21-
- **[BC Break]** `Parameters::value` no longer throw on invalid state; `null` value is returned instead.
2221

2322
### Deprecated
2423

@@ -34,6 +33,7 @@ All Notable changes to `bakame/http-strucured-fields` will be documented in this
3433
- **[BC Break]** `ByteSequence::toHttpValue` is removed; use the `Item` class to serialize a `ByteSequence`.
3534
- **[BC Break]** `::sanitize` method is removed use `Parameters::clear` method instead if needed.
3635
- **[BC Break]** `isEmpty` method is removed use `hasMembers` method instead.
36+
- **[BC Break]** `Parameters::value` use `Item::value` method instead.
3737

3838
## [0.5.0] - 2022-05-13
3939

docs/item.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ $item = StructuredFields\Item::from("hello world", ["a" => true]);
6969
$item->value(); // returns "hello world"
7070
$item->isString(); // returns true
7171
$item->isToken(); // returns false
72-
$item->parameters->value("a"); //returns true
72+
$item->parameters["a"]->value(); //returns true
7373
```
7474

7575
Instantiation via type recognition is done using the `Item::from` named constructor.
@@ -98,8 +98,8 @@ $item = StructuredFields\Item::fromPair([
9898
$item->value(); // returns "hello world"
9999
$item->isString(); // returns true
100100
$item->parameters["a"]->isByteSequence(); // returns true
101-
$item->parameters->value("a"); // returns the decoded value 'Hello World'
102-
echo $item->toHttpValue(); // returns "hello world";a=:SGVsbG8gV29ybGQ=:
101+
$item->parameters["a"]->value(); // returns the decoded value 'Hello World'
102+
echo $item->toHttpValue(); // returns "hello world";a=:SGVsbG8gV29ybGQ=:
103103
```
104104

105105
`Item::fromPair` is an alternative to the `Item::from` named constructor, it expects

docs/ordered-maps.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,19 +64,18 @@ In addition to `StructuredField` specific interfaces, both classes implements:
6464
use Bakame\Http\StructuredFields;
6565

6666
$parameters = StructuredFields\Parameters::fromAssociative(['b' => true, 'foo' => 'bar']);
67-
$parameters->keys(); // returns ['b', 'foo']
68-
$parameters->values(); // returns [true, 'bar']
69-
$parameters->value('b'); // returns true
70-
$parameters->get('b'); // returns Item::from(true)
71-
$parameters['b']; // returns Item::from(true)
67+
$parameters->keys(); // returns ['b', 'foo']
68+
$parameters->values(); // returns [true, 'bar']
69+
$parameters->get('b'); // returns Item::from(true)
70+
$parameters['b']; // returns Item::from(true)
71+
$parameters['b']->value(); // returns true
7272
iterator_to_array($parameters->toPairs(), true); // returns [['b', Item::from(true)], ['foo', Item::from('bar')]]
7373
iterator_to_array($parameters, true); // returns ['b' => Item::from(true), 'foo' => Item::from('bar')]
7474
$parameters->mergeAssociative(
7575
StructuredFields\Parameters::fromPairs([['b', true], ['foo', 'foo']]),
7676
['b' => 'false']
7777
);
7878
$parameters->toHttpValue(); // returns ;b="false";foo="foo"
79-
$parameters->value('unknown'); // returns null
8079
```
8180

8281
**Both classes support negative indexes.**

src/Dictionary.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ public function values(): array
162162
*
163163
* @return array<int, float|int|bool|string>|float|int|bool|string|null
164164
*/
165-
public function value(string|int $offset): array|float|int|bool|string|null
165+
private function value(string|int $offset): array|float|int|bool|string|null
166166
{
167167
try {
168168
$member = $this->get($offset);

src/DictionaryTest.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,8 @@ public function it_can_access_the_item_value(): void
280280
'token' => 'token',
281281
], $structuredField->values());
282282

283-
self::assertFalse($structuredField->value('false'));
284-
self::assertNull($structuredField->value('unknown'));
285-
self::assertNull($structuredField->value(42));
283+
self::assertInstanceOf(Item::class, $structuredField->get('false'));
284+
self::assertFalse($structuredField->get('false')->value());
286285
}
287286

288287
/** @test */
@@ -298,10 +297,8 @@ public function it_will_strip_invalid_state_object_via_values_methods(): void
298297

299298
$structuredField->get('a')->parameters['baz']->parameters->set('error', 'error');
300299

301-
self::assertNull($structuredField->value('a'));
302300
self::assertArrayNotHasKey('a', $structuredField->values());
303301
self::assertEquals(['b' => false, 'c' => [0 => 'foobar']], $structuredField->values());
304-
self::assertSame([0 => 'foobar'], $structuredField->value('c'));
305302
self::assertSame([0 => 'foobar'], $structuredField->values()['c']);
306303
}
307304
}

src/InnerList.php

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -123,27 +123,15 @@ public function values(): array
123123
{
124124
$result = [];
125125
foreach ($this->members as $offset => $item) {
126-
$value = $this->value($offset);
127-
if (null !== $value) {
128-
$result[$offset] = $value;
126+
try {
127+
$result[$offset] = $this->get($offset)->value();
128+
} catch (Throwable) {
129129
}
130130
}
131131

132132
return $result;
133133
}
134134

135-
/**
136-
* Returns the Item value of a specific key if it exists and is valid otherwise returns null.
137-
*/
138-
public function value(string|int $offset): float|int|bool|string|null
139-
{
140-
try {
141-
return $this->get($offset)->value();
142-
} catch (Throwable) {
143-
return null;
144-
}
145-
}
146-
147135
public function get(string|int $offset): Item
148136
{
149137
if (!is_int($offset)) {

src/InnerListTest.php

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -108,15 +108,15 @@ public function it_can_access_its_parameter_values(): void
108108
{
109109
$instance = InnerList::fromList([false], ['foo' => 'bar']);
110110

111-
self::assertSame('bar', $instance->parameters->value('foo'));
111+
self::assertSame('bar', $instance->parameters['foo']->value());
112112
}
113113

114114
/** @test */
115115
public function it_fails_to_access_unknown_parameter_values(): void
116116
{
117-
$instance = InnerList::fromList([false], ['foo' => 'bar']);
117+
$this->expectException(StructuredFieldError::class);
118118

119-
self::assertNull($instance->parameters->value('bar'));
119+
InnerList::fromList([false], ['foo' => 'bar'])->parameters['bar']->value();
120120
}
121121

122122
/** @test */
@@ -126,11 +126,11 @@ public function it_successfully_parse_a_http_field(): void
126126

127127
self::assertCount(3, $instance);
128128
self::assertCount(1, $instance->parameters);
129-
self::assertSame('bar(', $instance->parameters->value('foo'));
129+
self::assertSame('bar(', $instance->parameters['foo']->value());
130130
self::assertSame('hello)world', $instance->get(0)->value());
131131
self::assertSame(42, $instance->get(1)->value());
132132
self::assertSame(42.0, $instance->get(2)->value());
133-
self::assertSame('doe', $instance->get(2)->parameters->value('john'));
133+
self::assertSame('doe', $instance->get(2)->parameters['john']->value());
134134
}
135135

136136
/** @test */
@@ -210,10 +210,8 @@ public function it_can_access_the_item_value(): void
210210

211211
self::assertSame(['foobar', 0, false, 'token'], $structuredField->values());
212212

213-
self::assertFalse($structuredField->value(2));
214-
self::assertNull($structuredField->value(42));
215-
self::assertNull($structuredField->value('2'));
216-
self::assertSame('token', $structuredField->value(-1));
213+
self::assertFalse($structuredField[2]->value());
214+
self::assertSame('token', $structuredField[-1]->value());
217215
}
218216

219217
/** @test */
@@ -224,7 +222,6 @@ public function it_will_strip_invalid_state_object_via_values_methods(): void
224222
$structuredField = InnerList::from(false, $bar);
225223
$structuredField[1]->parameters['baz']->parameters->set('error', 'error');
226224

227-
self::assertNull($structuredField->value(1));
228225
self::assertEquals([false], $structuredField->values());
229226
}
230227
}

src/ItemTest.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,15 +184,16 @@ public function it_can_access_its_parameter_values(): void
184184
{
185185
$instance = Item::fromHttpValue('1; a; b=?0');
186186

187-
self::assertTrue($instance->parameters->value('a'));
187+
self::assertTrue($instance->parameters['a']->value());
188188
}
189189

190190
/** @test */
191191
public function it_fails_to_access_unknown_parameter_values(): void
192192
{
193-
$instance = Item::fromHttpValue('1; a; b=?0');
193+
$this->expectException(StructuredFieldError::class);
194194

195-
self::assertNull($instance->parameters->value('bar'));
195+
$instance = Item::fromHttpValue('1; a; b=?0');
196+
$instance->parameters['bar']->value();
196197
}
197198

198199
/** @test */
@@ -206,7 +207,7 @@ public function it_can_exchange_parameters(): void
206207
$instance->parameters->mergeAssociative(['foo' => 'bar']);
207208

208209
self::assertCount(1, $instance->parameters);
209-
self::assertSame('bar', $instance->parameters->value('foo'));
210+
self::assertSame('bar', $instance->parameters['foo']->value());
210211
}
211212

212213
/** @test */

src/MemberContainer.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,4 @@ public function offsetUnset(mixed $offset): void;
6666
* @return array<TKey, array<array-key, string|int|float|bool>|string|int|float|bool>
6767
*/
6868
public function values(): array;
69-
70-
/**
71-
* @return array<array-key, string|int|float|bool>|string|int|float|bool|null
72-
*/
73-
public function value(string|int $offset): array|float|int|bool|string|null;
7469
}

src/OrderedList.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ public function values(): array
155155
*
156156
* @return array<int, float|int|bool|string>|float|int|bool|string|null
157157
*/
158-
public function value(string|int $offset): array|float|int|bool|string|null
158+
private function value(string|int $offset): array|float|int|bool|string|null
159159
{
160160
try {
161161
$member = $this->get($offset);

0 commit comments

Comments
 (0)