Skip to content

Commit be47017

Browse files
committed
refactor(Message): improve default options handling
- Added default options for 'fields', 'kv', and 'params' properties - Refactored options handling for 'kv' and 'params' to support nested structures
1 parent 34e7536 commit be47017

1 file changed

Lines changed: 43 additions & 2 deletions

File tree

src/QQ/Messages/Message.php

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@ protected function configureOptionsResolver(OptionsResolver $optionsResolver): v
7575
$optionsResolver->setDefined([
7676
'url',
7777
]);
78+
})
79+
->setDefault('fields', static function (OptionsResolver $optionsResolver): void {
80+
$optionsResolver
81+
->setPrototype(true)
82+
->setDefined([
83+
'name',
84+
]);
7885
});
7986
})
8087
->setDefault('ark', static function (OptionsResolver $optionsResolver): void {
@@ -83,7 +90,33 @@ protected function configureOptionsResolver(OptionsResolver $optionsResolver): v
8390
'template_id',
8491
'kv',
8592
])
86-
->setAllowedTypes('kv', 'array');
93+
->setAllowedTypes('kv', 'array')
94+
->setDefault('kv', static function (OptionsResolver $optionsResolver): void {
95+
$optionsResolver
96+
->setPrototype(true)
97+
->setDefined([
98+
'key',
99+
'value',
100+
'obj',
101+
])
102+
->setAllowedTypes('obj', 'array')
103+
->setDefault('obj', static function (OptionsResolver $optionsResolver): void {
104+
$optionsResolver
105+
->setPrototype(true)
106+
->setDefined([
107+
'obj_kv',
108+
])
109+
->setAllowedTypes('obj_kv', 'array')
110+
->setDefault('obj_kv', static function (OptionsResolver $optionsResolver): void {
111+
$optionsResolver
112+
->setPrototype(true)
113+
->setDefined([
114+
'key',
115+
'value',
116+
]);
117+
});
118+
});
119+
});
87120
})
88121
->setDefault('message_reference', static function (OptionsResolver $optionsResolver): void {
89122
$optionsResolver
@@ -101,7 +134,15 @@ protected function configureOptionsResolver(OptionsResolver $optionsResolver): v
101134
'params',
102135
'content',
103136
])
104-
->setAllowedTypes('params', 'array');
137+
->setAllowedTypes('params', 'array')
138+
->setDefault('params', static function (OptionsResolver $optionsResolver): void {
139+
$optionsResolver
140+
->setDefined([
141+
'key',
142+
'values',
143+
])
144+
->setAllowedTypes('values', 'array');
145+
});
105146
});
106147
}
107148
}

0 commit comments

Comments
 (0)