经过 PHP 扩展, 咱们能够在 php 代码中使用一些特定的方法(大部分的 php 扩展都是用 C 写的)。php
好比,在 PHP 中须要与 SQLite3 交互,咱们能够本身写方法与之进行链接,再写 SQL 语句请求数据。然而,这都是些既琐碎又重复度至关高的工做,所以,全部开发者对插件的需求呼之欲出。git
如今,这款插件已经诞生了。你只需像安装其余扩展同样进行安装,而后在 'php.ini' 文件执行 'extension=sqllite3.so',就能够在你的 php 项目里对 sqlite3 进行访问了。程序员
官网文档给出的定义是:github
一种开源的高级语言,旨在简化 PHP 扩展的建立和可维护性,重点关注类型和内存安全性。sql
特色:编程
工做原理?json
把你写好的 php 代码编译成 c,而后你能够将其以扩展的形式添加到 'php.ini' 文件中。安全
下面是编译方案的例子:bash
编译方案php7
配置要求 :
若是你是用 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” 的目录在当前工做目录中被建立:
扩展目录结构:
添加咱们的第一个类:
在 helloworld 目录中 .
Zephir 的设计初衷是用来生成面对对象的扩展,接下来咱们先添加一个初始类。
咱们先来在扩展中建立一个 helloworld 类,使用此类来渲染 Hello World!
。
helloworld/helloworld/greeting.zep
1 namespace HelloWorld; 2 3 class Greeting 4 { 5 6 public static function say() 7 { 8 echo "Hello World!"; 9 } 10 }
接下来命令行执行如下命令来编译扩展:
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 更加简单易用,可是在有些地方可能不够强大。