'parameters' => $this->parameters,
'format' => $this->format,
'useDatabase' => $this->useDatabase,
- 'title' => $this->title,
+ 'titlestr' => $this->title ? $this->title->getFullText() : null,
] );
}
*/
public function unserialize( $serialized ) {
$data = unserialize( $serialized );
+ if ( !is_array( $data ) ) {
+ throw new InvalidArgumentException( __METHOD__ . ': Invalid serialized data' );
+ }
+
$this->interface = $data['interface'];
$this->key = $data['key'];
$this->keysToTry = $data['keysToTry'];
$this->format = $data['format'];
$this->useDatabase = $data['useDatabase'];
$this->language = $data['language'] ? Language::factory( $data['language'] ) : false;
- $this->title = $data['title'];
+
+ if ( isset( $data['titlestr'] ) ) {
+ $this->title = Title::newFromText( $data['titlestr'] );
+ } elseif ( isset( $data['title'] ) && $data['title'] instanceof Title ) {
+ // Old serializations from before December 2018
+ $this->title = $data['title'];
+ } else {
+ $this->title = null; // Explicit for sanity
+ }
}
/**