PHP
octansneu
这个作者很懒,什么都没留下…
展开
-
PHP扩展-扩展的生成和编译
首先说明一下,PHP扩展有两种编译方式: 方式一:在编译PHP时直接将扩展编译进去 方式二:扩展被编译成.so文件,在php.ini里配置加载路径; 以下开始说明创建PHP扩展并编译的步骤: 下载PHP源码,并解压,在源码的根目录下开始操作, 1. 使用ext_skel生成扩展框架,如下: ➜ php-5.6.24 cd ~/Downloads/tmp/php-5.6.24 ➜原创 2016-11-17 10:16:39 · 431 阅读 · 0 评论 -
PHP扩展-生命周期和内存管理
1. PHP源码结构 PHP的内核子系统有两个,ZE(Zend Engine)和PHP Core. ZE负责将PHP脚本解析成机器码(也成为token符)后,在进程空间执行这些机器码;ZE还负责内存管理,变量作用域管理和对PHP函数的调度管理。 PHP Core负责和SAPI层的通信;PHP Core也为safe_mode, open_basedir的检查提供了统一控制层;PHP C原创 2016-11-18 09:59:34 · 398 阅读 · 0 评论 -
PHP扩展-如何使用文件config.m4
config.m4文件用于指定正在开发的扩展在类unix系统下构建时支持的选项,指定此扩展需要哪些库以及哪些源文件;使用 GNU autoconf 语法编写。 注意需要重新执行phpize,config.m4的修改才会生效; 在执行./configure时,所有的输出将记录到config.log里,通过查看此文件可以调试config.m4。 如何从零开始创建一个PHP扩展可以参见文章PH原创 2016-11-21 14:39:36 · 2026 阅读 · 0 评论 -
PHP_VERSION_ID是如何定义的
PHP_VERSION_ID是一个整数,表示当前PHP的版本,从php5.2.7版本开始使用的,比如50207表示5.2.7。 和PHP版本相关的宏定义在文件 phpsrcdir/main/php_version.h里,如下 // 文件位置: phpsrc/main/php_version.h /* automatically generated by configure */ /*原创 2016-11-22 09:38:36 · 1290 阅读 · 0 评论