Как правильно кодировать AMF0 StrictArray?
После обзора спецификации AMF0 я обнаружил, что не могу понять, как правильно кодировать тип StrictArray.
Вот самый непосредственный раздел спецификации:
массив-число = U32
строгий-тип-массива = количество-массивов *(тип-значения)
который описывает тип StrictArray с расширенным синтаксисом формы Бэкуса-Наура (ABNF) (см. RFC2234)
Имеет ли тип StrictArray порядковые индексы или просто закодированные объекты (без порядковых ключей) в порядке их появления в графе объектов StrictArray?
Кроме того, в качестве дополнительного вопроса, содержит ли таблица сериализации (из которой создаются идентификаторы ссылок на объекты) все объекты в графе объектов или только объекты, которые могут быть потенциально кодированы с помощью ссылки (ECMAArray,StrictArray,TypedObject,AnonymousObject)?
1 ответ
См. https://github.com/silexlabs/amfphp-2.0/blob/master/Amfphp/Core/Amf/Serializer.php строки с 329 по 336. Вы пишете количество объектов, затем каждый объект.
дополнительный вопрос: тот же код, ищите Amf0StoredObjects. идентификаторы ссылок предназначены только для ссылочных объектов. Они варьируются для AMF0 и AMF3, хотя.