iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >如何使用Zephir轻松构建PHP扩展
  • 375
分享到

如何使用Zephir轻松构建PHP扩展

2024-04-02 19:04:59 375人浏览 泡泡鱼
摘要

目录简介你该安装的第一个扩展ZephirZephir 安装结语简介 比如,在 PHP 中需要与 sqlite3 交互,我们可以自己写方法与之进行连接,再写 SQL 语句请求数据。然而

简介

比如,在 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扩展的资料请关注编程网其它相关文章!

--结束END--

本文标题: 如何使用Zephir轻松构建PHP扩展

本文链接: https://www.lsjlt.com/news/127043.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用Zephir轻松构建PHP扩展
    目录简介你该安装的第一个扩展ZephirZephir 安装结语简介 比如,在 PHP 中需要与 SQLite3 交互,我们可以自己写方法与之进行连接,再写 SQL 语句请求数据。然而...
    99+
    2024-04-02
  • 如何解析Zephir写PHP扩展
    这篇文章给大家分享的是有关如何解析Zephir写PHP扩展的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。众所周知 要写PHP扩展需要用c或者c++ 语言 配合 ext_skel 实现这样对一个没接触过c++的PH...
    99+
    2023-06-15
  • 使用PHP trait DTO构建可扩展的应用架构
    随着业务需求的增加和系统规模的扩大,构建可扩展的应用架构变得越来越重要。传统的开发方式往往会导致代码的冗杂和难以维护,为了解决这些问题,我们可以使用PHP中的trait和DTO(Data Transfer Object)来构建可扩展的应用架...
    99+
    2023-10-21
    PHP dto trait
  • PHP SPL 扩展入门指南:初学者如何轻松掌握
    SPL 概述 SPL(标准 PHP 库)扩展是 PHP 的一个标准扩展,它包含了一系列面向对象的数据结构和算法,可以帮助开发者更轻松地编写复杂的程序。SPL 提供了各种各样的数据类型,如数组、队列、栈、集合等,以及一些常用的算法,如排序...
    99+
    2024-02-03
    PHP SPL 数据结构 算法 迭代器 数组 队列
  • 轻松掌握PHP扩展开发技巧:创建你自己的PHP模块
    准备工作 在开始开发PHP模块之前,你需要确保已经满足以下条件: 你已经安装了PHP开发环境。 你熟悉PHP语言。 你了解PHP扩展的原理。 创建PHP模块 创建一个PHP模块的步骤如下: 打开你的文本编辑器,创建一个新文件。 在...
    99+
    2024-02-11
    PHP模块 扩展开发 开发技巧
  • 如何使用 PHP 扩展函数?
    php 扩展函数是核心组件之外的附加功能,可扩展 php 的功能。安装扩展函数后,在 php.ini 中启用它们,然后使用扩展函数,例如 imagick 扩展用于处理图像。您可以使用命令...
    99+
    2024-04-16
    php 扩展函数 composer
  • 如何使用PHP的runkit扩展
    这篇文章主要介绍了如何使用PHP的runkit扩展,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php的框架有哪些php的框架:1、Laravel,Laravel是一款免费并...
    99+
    2023-06-15
  • 如何使用 PHP 函数扩展?
    通过编写 php 扩展模块,可以添加新函数或修改现有函数,实现自定义需求。具体步骤包括:创建 php 源代码文件;使用 phpize 初始化扩展;运行 configure 脚本生成 ma...
    99+
    2024-04-16
    函数 php扩展
  • Node.js Koa初学者指南:轻松构建快速、可扩展的Web应用程序
    简介 Koa是一个轻量级的Node.js框架,旨在构建快速、可扩展的Web应用程序。它比流行的Express框架更小、更灵活,使其成为快速构建API和微服务的理想选择。 安装 要安装Koa,请在终端中运行以下命令: npm instal...
    99+
    2024-02-08
    Koa Node.js Web应用程序 框架 快速 可扩展
  • PHP的runkit扩展如何使用
    目录动态修改常量安装查看超全局变量键方法相关操作类方法相关操作总结动态修改常量 define('A', 'TestA'); runkit_constant_redefine('...
    99+
    2024-04-02
  • 如何使用 PHP 函数扩展?
    通过编写 php 扩展模块,可以添加新函数或修改现有函数,实现自定义需求。具体步骤包括:创建 php 源代码文件;使用 phpize 初始化扩展;运行 configure 脚本生成 ma...
    99+
    2024-04-16
    函数 php扩展
  • PHP中DirectIO扩展如何使用
    本篇文章给大家分享的是有关PHP中DirectIO扩展如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是Direct IODirect IO 其实是 Linux 操作...
    99+
    2023-06-20
  • 如何使用 Mockery 扩展 PHP 函数?
    使用 mockery 来扩展 php 函数,通过以下步骤模拟函数的行为:安装 mockery 库。使用 mockery::mock('alias:函数名称') 创建模拟函数,其中 ali...
    99+
    2024-04-11
    php函数 mockery composer
  • 如何使用 Prophecy 扩展 PHP 函数?
    使用 prophecy 扩展 php 函数可通过以下步骤实现:使用 composer 安装 prophecy。使用 prophesize() 方法创建桩对象。使用 will() 方法配置...
    99+
    2024-04-11
    php prophecy composer
  • 如何使用 RespectPHP 扩展 PHP 函数?
    respectphp 扩展 php 的验证功能,让开发者轻松验证数据类型。它提供了广泛的验证规则,支持链接形成复杂、可读的验证链。常见的用途包括表单验证,其中 respectphp 与 ...
    99+
    2024-04-11
    php函数 composer
  • 如何正确使用PHP JSON扩展
    本篇内容介绍了“如何正确使用PHP JSON扩展”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JSON 是一项旨在允许中间件创建使用 Jav...
    99+
    2023-06-17
  • 如何使用 Hamcrest 扩展 PHP 函数?
    是的,通过使用 hamcrest 可以扩展 php 函数以增强测试可读性:使用 extend() 方法扩展函数,将函数名和 hamcrest 匹配器作为参数。对于泛型函数,指定类型提示。...
    99+
    2024-04-11
    php hamcrest composer
  • 如何使用 SinonPHP 扩展 PHP 函数?
    sinonphp 允许扩展或覆盖 php 函数和方法,用于单元测试或定制代码行为。它提供了以下主要功能:扩展函数:使用 sinonphp\stub 函数扩展已有的 php 函数。扩展方法...
    99+
    2024-04-11
    php sinonphp composer 作用域
  • 使用PHP MVC架构构建高可扩展性应用的实战案例
    一、准备工作 在开始构建应用程序之前,我们需要先准备一些必要的东西: 一个PHP开发环境,例如PHPStorm或Visual Studio Code。 一个MySQL数据库。 一个文本编辑器,例如Notepad++或Sublime T...
    99+
    2024-02-05
    PHP MVC 应用程序 高可扩展性 易于维护
  • 如何在 Rust中创建 PHP 扩展
    这期内容当中小编将会给大家带来有关如何在 Rust中创建 PHP 扩展,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。可以编译的Rust代码到一个库里面,并写为它一些C的头文件,在C中为被调用的PHP做一个...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作