By default this uses the existing ContentHandler::serializeContent() and ::unserializeContent() methods. But in cases where existing PHP serialization preserved fields that ::serializeContent() did not, provide an additional ContentHandler::serializeContentToJsonArray() and ContentHandler::deserializeContentFromJsonArray() methods which can be used. Use these in WikitextContentHandler to preserve the PST flags. Added test cases and a ContentSerializationTestTrait to make it easy to ensure forward- and backward-compatibility in accord with https://www.mediawiki.org/wiki/Manual:Parser_cache/Serialization_compatibility The new JsonCodecable codec will be used to improve PageEditStashContent serialization, which no longer has to PHP-serialize its Content object. New test case added demonstrating compatibility. Bug: T264389 Bug: T161647 Change-Id: I544625136088164561b9169a63aed7450cce82f5 (cherry picked from commit 21576d6c1893079777a1a51d0f81c4941c58e376)
1 line
No EOL
1.2 KiB
JSON
1 line
No EOL
1.2 KiB
JSON
{"pstContent":{"model":"wikitext","format":"text/x-wiki","blob":"hello","_type_":"MediaWiki\\Content\\WikitextContent","_complex_":true},"output":{"Text":null,"LanguageLinks":[],"Categories":[],"Indicators":[],"TitleText":"","Links":[],"LinksSpecial":[],"Templates":[],"TemplateIds":[],"Images":[],"FileSearchOptions":[],"ExternalLinks":[],"InterwikiLinks":[],"ExistenceLinks":[],"NewSection":false,"HideNewSection":false,"NoGallery":false,"HeadItems":[],"Modules":[],"ModuleStyles":[],"JsConfigVars":[],"Warnings":[],"WarningMsgs":[],"Sections":[],"Properties":[],"Timestamp":null,"EnableOOUI":false,"IndexPolicy":"","ExtensionData":{"test1":"test2"},"LimitReportData":[],"LimitReportJSData":[],"CacheMessage":"","TimeProfile":[],"ParseStartTime":[],"PreventClickjacking":false,"ExtraScriptSrcs":[],"ExtraDefaultSrcs":[],"ExtraStyleSrcs":[],"Flags":[],"SpeculativeRevId":null,"SpeculativePageIdUsed":null,"RevisionTimestampUsed":null,"RevisionUsedSha1Base36":null,"WrapperDivClasses":[],"ParseUsedOptions":[],"CacheExpiry":null,"CacheTime":"20250701173710","CacheRevisionId":null,"_type_":"MediaWiki\\Parser\\ParserOutput","_complex_":true},"timestamp":"20250701173710","edits":42,"_type_":"MediaWiki\\Storage\\PageEditStashContents","_complex_":true} |