| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | <?php/** * WPSEO plugin file. * * @package WPSEO\XML_Sitemaps *//** * Sitemap Cache Data object, manages sitemap data stored in cache. */class WPSEO_Sitemap_Cache_Data implements WPSEO_Sitemap_Cache_Data_Interface, Serializable {	/**	 * Sitemap XML data.	 *	 * @var string	 */	private $sitemap = '';	/**	 * Status of the sitemap, usable or not.	 *	 * @var string	 */	private $status = self::UNKNOWN;	/**	 * Set the sitemap XML data	 *	 * @param string $sitemap XML Content of the sitemap.	 */	public function set_sitemap( $sitemap ) {		if ( ! is_string( $sitemap ) ) {			$sitemap = '';		}		$this->sitemap = $sitemap;		/*		 * Empty sitemap is not usable.		 */		if ( ! empty( $sitemap ) ) {			$this->set_status( self::OK );		}		else {			$this->set_status( self::ERROR );		}	}	/**	 * Set the status of the sitemap, is it usable.	 *	 * @param bool|string $valid Is the sitemap valid or not.	 *	 * @return void	 */	public function set_status( $valid ) {		if ( self::OK === $valid ) {			$this->status = self::OK;			return;		}		if ( self::ERROR === $valid ) {			$this->status  = self::ERROR;			$this->sitemap = '';			return;		}		$this->status = self::UNKNOWN;	}	/**	 * Is the sitemap usable.	 *	 * @return bool True if usable, False if bad or unknown.	 */	public function is_usable() {		return self::OK === $this->status;	}	/**	 * Get the XML content of the sitemap.	 *	 * @return string The content of the sitemap.	 */	public function get_sitemap() {		return $this->sitemap;	}	/**	 * Get the status of the sitemap.	 *	 * @return string Status of the sitemap, 'ok'/'error'/'unknown'.	 */	public function get_status() {		return $this->status;	}	/**	 * String representation of object.	 *	 * @link http://php.net/manual/en/serializable.serialize.php	 *	 * @since 5.1.0	 *	 * @return string The string representation of the object or null.	 */	public function serialize() {		$data = [			'status' => $this->status,			'xml'    => $this->sitemap,		];		return serialize( $data );	}	/**	 * Constructs the object.	 *	 * @link http://php.net/manual/en/serializable.unserialize.php	 *	 * @since 5.1.0	 *	 * @param string $serialized The string representation of the object.	 *	 * @return void	 */	public function unserialize( $serialized ) {		$data = unserialize( $serialized );		$this->set_sitemap( $data['xml'] );		$this->set_status( $data['status'] );	}}
 |