Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
study
提交
2e2f6532
S
study
项目概览
OpenDocCN
/
study
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
study
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2e2f6532
编写于
5月 31, 2019
作者:
C
codinghuang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update: 更新
上级
b29227c1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
27 addition
and
9 deletion
+27
-9
docs/《PHP扩展开发》-协程-开发规范.md
docs/《PHP扩展开发》-协程-开发规范.md
+17
-9
docs/《PHP扩展开发》-协程-梳理一下架构.md
docs/《PHP扩展开发》-协程-梳理一下架构.md
+10
-0
未找到文件。
docs/《PHP扩展开发》-协程-开发规范.md
浏览文件 @
2e2f6532
...
...
@@ -8,21 +8,32 @@
PHP_FUNCTION
(
test
);
```
然后全局
`PHP`
扩展函数的实现放在
`study_*
.cc`
里面。
2、全局
`PHP`
扩展函数以及扩展方法的参数声明放在
`study_*.cc`
、
`study
.cc`
里面。
2、类的方法声明放在相应的
`study_*.cc`
文件里面,并且声明为
`static`
类型。例如:
3、没有别名的全局
`PHP`
扩展函数的实现放在
`study.cc`
里面,有别名的全局
`PHP`
扩展函数的实现放在对应的
`study_*.cc`
里面。
例如,
`study_coroutine_create`
的别名是
`Study\Coroutine::Create`
。
4、扩展方法声明放在相应的
`study_*.cc`
文件里面,并且声明为
`static`
类型。例如:
```
c++
static
PHP_METHOD
(
study_coroutine
,
test
);
```
3、扩展函数以及扩展方法的参数声明放在
`study_*.cc`
、
`study.cc`
里面。
5、头文件的引入关系如下:
4、只在项目根目录下的
`study_*.cc`
文件里面使用
`Zend API`
,不在
`src`
目录的代码里面使用
`Zend API`
。
```
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
```
5、用到的标准库函数都在
`include/study.h`
里面引入
。
6、只在项目根目录下的
`study_*.cc`
文件里面使用
`Zend API`
,不在
`src`
目录的代码里面使用
`Zend API`
。
6
、为了防止重复引入头文件,增加如下条件编译。例如,在
`study.h`
头文件里面写入:
7
、为了防止重复引入头文件,增加如下条件编译。例如,在
`study.h`
头文件里面写入:
```
c++
#ifndef STUDY_H_
...
...
@@ -34,8 +45,6 @@ static PHP_METHOD(study_coroutine, test);
注意宏的命名规范。
7、只在
`php_study.h`
头文件里面引入
`PHP`
相关的头文件。
`study_*.cc`
只引入
`php_study.h`
文件,不去引入
`include/study.h`
文件。
`study.h`
文件是被
`php_study.h`
引入的。
(待补充)
[
下一篇:整理文件
](
《PHP扩展开发》-协程-整理文件.md
)
\ No newline at end of file
docs/《PHP扩展开发》-协程-梳理一下架构.md
浏览文件 @
2e2f6532
...
...
@@ -15,3 +15,13 @@ study_coroutine.cc(文件)
study_coroutine_util.cc(文件)
```
我们在
`study_coroutine.h`
文件里面写下如下内容:
```
c++
#ifndef STUDY_COROUTINE_H
#define STUDY_COROUTINE_H
#endif
/* STUDY_COROUTINE_H */
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录