grav-plugin-flex-objects
grav-plugin-flex-objects copied to clipboard
Option encode_options: "..." is ignored
Hi!
When saving flex-objects data with JSON formatter we are allowed to set some options like file_extension, encode_options, decode_assoc, etc. The thing is, encode_options param is not handled. Example:
storage:
class: 'Grav\Framework\Flex\Storage\FolderStorage'
options:
formatter:
class: 'Grav\Framework\File\Formatter\JsonFormatter'
options:
encode_options: 'JSON_UNESCAPED_UNICODE' # See https://www.php.net/manual/en/function.json-encode.php
folder: user-data://contacts
Encode options are useful when dealing with non-latin symbols, like Cyrillic. By default Cyrillic is escaped to \u123456. So the JSON looks completely gibberish:
Setting encode_options: 'JSON_UNESCAPED_UNICODE'
(int 256) should help with that, unless it won't.
All the constants like 'JSON_UNESCAPED_UNICODE' => JSON_UNESCAPED_UNICODE
are defined in 'Grav\Framework\File\Formatter\JsonFormatter'
, but it is never called. Instead grav\vendor\rockettheme\toolbox\File\src\JsonFile.php
is used. And the encoding options are never passed to it: