* @copyright Copyright 2013-2016 Aerospike, Inc. * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2 * @link https://github.com/aerospike/aerospike-client-php/blob/master/doc/README.md#handling-unsupported-types * @filesource */ namespace Aerospike; /** * \Aerospike\Bytes is a utility for wrapping PHP strings containing * potentially harmful bytes such as \0. By wrapping the binary-string, the * Aerospike client will serialize the data into an as_bytes rather than an * as_string. * This ensures that the string will not get truncated or otherwise lose data. * The main difference is that strings in the Aerospike cluster can have a * secondary index built over them, and queries executed against the index, * while bytes data cannot. * * @package Aerospike * @author Ronen Botzer */ class Bytes implements \Serializable { /** * The container for the binary-string * @var string */ public $s; /** * Constructor for \Aerospike\Bytes class. * * @param string $bin_str a PHP binary-string such as gzdeflate() produces. */ public function __construct($bin_str) { $this->s = $bin_str; } /** * Returns a serialized representation of the binary-string. * Called by serialize() * * @return string */ public function serialize() { return $this->s; } /** * Re-wraps the binary-string when called by unserialize(). * * @param string $bin_str a PHP binary-string. Called by unserialize(). * @return string */ public function unserialize($bin_str) { return $this->s = $bin_str; } /** * Returns the binary-string held in the \Aerospike\Bytes object. * * @return string */ public function __toString() { return $this->s; } /** * Unwraps an \Aerospike\Bytes object, returning the binary-string inside. * * @param \Aerospike\Bytes $bytes_wrap * @return string */ public static function unwrap(Bytes $bytes_wrap) { return $bytes_wrap->s; } }