加入收藏 | 设为首页 | 会员中心 | 我要投稿 成都站长网 (https://www.028zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-12-21 15:07:15 所属栏目:PHP教程 来源:转载
导读: 在开始开发之前,很有必要先说一下开发的规范问题。
1、全局PHP扩展函数的声明都放在文件php_study.h里面。例如:
PHP_FUNCTION(test);
2、全局PHP扩展函数以及扩展方法的参数声明放在stud

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

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

PHP_FUNCTION(test);

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

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

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

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

static PHP_METHOD(study_coroutine, test);

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

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、为了防止重复引入头文件,增加如下条件编译。例如php扩展,在study.h头文件里面写入:

#ifndef STUDY_H_
#define STUDY_H_


#endif /* STUDY_H_ */

注意宏的命名规范。

(待补充)

(编辑:成都站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!