由于php7内核升级,现在开发php扩展,是不是都要开发两个:php5和php7版的?
我查看过鸟哥的几个扩展,都是新拉个分支来写php7版的扩展;
而swoole扩展,倒是使用了个php7-swapper.h来包装,但是它里面使用的php内核的东西相对来说比较好用宏来操作。
比如,在php5版扩展下有如下定义:
typedef struct _test_obj {
zend_object std; // 放到头部
my_test_struct *my;
int count;
} test_obj;
根据php7扩展改进意见,该结构体需要修改为:
typedef struct _test_obj {
my_test_struct *my;
int count;
zend_object std; // 放到尾部
} test_obj;
等等,要是使用 宏
来包装,就会让代码看起来比较丑点,但是如果不这样,分两个分支开发的话,那每次都要修改两份代码,也比较费事。
不知道各位老大有什么好的思路,求赐教,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
用户体验最佳的方式就是通过宏来写,这样用户就不必选择版本。当然这样写的弊端就是两块代码交叉会混杂,毕竟PHP7对基础架构改动颇大,虽然PHP7中自带的大部分宏还遵循老版本的写法,但堆上申请变量,一些与引用机制相关的,以及其他常用的宏都有所改变,所以合并写一块挑战还是挺大的。如果觉得麻烦,就如鸟哥一样分开写吧,目前大部分扩展也已分开的模式先进行编写,等较成熟时再合并到一起。
@有明 多谢,现在确定先分开写,等php7彻底稳定了再看看。