/**
  * Map SerializableSerpPage to an easy serializable SerpPage.
  * The serialization format is resolved at runtime.
  * @param  SerializableSerpPage $serializablePage
  * @param  string               $format
  * @param  array                $entries
  * @return SerpPageJSON|SerpPageXML|SerpPageYML
  */
 private function prepareForSerialization($serializablePage, $format, $entries)
 {
     $engine = $serializablePage->getEngine();
     $keyword = $serializablePage->getKeyword();
     $pageUrl = $serializablePage->getPageUrl();
     $pageNumber = $serializablePage->getPageNumber();
     $age = $serializablePage->getAge();
     return self::getFormatClassName($format, array($engine, $pageNumber, $pageUrl, $keyword, $age, $entries));
 }
 /**
  * Extract relevant data from a SerializableSerpPage.
  * @param  SerializableSerpPage $serializablePage
  * @return array
  */
 public static function extractSerializablePageData($serializablePage)
 {
     $keyword = $serializablePage->getKeyword();
     $pageNumber = $serializablePage->getPageNumber();
     $age = $serializablePage->getAge()->format('Y-m-d');
     return array($keyword, $pageNumber, $age);
 }