如何使用Zephir轻松构建PHP扩展
时间:2021-12-19
来源:互联网
标签:
通过PHP扩展,我们可以在php代码中使用一些特定的方法(大部分的 php扩展都是用C写的)。本文将介绍如何使用Zephir轻松构建PHP扩展。
目录
简介
你该安装的第一个扩展
Zephir
Zephir 安装
结语
简介
比如,在 PHP 中需要与 SQLite3 交互,我们可以自己写方法与之进行连接,再写 SQL 语句请求数据。然而,这都是些既琐碎又重复度相当高的工作,因此,所有开发者对插件的需求呼之欲出。
现在,这款插件已经诞生了。你只需像安装其他扩展一样进行安装,然后在 'php.ini' 文件执行 'extension=sqllite3.so',就可以在你的 php 项目里对 sqlite3 进行访问了。
你该安装的第一个扩展
Zephir
官网文档给出的定义是:
一种开源的高级语言,旨在简化 PHP 扩展的创建和可维护性,重点关注类型和内存安全性。
特点:
类型:动态 / 静态。
内存安全性:不允许指针或者直接内存管理。
编译模式:提前编译。
内存模型:本地任务垃圾回收机制。
工作原理?
把你写好的 php 代码编译成 c,然后你可以将其以扩展的形式添加到 'php.ini' 文件中。
下面是编译方案的例子:

编译方案
让我们从 Hello world 的扩展开始吧。
Zephir 安装
配置要求:
gcc >= 4.x/clang >= 3.x
re2c 0.13 or later
gnu make 3.81 or later
autoconf 2.31 or later
automake 1.14 or later
libpcre3
php development headers and tools
re2c
php-zephir-parser
如果你是用 Ubuntu, 可以采取如下方式安装:
sudo apt-get update sudo apt-get install git gcc make re2c php7.0 php7.0-json php7.0-dev libpcre3-dev
参考下图命令,确认安装了较新的 PHP 版本:

参考下图命令,确认有 PHP 开发库:

然后
git clone https://github.com/phalcon/zephir
cd zephir
./install -c
验证是否安装正确:
zephir help
如果一切就绪,你应该能在你的屏幕上看到以下帮助信息:

扩展初始化:
zephir init helloworld
然后,一个名字为 “helloworld” 的目录在当前工作目录中被创建:

扩展目录结构:
ext:包含被编译器用来生成扩展的代码。
helloworld:这个目录与我们的扩展同名。我们在这个目录中放置 Zephir 代码。
config.json:这个文件包含我们可用于更改 Zephir 与 / 或此扩展的行为的配置
添加我们的第一个类:
在 helloworld 目录中.
Zephir 的设计初衷是用来生成面对对象的扩展,接下来我们先添加一个初始类。
我们先来在扩展中创建一个 helloworld 类,使用此类来渲染Hello World!。
helloworld/helloworld/greeting.zep
namespace HelloWorld;
class Greeting
{
public static function say()
{
echo "Hello World!";
}
}接下来命令行执行以下命令来编译扩展:
zephir build
第一次运行以上命令时,会初始化一些东西。如果一些顺利的话,会输出以下内容:

zephir build output
检测下是否安装成功:

在 PHP 代码中测试:
zephir_helloworld.php
<?php echo HelloWorld\Greeting::say()."\n";
接下来运行命令:
php zephir_helloworld.php
你可以可以看到输出
Hello World!
结语
如果你是 PHP 软件工程师,对内存管理等底层语言的编程方式不是特别熟悉,可以尝试从 Zephir 开始写一些简单的扩展。
Zephir 内部已经做好了内存管理,但是基于其内存安全的设计,你无法使用 C 语言的强大手动内存管理功能,如果你是 C 程序员,你会觉得 Zephir 更加简单易用,但是在有些地方可能不够强大。
以上就是如何使用Zephir轻松构建PHP扩展的详细内容,更多关于使用Zephir轻松构建PHP扩展的资料请关注PHP爱好者其它相关文章!
-
光端机是什么设备 光端机的工作原理及作用 光端机的分类 时间:2025-12-18 -
融合宽带是什么意思 融合宽带和单宽带区别 时间:2025-12-18 -
什么是AP隔离?AP隔离开关有什么用 时间:2025-12-17 -
AP隔离在哪里设置 AP隔离开启还是关闭好 时间:2025-12-17 -
USB Host接口有什么用?USB Host和USB Device接口的区别 时间:2025-12-16 -
HDMI怎么区分1.4和2.0?HDMI1.4和2.0的区别 时间:2025-12-16
今日更新
-
全球虚拟货币监管差异解析:市场影响与未来趋势
阅读:18
-
B站主入口-Bilibili官网快捷登录通道
阅读:18
-
庞博文梗是什么梗?揭秘脱口秀演员庞博爆火段子背后的幽默密码,看完笑到停不下来!
阅读:18
-
加密货币合规成本攀升 交易费用将迎来上涨?
阅读:18
-
番茄免费小说阅读入口-番茄小说在线阅读全本免费
阅读:18
-
极兔快递单号快速查询入口-极兔快递官网精准查询
阅读:18
-
螃蟹梗是网络热梗,指网友用螃蟹表情包调侃生活困境,幽默又扎心,快来了解这个爆火梗的由来和用法吧!
阅读:18
-
比特币矿机关机价计算指南:下跌行情中的关键指标
阅读:18
-
TikTok免安装极速入口-TikTok在线高清看视频免费入口
阅读:18
-
螃蟹是什么梗?揭秘网络热词螃蟹的搞笑来源和流行用法!
阅读:18










