PHP扩展内如何定义类、方法?
浏览:2118次 出处信息
PHP 类底层数据结构为 zend_class_entry 结构体,下面是摘录源代码 稍微了解下即可。
可以看到 有类名、继承父类入口,函数表,静态资源,属性(资产),各种魔术方法,继承接口,构造/析构函数等。
所以需要首先声明 类
那么类的定义写在哪里呢?
这要看你所需要的初始化阶段,一般在 PHP_MINIT_FUNCTION 阶段或 ZEND_MINIT_FUNCTION 内,即 当扩展模块加载时(PHP 启动时/代码内手动load时)处理。
当然看业务需求 也可以在 每个Request请求时处理 PHP_RINIT_FUNCTION 内。
这里有个小技巧,如果可能尽量把类入口定义 抽出到公共区域,因为你在定义各种属性方法,使用函数时,都会需要类 ce 入口作为参数,这里我们建议写在文件尽量考前的位置(比如 include 之后)。
定义完 zend_class_entry 就完了?
当然不可能,你可能想到了 我 TM 类名还没设置呢就完了。。。。
接着重新编译ini引入扩展 就可以尝试 使用对象了
当然对类操作还有很多其他高级功能,比如说: 定义/初始化类属性,定义类常量,类方法互相调用,静态方法,类继承类/接口,类命名空间等等,后续一一讲解记录。
建议继续学习:
- chrome扩展应用开发教程之开发chrome应用基础 (阅读:5486)
- PHP内核介绍及扩展开发指南―高级主题 (阅读:4477)
- chrome扩展应用开发教程之调试和打包上线 (阅读:4320)
- 深入理解PHP原理之扩展载入过程 (阅读:4301)
- 编写python的C语言扩展 (阅读:4210)
- Mediawiki扩展编写实战 (阅读:4211)
- PHP内核介绍及扩展开发指南―类和对象 (阅读:3886)
- 用C/C++扩展你的PHP (阅读:3638)
- PHP7扩展开发之hello word (阅读:3410)
- PHP扩展开发:第一个扩展 (阅读:3353)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:PHP内存耗尽错误分析
后一篇:wordpress/nginx安全设置 >>
文章信息
- 作者:wudi 来源: <?php $blog->author = "wudi";
- 标签: 扩展
- 发布时间:2016-03-30 15:57:09
建议继续学习
近3天十大热文
-
[1156] WordPress插件开发 -- 在插件使用 -
[62] 解决 nginx 反向代理网页首尾出现神秘字 -
[50] Java开发岗位面试题归类汇总 -
[44] web开发设计人员不可不用的在线web工具和 -
[33] Rax 系列教程(长列表) -
[33] 手机产品设计方向 -
[32] 一句话crontab实现防ssh暴力破解 -
[30] 如何建立合适的索引? -
[28] 程序员疫苗:代码注入 -
[28] oracle技术方面的路线
