当前位置: 首页 > 文档资料 > Swoole 内核开发 >

API 命名

优质
小牛编辑
128浏览
2023-12-01

内核 C API

  • 面向过程风格的函数以swoole_开头,如swoole_dirname, swoole_init
  • 所有src/中的面向对象风格代码以sw开头,如swHashMap_add
  • 使用C的面向对象设计,swHashMap实际上就表示是类HashMap的方法或者静态方法
  • 函数名为*_new 会在函数内malloc结构体内存
  • 函数名为*_create需要在外部传入结构体内存指针,并且会bzero清空内存
  • 函数名为*_initcreate相同,但不会清空内存
  • 函数名为*_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
  • 普适性较强的包装APIZVAL_IS_ARRAY 不加sw_前缀

这部分API是临时性的,需要跟随ZendAPI,因此仅内部使用

PHP C++ API

  • 对于PHP ZendAPI的封装,必须放置到zend::命名空间中