API 命名
优质
小牛编辑
141浏览
2023-12-01
内核 C API
- 面向过程风格的函数以
swoole_
开头,如swoole_dirname
,swoole_init
等 - 所有
src/
中的面向对象风格代码以sw
开头,如swHashMap_add
- 使用
C
的面向对象设计,swHashMap
实际上就表示是类HashMap
的方法或者静态方法 - 函数名为
*_new
会在函数内malloc
结构体内存 - 函数名为
*_create
需要在外部传入结构体内存指针,并且会bzero
清空内存 - 函数名为
*_init
与create
相同,但不会清空内存 - 函数名为
*_free
会释放相关资源,并执行free
释放对象内存 - 函数名为
*_destroy
会释放相关资源,但不会free
释放对象内存 - 函数参数带有指针时,参数的类型与
*
有一个空格,*
与参数名没有空格,例如func(int *fd)
内部 API
- 以
sw_
开头的API
仅在swoole
内部使用
内核 C++ API
- 基本模块使用
swoole::
命名空间 - 协程相关模块使用
swoole::coroutine::
命名空间
PHP C API
永久 API
- 所有函数必须以
php_swoole_
为前缀,如php_swoole_check_reactor
- 子模块下的函数必须以
php_swoole_{模块名称}_
为前缀,php_swoole_client_new
临时 API
- 在
Zend
原有的命名前加上sw
前缀,如zend_call_function
的包装则是sw_zend_call_function
- 如有特殊修改的(比如参数不一致) 则是
sw_zend_call_function_ex
- 普适性较强的包装
API
如ZVAL_IS_ARRAY
不加sw_
前缀
这部分
API
是临时性的,需要跟随ZendAPI
,因此仅内部使用
PHP C++ API
- 对于
PHP ZendAPI
的封装,必须放置到zend::
命名空间中