hprose 1.0(rpc 框架) - 内部数据标准
hprose 1.0 内部数据标准
方法的描述 {
// 请求调用格式
'C'.writeString('method1').'a'.count($params).'{'.'m'.count($params)'{'. xxx .'}'.'}'.'z'
// 请求返回格式
'R'.serialize($result).'z'
}
// 数据类型的描述
serialize == {
null == {
writeNull() ---> 'n'
}
is_scalar == {
writeNaN() ---> 'N'
writeInteger(10) ---> 'i10;'
writeLong(2000) ---> 'l2000;'
writeBoolean(true) ---> 't' 或者 'f'
writeDouble(3.6) ---> 'd000;'
writeDouble(正无穷大、负无穷大) ---> 'I+' 或者 'I-'
writeEmpty() ---> 'e'
writeUTF8Char($val) ---> 'u'.''
writeStringWithRef($val) ---> writeString($val)
writeBytes($bytes) ---> 'b'.strlen($bytes).'"'.$bytes.'"'
writeBytesWithRef($val) ---> writeBytes($bytes);
writeString($str) ---> 's'.(strlen(iconv('UTF-8', 'UTF-16LE', $str)) >> 1).'"'.$str.'"'
}
is_array == {
writeArray($array) ---> 'a'.count($array)'{'. xxx .'}'
writeAssocArray($map) ---> 'm'.count($map)'{'. xxx .'}'
}
is_object == {
writeDateTime($datetime) ---> $datetime->format('\DYmd\THis.u\Z')
writeMapWithRef($val) ---> writeMap($val) ---> 'm'.count($val)'{'. xxx .'}'
writeListWithRef($val) ---> writeList($val) ---> 'a'.count($val)'{'. xxx .'}'
writeStdClassWithRef($val) ---> writeStdClass($obj) ---> 'm'.count($val)'{'. xxx .'}'
writeObjectWithRef($val) ---> writeObject($obj) ---> {
$class = get_class($obj); // 'Dir1\Dir2\Clazz1';
$alias = 'Dir1_Dir2_Clazz1'
---> 'c'.(strlen(iconv('UTF-8', 'UTF-16LE', $alias)) >> 1).'"'.$alias.'"'.count($props).'{'.writeString(strtolower($prop[0]) . substr($prop, 1)).'}'.'o'.'0'.'{'.$prop->getValue($obj).'}'
}
}
}
最新文章
- IO(三)----序列流
- Linux中profile文件详解(转)
- 如何真正提高ASP.NET网站的性能
- 2012年第三届蓝桥杯C/C++程序设计本科B组决赛
- jsp内置对象和el表达式
- 使用Sass优雅并高效的实现CSS中的垂直水平居中(附带Flex布局,CSS3+SASS完美版)
- Alpha、Beta、RC、GA版本的区别
- forward_list例子
- (转)Spring读书笔记-----Spring的Bean之Bean的基本概念
- WPF XAML之bing使用StringFormat(转)
- SocketAsyncEventArgs使用解说
- 【原创】leetCodeOj --- Sliding Window Maximum 解题报告
- AES加密解密算法
- C#版 - Leetcode 191. Number of 1 Bits-题解
- JavaSE_坚持读源码_ArrayList对象_Java1.7
- 内部排序->;交换排序->;起泡排序
- p1110 报表统计(FHQ-TREAP/TREAP)
- php求取时间范围并传入数据库,页面上显示几天几月几年
- ajax传递数组给controller的实现方法和坑
- CronExpression
热门文章
- win10卸载更新+关闭自动更新的方法
- Linux中vim编辑器常用操作技巧
- pat1064. Complete Binary Search Tree (30)
- 3年,阅读量100万+, Github Star 15000+
- [Windows] 一些简单的CMD命令
- 一、基础知识 React API 一览
- Python接入支付宝进行PC端支付
- IIS发布网站出错解决方案
- 【Shell脚本学习24】Shell输入输出重定向:Shell Here Document,/dev/null文件
- WPF样式学习:ToolBar的使用