如何解决我需要 Zend 框架来用 C 编写 PHP 扩展吗?
我是否需要 Zend 扩展或更低级别的 Zend 引擎,才能从 ext.c、ext.h 和 config.m4 创建 ext.so? ext.h,ext.c 和 config.m4 文件就够了吗?
老问题:用c写php扩展需要Zend框架吗?
本教程解释了 ZEND。 https://docstore.mik.ua/orelly/webprog/php/ch14_01.htm
这个例子没有使用 ZEND: Compiling a PHP extention library on Ubuntu (Karmic Koala)
解决方法
这个问题没有什么意义;你误解了一些术语。
- “Zend”这个名字是 PHP 历史上两位关键人物的名字“Zeev”和“Andi”的混合词。他们将其用作多个项目的品牌。
- “Zend 框架”是(或曾经是)一个 PHP 应用程序框架,如 Symfony、CakePHP、Phalcon 等。它最近更名为 Laminas。它与扩展开发无关,也与 PHP 的核心无关,它只是由 Zeev 和 Andi 创立的。
- “Zend 引擎”是 PHP 4.0 以来运行的内部编译和执行系统。如果您有 PHP,那么您就有 Zend 引擎,这不是您必须单独添加的。
- PHP 提供了两组不同的扩展钩子:一组用于想要扩展PHP 语言的“PHP 扩展”(提供额外的函数、对象、流包装器等);另一个是“Zend 扩展”,它希望扩展底层编译和运行时系统(Zend 引擎)。您将使用的大多数扩展都是“PHP 扩展”; OpCache 和 XDebug 将是“Zend 扩展”的常见示例。
因此,要创建一个 PHP 扩展,您需要使用一组 API - C 函数和宏 - 为此目的定义,并根据 PHP 源代码的副本(包括Zend 引擎)。如果您正在对该语言进行较低级别的操作,则可以改为使用为“Zend 扩展”定义的 API 集,然后对其进行编译。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。