【图片打不开,请用代理】php
PHP扩展是编译库,它容许在您的PHP代码中使用特定的功能(主要是使用C编写的php扩展)。git
例如,您须要使用PHP使用SQLite3,您能够实现本身的方法和功能来链接到Sqlite3,从您的应用程序级别向DB进行查询,但这不是一项简单的任务,插件不只是您本身的要求,但其余开发人员须要作相似的事情。程序员
因此有人开发了它并将其做为php扩展发送,您能够安装此扩展并php.ini
使用如下内容启用它extension=sqllite3.so
,而且您能够经过您的应用程序级别访问全部sqlite3功能,在这种状况下是php。github
根据zephir官方文档,您能够将其定义以下sql
一种开源的,高级/域特定的语言,旨在简化PHP扩展的建立和可维护性,重点关注类型和内存安全性。
特征:json
这个怎么运做 ?canvas
您编写PHP代码并将您的代码编译为c扩展名,最后您能够将其添加到您的php.ini
文件中。安全
这是编译方案的例子:php7
编制方案工具
要求 :
若是您使用的是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”的目录:
扩展目录结构
添加咱们的头等舱:
在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 HelloWorld\Greeting::say()."\n";
运行如下命令,
php zephir_helloworld.php
您的输出应该是如下Hello World!
若是你是软件工程师,php开发人员须要开发和使用php如何工做以及如何构建本身的扩展我建议zephir有一个很是强大的文档和felxability也是它的内存安全管理。可是因为它有一些限制,根据如下Zephir被设计为安全,因此它不实现指针或手动内存管理,因此若是你是一个C程序员,你会以为Zephir不如C强大但比C更友好。
参考文献: