把扩展从PHP5升级到PHP-NG版 (1)
许多经常被使用的API方法改变了,比如HashTable的API;这篇文章将尽可能多的将这些实际影响扩展和核心代码编写的地方列出来。在读这边文章之前,强烈建议现将另一篇介绍PHPNG实现的文章phpng-int先好好阅读一下。 这篇文章不可能覆盖所有的情况。在这里将介绍一些被使用的最多最频繁的例子。我希望它能帮助大多数用户级的扩展升级。However if you did not find some information here, found a solution and think it may be useful for others - feel free to add your recipe。 General Advice尝试在PHPNG中编译你的扩展。查看编译错误和警告。这些信息起码能告诉你75%需要修改的地方。 在调试模式下编译和测试扩展(configure PHP with enable-debug)。运行时使用assert()方法将会捕获一些错误信息。你还可以看到有关内存泄露的信息。
1. Zval: PHPNG不再使用zval的二级指针。大多数出现的zval**变量和参数都将改变成zval*。相应的,使用在这些变量上的宏Z_*_PP()也需要变成Z_*_P()。 在很多地方,PHPNG是直接使用zval(从而消除了分配与重新分配),在这些情况下,相应的zval*就需要转换成纯zval,相应的宏也需要从Z_*P转换成Z_*(),以及相应的创建宏从ZVAL_*(var,…)转换成ZVAL_*( |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|