我是否需要Zend framework来用C编写PHP扩展?

我是否需要Zend framework来用C编写PHP扩展?,php,c,zend-framework,php-extension,m4,Php,C,Zend Framework,Php Extension,M4,从ext.c、ext.h和config.m4创建ext.so是否需要Zend扩展或更低级别的Zend引擎? 写ext.h、ext.c和config.m4文件就足够了吗 老问题:我是否需要Zend框架来用c编写php扩展 本教程介绍ZEND。 此示例不使用ZEND: 这个问题没有真正的意义;你误解了一些术语 “Zend”这个名字是“Zeev”和“Andi”的组合,这是PHP历史上两个关键人物的名字。他们用它作为他们几个项目的品牌 “Zend Framework”是(或曾经是)一个PHP应用程序

从ext.c、ext.h和config.m4创建ext.so是否需要Zend扩展或更低级别的Zend引擎? 写ext.h、ext.c和config.m4文件就足够了吗

老问题:我是否需要Zend框架来用c编写php扩展

本教程介绍ZEND。

此示例不使用ZEND:
这个问题没有真正的意义;你误解了一些术语

  • “Zend”这个名字是“Zeev”和“Andi”的组合,这是PHP历史上两个关键人物的名字。他们用它作为他们几个项目的品牌
  • “Zend Framework”是(或曾经是)一个PHP应用程序框架,如Symfony、CakePHP、Phalcon等。它最近被重命名。它与扩展开发无关,也与PHP的核心无关,它只是由Zeev和Andi创建的
  • “Zend Engine”是PHP自PHP4.0以来运行的内部编译和执行系统。如果你有PHP,你有Zend引擎,它不是你必须单独添加的东西
  • PHP提供了两组不同的扩展钩子:一组用于“PHP扩展”,用于扩展PHP语言(提供附加函数、对象、流包装器等);另一个是“Zend扩展”,它希望扩展底层编译和运行时系统(Zend引擎)。您将使用的大多数扩展是“PHP扩展”;OpCache和XDebug将是“Zend扩展”的常见示例

因此,要创建一个PHP扩展,需要使用为此目的定义的一组API-C函数和宏,并根据PHP源代码(包括Zend引擎)的副本编译结果。如果您正在对该语言进行较低级别的操作,您可以使用为“Zend extensions”定义的一组API,并对其进行编译。

您不需要Zend framework。然而,PHP在zend引擎上运行,您编写的任何扩展都可能需要在某种程度上使用zend引擎API,而不是共享一个名称,zend Framework(一个用户陆地PHP框架,现已改名为)与zend引擎(或zend扩展)完全没有任何关系,哪些与语言本身相关。我是否需要Zend扩展或较低级别的Zend引擎来从ext.c、ext.h和config.m4创建ext.so?取决于扩展需要做什么。大多数情况下,仅仅使用Zend引擎API(例如,它提供的创建/操作PHP对象的方法等)就足够了。但是,如果您需要扩展zend引擎本身,则需要zend扩展非常感谢您的澄清。事实上,我对创建PHP扩展的许多不同方法,以及Zend引擎和Zend框架这两种完全不同的东西感到非常困惑。我在PHP开发文件夹中找到了非常有用的示例,如PHP-8.0.2-src/ext/standard/,以及PHP-8.0.2-src/Zend/中的大多数函数。我的结论是,出于兼容性的考虑,最好只有一个函数接受并返回Zend扩展中编写的参数,其余的都是我用纯C编写的。但是,还没有任何工作。@GintareStatkute您可能已经发现了它,但是还有一个ext/skeleton,它只是一个非常简单的扩展的示例。查看PECL中的一些简单示例可能也会有所帮助。祝你好运