
PHP
文章平均质量分 89
smallhow
目前在腾讯任职,曾在华为、恒生担任C/C++开发工程师,在wps担任项目经理,在360担任技术专家。
展开
-
swoole协程+zephir纯php开发大型RPG微信小游戏(已开源)
概述我在一年前,帮助朋友构建游戏RPG后台的时候,思考如何兼顾开发效率和性能,最终想到了 php + swoole协程 + ext-orm + zephir ,微信小游戏搜索:“剑的传说” swoole协程有着极高的IO并发能力ext-orm 是我开发的php 扩展,开源地址为: https://github.com/swoole/ext-orm ,有着非常高的性能、sql安全性和开发效率...原创 2020-04-27 09:46:33 · 4420 阅读 · 1 评论 -
PHP性能提升的几个方法
...原创 2019-10-25 11:39:08 · 492 阅读 · 0 评论 -
轻量级高性能PHP框架ycroute(中级): 基于yar的RPC服务 - 像调用本地函数一样调用远程函数
目录框架介绍运行环境代码结构路由配置过滤验签控制层加载器模型层数据交互dao层(可选)Redis缓存操作数据库操作配置加载公共类加载公共函数日志模块视图层RPC 介绍 - 像调用本地函数一样调用远程函数RPC ServerRPC ClientRPC 并发调用附录 - Core_Model 中的辅助极速开发函数RPC 介绍 - 像调用本地函数一样调用远...原创 2019-02-14 19:26:19 · 1609 阅读 · 2 评论 -
轻量级高性能PHP框架ycroute(高级):集成分布式配置中心QConf
目录:QConf介绍 QConf优点 QConf架构 zookeeper 安装 QConf安装部署 使用QConf QConf管理界面安装 PHP SDK 扩展 分集群配置 - 不同环境,不同配置 与YCRoute框架集成 - db/redis配置化 灰度发布QConf介绍: QConf 是奇虎360开源的一款分布式配置中心。是一款非常成熟的系统组件,运行3年多...原创 2019-02-17 12:47:05 · 1903 阅读 · 0 评论 -
轻量级高性能PHP框架ycroute(初级): MVC 框架与各大组件
目录框架介绍运行环境代码结构路由配置过滤验签控制层加载器模型层Redis缓存操作数据库操作配置加载公共类加载公共函数日志模块视图层附录 - Core_Model 中的辅助极速开发函数框架介绍框架由3层架构构成,Controller、Model、View 层,支持PHP7,优点如下:1、框架层次分明、使用简洁(开箱即用)、功能强大。2、基于 yaf 路由和...原创 2019-02-12 10:29:53 · 1355 阅读 · 0 评论 -
zephir 引起的引用计数问题
zephir 引用计数问题//fight.zepnamespace Test;class Fight{ public heros_attr = []; public function __construct(var ids) { var id; for id in ids { var heroAttr; let heroAttr = new HeroAt...原创 2019-03-21 09:33:42 · 437 阅读 · 0 评论 -
基于swoole的轻量级socket框架(含协程版数据库/缓存连接池)
ycsocket基于 swoole 和 ycdatabase 的 websocket 框架,各位可以自己扩展到 TCP/UDP,HTTP。在ycsocket 中,采用的是全协程化,全池化的数据库、缓存IO,对于IO密集型型的应用,能够支撑较高并发。项目github地址: https://github.com/caohao-php/ycsocket文档暂时未写全,后续有时间了再完善。环境:...原创 2019-04-02 09:40:35 · 1356 阅读 · 0 评论 -
C语言PHP扩展高性能数据库ORM框架ycdb(3) : 稳定的Redis连接池
上一章:C语言PHP扩展高性能数据库ORM框架ycdb(2): 构建稳定的数据库连接池目录:Instruction Requirement 创建测试表 在linux中编译ycdb Start ycdatabase 初始化ycdb连接 原生SQL执行 错误处理 Where 语句 Select 语句 Insert 语句 Replace 语句 Update 语句 Del...原创 2019-01-03 10:26:00 · 1105 阅读 · 4 评论 -
C语言PHP扩展高性能数据库ORM框架ycdb(2) : 构建稳定的数据库连接池
上一章:C语言PHP扩展高性能数据库ORM框架ycdb(1) : SQL生成器下一章:C语言PHP扩展高性能数据库ORM框架ycdb(3): 稳定的Redis连接池目录:Instruction Requirement 创建测试表 在linux中编译ycdb Start ycdatabase 初始化ycdb连接 原生SQL执行 错误处理 Where 语句 Select ...原创 2018-12-25 23:25:15 · 8495 阅读 · 5 评论 -
C语言PHP扩展高性能数据库ORM框架ycdb(1) : SQL生成器
下一章:C语言PHP扩展高性能数据库ORM框架ycdb(2) : 构建稳定的数据库/缓存连接池目录:介绍 安装环境 创建测试表 在linux中编译ycdb Start ycdatabase 初始化ycdb连接 原生SQL执行 错误处理 Where 语句 Select 语句 Insert 语句 Replace 语句 Update 语句 Delete 语句 完整例句...原创 2018-11-23 14:54:27 · 3423 阅读 · 4 评论 -
高性能PHP组合框架SuperCI
概述: 本文描述的组合框架 SuperCI,是一个四层框架,包含 Controller、Business、Dao、View 层。Controller仅是一个路由控制器,Bussiness实现业务逻辑, Dao层与数据库打交道, 这里抽象了部分常用的Dao操作,以及加入以redis作为前置缓存,View层为视图层,支持 Redis 主从,以及在Core_Dao中封装了 Dao 的一些快速操...原创 2018-05-10 18:38:48 · 1504 阅读 · 3 评论 -
PHP7/5扩展开发函数手册(1) - zval结构
1、zval 结构:PHP5:struct _zval_struct { union { long lval; double dval; struct { char *val; int len; } str; HashTable *ht; ...原创 2018-08-29 17:01:24 · 1016 阅读 · 0 评论 -
PHP7/5扩展开发函数手册(2) - zval操作
目录String 的两个宏定义 在扩展中打印zval zval 的销毁 zval 类型获取 获取 zval 的 value 值 zval变量赋值 获取zval引用计数 增加引用计数? 传入参数分离 获取常量的值 注册常量String 的两个宏定义在Zend 内核中,针对字符串,定义了两个宏, 这个在后续的字符串处理中经常需要用到,大家留意----zend_por...原创 2018-08-29 17:20:44 · 1823 阅读 · 1 评论 -
PHP7/5扩展开发函数手册(3) - 函数
目录函数参数 函数定义 函数返回 PHPAPI函数调用 类型转换函数 判断是否回调函数 调用用户空间函数 函数参数//类成员函数的参数宏定义ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, return_reference, required_num_args) ZEND_ARG_PASS_INFO(by...原创 2018-08-29 19:00:52 · 1413 阅读 · 0 评论 -
PHP7/5扩展开发函数手册(4) - 数组
目录String 的两个宏定义 初始化数组 array_init 添加数组数据 add_assoc_null 获取数组中HashTable 根据 key 获取数组的 value 创建一个HashTable 获取HashTable元素数量 获取HashTable元素的最小/最大值 HashTable遍历操作 获取指定HashPosition位置处的值 HashTable数据更...原创 2018-08-29 19:03:27 · 1034 阅读 · 0 评论 -
PHP7/5扩展开发函数手册(5) - 对象
目录String 的两个宏定义 类的初始化 INIT_CLASS_ENTRY 类实体的注册 zend_register_internal_class 成员函数参数 ZEND_BEGIN_ARG_INFO_EX 声明类的成员变量 zend_declare_property 声明类常量 zend_declare_class_constant 类的初始化示例 获取对象句柄 Z_OBJ...原创 2018-08-29 19:40:57 · 1820 阅读 · 4 评论 -
PHP7/5扩展开发函数手册(6) - 异常处理
输出打印下面3个通用输出函数,PHPWRITE()与php_write()相同,将数据写入当前输出缓冲区。 php_html_puts()通过转义HTML实体并编码其他特殊字符(如 tab和换行符)来执行其他工作,以确保非HTML格式的数据在与HTML驱动的SAPI一起使用时看起来一致。int php_printf(const char *format, ...);int php_wr...原创 2018-09-03 19:38:53 · 670 阅读 · 0 评论 -
PHP7/5扩展开发函数手册(7) - 字符串常用处理
目录 字符串左右连接 正则匹配 字符串左右连接下面示例是在 PHP7 下运行的代码, PHP5 暂未实现,大家可以自行研究,这里一定注意, 由正则函数产生的对象,我们不要主动释放,否则会出现段错误。zval * relation;SW_ALLOC_INIT_ZVAL(relation);SW_ZVAL_STRING(relation, "table user1", ...原创 2018-09-10 12:31:58 · 474 阅读 · 0 评论