@@ -44,7 +44,7 @@ class Inline
44
44
*
45
45
* @throws ParseException
46
46
*/
47
- public static function parse ($ value, $ flags = 0 , $ references = array ())
47
+ public static function parse (string $ value = null , int $ flags = 0 , array $ references = array ())
48
48
{
49
49
self ::$ exceptionOnInvalidType = (bool ) (Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE & $ flags );
50
50
self ::$ objectSupport = (bool ) (Yaml::PARSE_OBJECT & $ flags );
@@ -103,7 +103,7 @@ public static function parse($value, $flags = 0, $references = array())
103
103
*
104
104
* @throws DumpException When trying to dump PHP resource
105
105
*/
106
- public static function dump ($ value , $ flags = 0 )
106
+ public static function dump ($ value , int $ flags = 0 ): string
107
107
{
108
108
switch (true ) {
109
109
case is_resource ($ value ):
@@ -124,7 +124,13 @@ public static function dump($value, $flags = 0)
124
124
}
125
125
126
126
if (Yaml::DUMP_OBJECT_AS_MAP & $ flags && ($ value instanceof \stdClass || $ value instanceof \ArrayObject)) {
127
- return self ::dumpArray ($ value , $ flags & ~Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE );
127
+ $ output = array ();
128
+
129
+ foreach ($ value as $ key => $ val ) {
130
+ $ output [] = sprintf ('%s: %s ' , self ::dump ($ key , $ flags ), self ::dump ($ val , $ flags ));
131
+ }
132
+
133
+ return sprintf ('{ %s } ' , implode (', ' , $ output ));
128
134
}
129
135
130
136
if (Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE & $ flags ) {
@@ -182,13 +188,11 @@ public static function dump($value, $flags = 0)
182
188
/**
183
189
* Check if given array is hash or just normal indexed array.
184
190
*
185
- * @internal
186
- *
187
191
* @param array|\ArrayObject|\stdClass $value The PHP array or array-like object to check
188
192
*
189
193
* @return bool true if value is hash array, false otherwise
190
194
*/
191
- public static function isHash ($ value )
195
+ public static function isHash ($ value ): bool
192
196
{
193
197
if ($ value instanceof \stdClass || $ value instanceof \ArrayObject) {
194
198
return true ;
@@ -213,7 +217,7 @@ public static function isHash($value)
213
217
*
214
218
* @return string The YAML string representing the PHP array
215
219
*/
216
- private static function dumpArray ($ value , $ flags )
220
+ private static function dumpArray (array $ value , int $ flags ): string
217
221
{
218
222
// array
219
223
if (($ value || Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE & $ flags ) && !self ::isHash ($ value )) {
@@ -244,13 +248,11 @@ private static function dumpArray($value, $flags)
244
248
* @param bool $evaluate
245
249
* @param array $references
246
250
*
247
- * @return string
251
+ * @return mixed
248
252
*
249
253
* @throws ParseException When malformed inline YAML string is parsed
250
- *
251
- * @internal
252
254
*/
253
- public static function parseScalar ($ scalar , $ flags = 0 , $ delimiters = null , &$ i = 0 , $ evaluate = true , $ references = array ())
255
+ public static function parseScalar (string $ scalar , int $ flags = 0 , array $ delimiters = null , int &$ i = 0 , bool $ evaluate = true , array $ references = array ())
254
256
{
255
257
if (in_array ($ scalar [$ i ], array ('" ' , "' " ))) {
256
258
// quoted scalar
@@ -302,7 +304,7 @@ public static function parseScalar($scalar, $flags = 0, $delimiters = null, &$i
302
304
*
303
305
* @throws ParseException When malformed inline YAML string is parsed
304
306
*/
305
- private static function parseQuotedScalar ($ scalar , &$ i )
307
+ private static function parseQuotedScalar (string $ scalar , int &$ i ): string
306
308
{
307
309
if (!Parser::preg_match ('/ ' .self ::REGEX_QUOTED_STRING .'/Au ' , substr ($ scalar , $ i ), $ match )) {
308
310
throw new ParseException (sprintf ('Malformed inline YAML string: %s. ' , substr ($ scalar , $ i )));
@@ -334,7 +336,7 @@ private static function parseQuotedScalar($scalar, &$i)
334
336
*
335
337
* @throws ParseException When malformed inline YAML string is parsed
336
338
*/
337
- private static function parseSequence ($ sequence , $ flags , &$ i = 0 , $ references = array ())
339
+ private static function parseSequence (string $ sequence , int $ flags , int &$ i = 0 , array $ references = array ()): array
338
340
{
339
341
$ output = array ();
340
342
$ len = strlen ($ sequence );
@@ -403,7 +405,7 @@ private static function parseSequence($sequence, $flags, &$i = 0, $references =
403
405
*
404
406
* @throws ParseException When malformed inline YAML string is parsed
405
407
*/
406
- private static function parseMapping ($ mapping , $ flags , &$ i = 0 , $ references = array ())
408
+ private static function parseMapping (string $ mapping , int $ flags , int &$ i = 0 , array $ references = array ())
407
409
{
408
410
$ output = array ();
409
411
$ len = strlen ($ mapping );
@@ -515,7 +517,7 @@ private static function parseMapping($mapping, $flags, &$i = 0, $references = ar
515
517
*
516
518
* @throws ParseException when object parsing support was disabled and the parser detected a PHP object or when a reference could not be resolved
517
519
*/
518
- private static function evaluateScalar ($ scalar , $ flags , $ references = array ())
520
+ private static function evaluateScalar (string $ scalar , int $ flags , array $ references = array ())
519
521
{
520
522
$ scalar = trim ($ scalar );
521
523
$ scalarLower = strtolower ($ scalar );
@@ -638,10 +640,10 @@ private static function evaluateScalar($scalar, $flags, $references = array())
638
640
*
639
641
* @return null|string
640
642
*/
641
- private static function parseTag ($ value , &$ i , $ flags )
643
+ private static function parseTag (string $ value , int &$ i , int $ flags ): ? string
642
644
{
643
645
if ('! ' !== $ value [$ i ]) {
644
- return ;
646
+ return null ;
645
647
}
646
648
647
649
$ tagLength = strcspn ($ value , " \t\n[]{}, " , $ i + 1 );
@@ -653,7 +655,7 @@ private static function parseTag($value, &$i, $flags)
653
655
// Is followed by a scalar and is a built-in tag
654
656
if ($ tag && (!isset ($ value [$ nextOffset ]) || !in_array ($ value [$ nextOffset ], array ('[ ' , '{ ' ), true )) && ('! ' === $ tag [0 ] || 'str ' === $ tag || 'php/const ' === $ tag || 'php/object ' === $ tag )) {
655
657
// Manage in {@link self::evaluateScalar()}
656
- return ;
658
+ return null ;
657
659
}
658
660
659
661
$ i = $ nextOffset ;
@@ -674,10 +676,8 @@ private static function parseTag($value, &$i, $flags)
674
676
* @param string $scalar
675
677
*
676
678
* @return string
677
- *
678
- * @internal
679
679
*/
680
- public static function evaluateBinaryScalar ($ scalar )
680
+ public static function evaluateBinaryScalar (string $ scalar ): string
681
681
{
682
682
$ parsedBinaryData = self ::parseScalar (preg_replace ('/\s/ ' , '' , $ scalar ));
683
683
@@ -692,7 +692,7 @@ public static function evaluateBinaryScalar($scalar)
692
692
return base64_decode ($ parsedBinaryData , true );
693
693
}
694
694
695
- private static function isBinaryString ($ value )
695
+ private static function isBinaryString (string $ value )
696
696
{
697
697
return !preg_match ('//u ' , $ value ) || preg_match ('/[^\x00\x07-\x0d\x1B\x20-\xff]/ ' , $ value );
698
698
}
@@ -704,7 +704,7 @@ private static function isBinaryString($value)
704
704
*
705
705
* @see http://www.yaml.org/spec/1.2/spec.html#id2761573
706
706
*/
707
- private static function getTimestampRegex ()
707
+ private static function getTimestampRegex (): string
708
708
{
709
709
return <<<EOF
710
710
~^
@@ -727,7 +727,7 @@ private static function getTimestampRegex()
727
727
*
728
728
* @return string
729
729
*/
730
- private static function getHexRegex ()
730
+ private static function getHexRegex (): string
731
731
{
732
732
return '~^0x[0-9a-f_]++$~i ' ;
733
733
}
0 commit comments