1. 文章
  2. 文章详情

使用 Zephir 轻松构建 PHP 扩展

Zephir

一种开源的高级语言,旨在简化 PHP 扩展的创建和可维护性,重点关注类型和内存安全性。官网:https://zephir-lang.com/zh-cn

特点:

  • 类型:动态 / 静态。
  • 内存安全性:不允许指针或者直接内存管理。
  • 编译模式:提前编译。
  • 内存模型:本地任务垃圾回收机制。

工作原理

把你写好的 php 代码编译成 c,然后你可以将其以扩展的形式添加到 'php.ini' 文件中。

下面是编译方案的例子:

使用 Zephir 轻松构建 PHP 扩展

编译方案

让我们从 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 版本:

使用 Zephir 轻松构建 PHP 扩展

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

使用 Zephir 轻松构建 PHP 扩展

然后

git clone https://github.com/phalcon/zephir

cd zephir

./install -c

验证是否安装正确:

zephir help

如果一切就绪,你应该能在你的屏幕上看到以下帮助信息:

使用 Zephir 轻松构建 PHP 扩展

扩展初始化:

zephir init helloworld

然后,一个名字为 “helloworld” 的目录在当前工作目录中被创建:

使用 Zephir 轻松构建 PHP 扩展

扩展目录结构:

  • 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 轻松构建 PHP 扩展

zephir build output

检测下是否安装成功:

使用 Zephir 轻松构建 PHP 扩展

在 PHP 代码中测试:

zephir_helloworld.php

echo HelloWorld\Greeting::say()."\n";

接下来运行命令:

php zephir_helloworld.php

输出 Hello World!

文章转自:https://learnku.com/php/t/25350
更多文章:https://learnku.com/laravel/c/translations

发表评论

登录后才能评论

评论列表(0条)