讨论:如何编写PHP扩展

使用C / C++扩展PHP的优点和缺点:
优势uff1a
效率或效率
减少PHP脚本的复杂性。在极端情况下,您只需在PHP脚本中调用扩展实现函数,并将所有函数扩展为实现。
缺点是显而易见的:
复杂的发展
可维护性
最长的开发周期是最简单的例子。当你使用PHP脚本,如果你找到一个判断条件是错误的,你只需修改的行并保存它,那么它将立即生效。如果你是用C或C++编写PHP扩展,你需要修改源代码、重新编译、重新加载到PHP,然后重新启动Apache得到结果。
如果你熟悉C,它不是写一个PHP extension.php本身来简化您的开发提供了一个框架,一个很难的事情。
开始开发一个PHP扩展的最简单的方法,是通过使用PHP框架向导ext_skel提供,它将产生一个PHP扩展的基本代码,使用它,你必须先下载PHP源代码,或开发包,进入PHP源ext目录,你会发现这个工具。
生成一个扩展:
。/ ext_skel -- extname = myext
输入/ myext,选择扩展型:
六config.m4
选择以下两种类型之一:
复制代码代码如下所示:
(依赖于外部库)
DNL php_arg_with(myext,为myext支持,
DNL确保注释对齐:
DNL {——myext包括myext支持})
摆脱 / /图
php_arg_with(myext,为myext支持,
确保注释是对齐的:
{——myext包括myext支持})

将 / / /或(不依赖外部库(myext,DNL)php_arg_enable是否启用myext支持,DNL确保注释对齐:DNL --使myext使myext {支持}) / /删除DNL
修改php_myext H头文件:
/ / php_function(confirm_myext_compiled); / *测试,删除后..
/修改
php_function(myext); / *测试,删除后..
修改myext C:

/ / zend_function_entry myext_functions { } = { {
/ / php_fe(confirm_myext_compiled,null)测试删除后。**。
零,零}或{零,必须 /在最后一行myext_functions { }。
/