File tree Expand file tree Collapse file tree 12 files changed +41
-54
lines changed
Expand file tree Collapse file tree 12 files changed +41
-54
lines changed Original file line number Diff line number Diff line change 4646 <code ><![CDATA[ $encoder->encode($value)]]> </code >
4747 </MixedReturnStatement >
4848 </file >
49- <file src =" src/Builder/Encoder/AbstractExpressionEncoder.php" >
50- <MixedAssignment >
51- <code ><![CDATA[ $val]]> </code >
52- <code ><![CDATA[ $val]]> </code >
53- <code ><![CDATA[ $value[$key]]]> </code >
54- </MixedAssignment >
55- </file >
5649 <file src =" src/Builder/Encoder/CombinedFieldQueryEncoder.php" >
5750 <MixedAssignment >
5851 <code ><![CDATA[ $filter]]> </code >
10497 <code ><![CDATA[ $value]]> </code >
10598 </MixedAssignment >
10699 </file >
100+ <file src =" src/Builder/Encoder/RecursiveEncode.php" >
101+ <MixedAssignment >
102+ <code ><![CDATA[ $val]]> </code >
103+ <code ><![CDATA[ $val]]> </code >
104+ <code ><![CDATA[ $value[$key]]]> </code >
105+ </MixedAssignment >
106+ </file >
107107 <file src =" src/Builder/Query.php" >
108108 <ArgumentTypeCoercion >
109109 <code ><![CDATA[ $query]]> </code >
Original file line number Diff line number Diff line change 66
77use MongoDB \Builder \Encoder \CombinedFieldQueryEncoder ;
88use MongoDB \Builder \Encoder \DictionaryEncoder ;
9- use MongoDB \Builder \Encoder \ExpressionEncoder ;
109use MongoDB \Builder \Encoder \FieldPathEncoder ;
1110use MongoDB \Builder \Encoder \OperatorEncoder ;
1211use MongoDB \Builder \Encoder \OutputWindowEncoder ;
3029
3130use function array_key_exists ;
3231use function is_object ;
32+ use function is_string ;
3333
3434/** @template-implements Encoder<stdClass|array|string|int, Pipeline|StageInterface|ExpressionInterface|QueryInterface> */
3535final class BuilderEncoder implements Encoder
3636{
3737 /** @template-use EncodeIfSupported<stdClass|array|string|int, Pipeline|StageInterface|ExpressionInterface|QueryInterface> */
3838 use EncodeIfSupported;
3939
40- /** @var array<class-string, class-string<ExpressionEncoder >> */
40+ /** @var array<class-string, class-string<Encoder >> */
4141 private array $ defaultEncoders = [
4242 Pipeline::class => PipelineEncoder::class,
4343 Variable::class => VariableEncoder::class,
Original file line number Diff line number Diff line change 77use LogicException ;
88use MongoDB \Builder \Type \CombinedFieldQuery ;
99use MongoDB \Codec \EncodeIfSupported ;
10+ use MongoDB \Codec \Encoder ;
1011use MongoDB \Exception \UnsupportedValueException ;
1112use stdClass ;
1213
1718use function sprintf ;
1819
1920/**
20- * @template-extends AbstractExpressionEncoder <stdClass, CombinedFieldQuery>
21+ * @template-implements Encoder <stdClass, CombinedFieldQuery>
2122 * @internal
2223 */
23- final class CombinedFieldQueryEncoder extends AbstractExpressionEncoder
24+ final class CombinedFieldQueryEncoder implements Encoder
2425{
2526 /** @template-use EncodeIfSupported<stdClass, CombinedFieldQuery> */
2627 use EncodeIfSupported;
28+ use RecursiveEncode;
2729
2830 public function canEncode (mixed $ value ): bool
2931 {
Original file line number Diff line number Diff line change 66
77use MongoDB \Builder \Type \DictionaryInterface ;
88use MongoDB \Codec \EncodeIfSupported ;
9+ use MongoDB \Codec \Encoder ;
910use MongoDB \Exception \UnsupportedValueException ;
1011use stdClass ;
1112
1213/**
13- * @template-extends AbstractExpressionEncoder <string|int|array|stdClass, DictionaryInterface>
14+ * @template-implements Encoder <string|int|array|stdClass, DictionaryInterface>
1415 * @internal
1516 */
16- final class DictionaryEncoder extends AbstractExpressionEncoder
17+ final class DictionaryEncoder implements Encoder
1718{
1819 /** @template-use EncodeIfSupported<string|int|array|stdClass, DictionaryInterface> */
1920 use EncodeIfSupported;
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 66
77use MongoDB \Builder \Type \FieldPathInterface ;
88use MongoDB \Codec \EncodeIfSupported ;
9+ use MongoDB \Codec \Encoder ;
910use MongoDB \Exception \UnsupportedValueException ;
1011
1112/**
12- * @template-extends AbstractExpressionEncoder <string, FieldPathInterface>
13+ * @template-implements Encoder <string, FieldPathInterface>
1314 * @internal
1415 */
15- final class FieldPathEncoder extends AbstractExpressionEncoder
16+ final class FieldPathEncoder implements Encoder
1617{
1718 /** @template-use EncodeIfSupported<string, FieldPathInterface> */
1819 use EncodeIfSupported;
Original file line number Diff line number Diff line change 99use MongoDB \Builder \Type \OperatorInterface ;
1010use MongoDB \Builder \Type \Optional ;
1111use MongoDB \Codec \EncodeIfSupported ;
12+ use MongoDB \Codec \Encoder ;
1213use MongoDB \Exception \UnsupportedValueException ;
1314use stdClass ;
1415
1718use function sprintf ;
1819
1920/**
20- * @template-extends AbstractExpressionEncoder <stdClass, OperatorInterface>
21+ * @template-implements Encoder <stdClass, OperatorInterface>
2122 * @internal
2223 */
23- final class OperatorEncoder extends AbstractExpressionEncoder
24+ final class OperatorEncoder implements Encoder
2425{
2526 /** @template-use EncodeIfSupported<stdClass, OperatorInterface> */
2627 use EncodeIfSupported;
28+ use RecursiveEncode;
2729
2830 public function canEncode (mixed $ value ): bool
2931 {
Original file line number Diff line number Diff line change 99use MongoDB \Builder \Type \OutputWindow ;
1010use MongoDB \Builder \Type \WindowInterface ;
1111use MongoDB \Codec \EncodeIfSupported ;
12+ use MongoDB \Codec \Encoder ;
1213use MongoDB \Exception \UnsupportedValueException ;
1314use stdClass ;
1415
1819use function sprintf ;
1920
2021/**
21- * @template-extends AbstractExpressionEncoder <stdClass, OutputWindow>
22+ * @template-implements Encoder <stdClass, OutputWindow>
2223 * @internal
2324 */
24- final class OutputWindowEncoder extends AbstractExpressionEncoder
25+ final class OutputWindowEncoder implements Encoder
2526{
2627 /** @template-use EncodeIfSupported<stdClass, OutputWindow> */
2728 use EncodeIfSupported;
29+ use RecursiveEncode;
2830
2931 public function canEncode (mixed $ value ): bool
3032 {
Original file line number Diff line number Diff line change 66
77use MongoDB \Builder \Pipeline ;
88use MongoDB \Codec \EncodeIfSupported ;
9+ use MongoDB \Codec \Encoder ;
910use MongoDB \Exception \UnsupportedValueException ;
1011
1112/**
12- * @template-extends AbstractExpressionEncoder <list<mixed>, Pipeline>
13+ * @template-implements Encoder <list<mixed>, Pipeline>
1314 * @internal
1415 */
15- final class PipelineEncoder extends AbstractExpressionEncoder
16+ final class PipelineEncoder implements Encoder
1617{
1718 /** @template-use EncodeIfSupported<list<mixed>, Pipeline> */
1819 use EncodeIfSupported;
20+ use RecursiveEncode;
1921
2022 /** @psalm-assert-if-true Pipeline $value */
2123 public function canEncode (mixed $ value ): bool
@@ -32,7 +34,7 @@ public function encode(mixed $value): array
3234
3335 $ encoded = [];
3436 foreach ($ value ->getIterator () as $ stage ) {
35- $ encoded [] = $ this ->encoder -> encodeIfSupported ($ stage );
37+ $ encoded [] = $ this ->recursiveEncode ($ stage );
3638 }
3739
3840 return $ encoded ;
Original file line number Diff line number Diff line change 88use MongoDB \Builder \Type \QueryInterface ;
99use MongoDB \Builder \Type \QueryObject ;
1010use MongoDB \Codec \EncodeIfSupported ;
11+ use MongoDB \Codec \Encoder ;
1112use MongoDB \Exception \UnsupportedValueException ;
1213use stdClass ;
1314
1617use function sprintf ;
1718
1819/**
19- * @template-extends AbstractExpressionEncoder <stdClass, QueryObject>
20+ * @template-implements Encoder <stdClass, QueryObject>
2021 * @internal
2122 */
22- final class QueryEncoder extends AbstractExpressionEncoder
23+ final class QueryEncoder implements Encoder
2324{
2425 /** @template-use EncodeIfSupported<stdClass, QueryObject> */
2526 use EncodeIfSupported;
27+ use RecursiveEncode;
2628
2729 public function canEncode (mixed $ value ): bool
2830 {
You can’t perform that action at this time.
0 commit comments