PHP扩展内如何定义类、方法?
浏览:1295次 出处信息
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应用基础 (阅读:4660)
- PHP内核介绍及扩展开发指南―高级主题 (阅读:3561)
- 深入理解PHP原理之扩展载入过程 (阅读:3427)
- chrome扩展应用开发教程之调试和打包上线 (阅读:3519)
- 编写python的C语言扩展 (阅读:3371)
- Mediawiki扩展编写实战 (阅读:3159)
- PHP内核介绍及扩展开发指南―类和对象 (阅读:2949)
- 用C/C++扩展你的PHP (阅读:2624)
- 检测文本正文是否包含有特定词的PHP扩展 (阅读:2445)
- PHP扩展开发:第一个扩展 (阅读:2314)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:PHP内存耗尽错误分析
后一篇:wordpress/nginx安全设置 >>
文章信息
- 作者:wudi 来源: <?php $blog->author = "wudi";
- 标签: 扩展
- 发布时间:2016-03-30 15:57:09
建议继续学习
近3天十大热文
- [67] Go Reflect 性能
- [67] Oracle MTS模式下 进程地址与会话信
- [67] 如何拿下简短的域名
- [61] IOS安全–浅谈关于IOS加固的几种方法
- [60] 图书馆的世界纪录
- [59] 【社会化设计】自我(self)部分――欢迎区
- [58] android 开发入门
- [56] 视觉调整-设计师 vs. 逻辑
- [49] 给自己的字体课(一)——英文字体基础
- [47] 界面设计速成