zoukankan      html  css  js  c++  java
  • 用PHP写PHP7扩展,超级简单对吧!

     【图片打不开,请用代理】

    介绍:

    PHP扩展是编译库,它允许在您的PHP代码中使用特定的功能(主要是使用C编写的php扩展)。

    例如,您需要使用PHP使用SQLite3,您可以实现自己的方法和功能来连接到Sqlite3,从您的应用程序级别向DB进行查询,但这不是一项简单的任务,插件不仅是您自己的要求,但其他开发人员需要做类似的事情。

    所以有人开发了它并将其作为php扩展发送,您可以安装此扩展并php.ini使用以下内容启用它extension=sqllite3.so,并且您可以通过您的应用程序级别访问所有sqlite3功能,在这种情况下是php。

    你的第一次扩展

    ZEPHIR:

    根据zephir官方文档,您可以将其定义如下

    一种开源的,高级/域特定的语言,旨在简化PHP扩展的创建和可维护性,重点关注类型和内存安全性。

    特征:

    • 输入 系统:动态/静态。
    • 内存安全:不允许使用指针或直接内存管理。
    • 编译模型:提前。
    • 内存模型:任务本地垃圾收集。

    这个怎么运作 ?

    您编写PHP代码并将您的代码编译为c扩展名,最后您可以将其添加到您的php.ini文件中。

    这是编译方案的例子:

     

    编制方案

    • 让我们以Hello world扩展为例。
     
     

    Zephir安装

    要求 :

    • gcc> = 4.x / clang> = 3.x
    • re2c 0.13或更高版本
    • gnu make 3.81或更高版本
    • autoconf 2.31或更高版本
    • automake 1.14或更高版本
    • libpcre3
    • php开发标题和工具
    • re2c
    • PHP-ZEPHIR解析器

    如果您使用的是Ubuntu,则可以通过以下方式安装所需的软件包:

    sudo apt-get update 
    sudo apt-get install git gcc make re2c php7.0 php7.0-json php7.0-dev libpcre3-dev

    由于Zephir是用PHP编写的,因此您需要安装最新版本的PHP 7.2,并且必须在您的控制台中使用它。

     

    此外,请确保您还安装了PHP开发库以及PHP安装。

     

    脚步

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

    cd zephir

    ./install -c

    验证您的安装

    zephir帮助

    如果一切顺利,您应该在屏幕上看到以下帮助:

     

    扩展骨架:

    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我们的项目必须编译并生成扩展:

    zephir build

    最初,并且只是第一次执行许多内部命令,生成必要的代码和配置以将此类导出到PHP扩展,如果一切顺利,您将在输出的末尾看到以下消息:

     

    zephir构建输出

    安装验证:

     

    从PHP测试您的扩展:

     
    <?php
    echo HelloWorldGreeting::say()."
    ";
    运行以下命令,php zephir_helloworld.php您的输出应该是以下Hello World!

    结论:

    如果你是软件工程师,php开发人员需要开发和使用php如何工作以及如何构建自己的扩展我建议zephir有一个非常强大的文档和felxability也是它的内存安全管理。但是由于它有一些限制,根据以下Zephir被设计为安全,所以它不实现指针或手动内存管理,所以如果你是一个C程序员,你会觉得Zephir不如C强大但比C更友好。

    参考文献:

     
  • 相关阅读:
    Stream中的map
    项目中的process.bpmn的读-过程
    windows10打开switchHost,提示无修改权限
    Windows10安装node.js
    工作中的小发现
    启动redis
    call apply bin 的区别
    利用promise 让 函数按序执行
    uni-app 小程序
    插件 Generate css tree
  • 原文地址:https://www.cnblogs.com/sunsky303/p/10837532.html
Copyright © 2011-2022 走看看