前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手撸PHP扩展 0x01: 开发规范

手把手撸PHP扩展 0x01: 开发规范

作者头像
桶哥
发布2019-07-10 18:07:25
5550
发布2019-07-10 18:07:25
举报
文章被收录于专栏:PHP饭米粒PHP饭米粒

在开始开发之前,很有必要先说一下开发的规范问题。

1、全局PHP扩展函数的声明都放在文件php_study.h里面。例如:

代码语言:javascript
复制
PHP_FUNCTION(test);

2、全局PHP扩展函数以及扩展方法的参数声明放在study_*.ccstudy.cc里面。

3、没有别名的全局PHP扩展函数的实现放在study.cc里面,有别名的全局PHP扩展函数的实现放在对应的study_*.cc里面。

例如,study_coroutine_create的别名是Study\Coroutine::Create

4、扩展方法声明放在相应的study_*.cc文件里面,并且声明为static类型。例如:

代码语言:javascript
复制
static PHP_METHOD(study_coroutine, test);

5、头文件的引入关系如下:

代码语言:javascript
复制
study_*.cc 引入 对应的 study_*.h
study_*.h 引入 php_study.h和需要的include/*.h
study.cc 引入 php_study.h
php_study.h 引入 php内核提供的头文件
php_study.h 引入 include/study.h
include/study.h 引入 标准库函数
src/*.c 引入 对应的/include/*.h
include/*.h 按需引入 其他的include/*.h

6、只在项目根目录下的study_*.cc文件里面使用Zend API,不在src目录的代码里面使用Zend API

7、为了防止重复引入头文件,增加如下条件编译。例如,在study.h头文件里面写入:

代码语言:javascript
复制
#ifndef STUDY_H_
#define STUDY_H_


#endif /* STUDY_H_ */

注意宏的命名规范。

(待补充)

下一篇:整理文件

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PHP饭米粒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在开始开发之前,很有必要先说一下开发的规范问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档