本文整理汇总了PHP中Zend_Amf_Parse_Amf3_Serializer类的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Amf_Parse_Amf3_Serializer类的具体用法?PHP Zend_Amf_Parse_Amf3_Serializer怎么用?PHP Zend_Amf_Parse_Amf3_Serializer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Zend_Amf_Parse_Amf3_Serializer类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: encode
public function encode($data, $human_readable = false)
{
$this->init();
require_once $this->path . 'OutputStream.php';
require_once $this->path . 'Amf3/Serializer.php';
$stream = new Zend_Amf_Parse_OutputStream();
$serializer = new Zend_Amf_Parse_Amf3_Serializer($stream);
$serializer->writeTypeMarker($data);
return $stream->getStream();
}
示例2: serialize
/**
* Serialize a PHP value to AMF3 format
*
* @param mixed $value
* @param array $opts
* @return string
* @throws Zend_Serializer_Exception
*/
public function serialize($value, array $opts = array())
{
try {
$stream = new Zend_Amf_Parse_OutputStream();
$serializer = new Zend_Amf_Parse_Amf3_Serializer($stream);
$serializer->writeTypeMarker($value);
return $stream->getStream();
} catch (Exception $e) {
throw new Zend_Serializer_Exception('Serialization failed by previous error', 0, $e);
}
}
示例3: writeAmf3TypeMarker
/**
* Encountered and AMF3 Type Marker use AMF3 serializer. Once AMF3 is
* encountered it will not return to AMf0.
*
* @param string $data
* @return Zend_Amf_Parse_Amf0_Serializer
*/
public function writeAmf3TypeMarker(&$data)
{
// // require_once 'Zend/Amf/Parse/Amf3/Serializer.php';
$serializer = new Zend_Amf_Parse_Amf3_Serializer($this->_stream);
$serializer->writeTypeMarker($data);
return $this;
}
示例4: sendData
public function sendData($data)
{
header("Cache-Control: no-cache, must-revalidate");
header("Expires: 0");
header('Content-Type: ' . $this->format);
if ($this->format == RestFormat::AMF) {
require_once 'Zend/Amf/Parse/OutputStream.php';
require_once 'Zend/Amf/Parse/Amf3/Serializer.php';
$stream = new Zend_Amf_Parse_OutputStream();
$serializer = new Zend_Amf_Parse_Amf3_Serializer($stream);
$serializer->writeTypeMarker($data);
$data = $stream->getStream();
} else {
if (is_object($data) && method_exists($data, '__keepOut')) {
$data = clone $data;
foreach ($data->__keepOut() as $prop) {
unset($data->{$prop});
}
}
$data = json_encode($data);
if ($data && $this->mode == 'debug') {
$data = $this->json_format($data);
}
}
echo $data;
}
示例5: sendData
public function sendData($data)
{
header('Content-Type: ' . $this->format);
if ($this->format == RestFormat::AMF) {
require_once 'Zend/Amf/Parse/OutputStream.php';
require_once 'Zend/Amf/Parse/Amf3/Serializer.php';
$stream = new Zend_Amf_Parse_OutputStream();
$serializer = new Zend_Amf_Parse_Amf3_Serializer($stream);
$serializer->writeTypeMarker($data);
$data = $stream->getStream();
} else {
if ($this->format == RestFormat::XML) {
$data = ArrayToXML::toXml($data);
} else {
$data = json_encode($data);
if ($data && $this->mode == 'debug') {
$data = $this->json_format($data);
$mathes = array();
$pattern = '/"new Date\\([0-9\\,\\s]*\\)"/';
$matches = array();
preg_match_all($pattern, $data, $matches);
$matches = $matches[0];
foreach ($matches as $match) {
$tmpStrLen = strlen($match);
$tmpStr = substr($match, 1, $tmpStrLen - 2);
$data = str_replace($match, $tmpStr, $data);
}
}
}
}
echo $data;
}
示例6: writeCollection
public function writeCollection(&$object)
{
// In order to get around the problems with ZendAMF and Iterator/foreach we create a vanilla object and use _explicitType to
// map it on the client. The source property maps to mx.collections.ArrayCollection::source. We also need to add whether
// or not the collection is initialized.
$wrappedObject = new \stdClass();
$wrappedObject->_explicitType = "org.davekeen.flextrine.orm.collections.PersistentCollection";
if ($object instanceof \Doctrine\ORM\PersistentCollection) {
$wrappedObject->source = $object->unwrap()->toArray();
$wrappedObject->isInitialized__ = $object->isInitialized() || sizeof($wrappedObject->source) > 0;
} else {
$wrappedObject->source = $object->toArray();
$wrappedObject->isInitialized__ = true;
}
parent::writeObject($wrappedObject);
}