Zephir  是一种类似于PHP的语言的高级语言,简化了PHP扩展的创建和可维护性. zephir扩展输出C代码 ,因此能被主流的C编译器编译和优化,如 gcc/clang/vc++.

它是优秀的Phalcon团队为开发第二版本框架所编写的新兴语言,其语法和PHP 非常相信,开发扩展非常方便,执行效率上据说是与C不分上下, 他的编译流程如下:Zephir -> C -> bin.

项目地址 https://github.com/phalcon/zephir  官网http://zephir-lang.com/

本文 主要分享Zephir在ubuntu下的安装与使用方法.

一.安装 

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

运行Zephir安装程序(编译/创建解析器):

  1. cd zephir
  2. $ ./install-json
  3. $ ./install -c

安装完成!

运行  zephir help

显示

  1.  _____              __    _
  2. /__  /  ___  ____  / /_  (_)____
  3.   / /  / _ \/ __ \/ __ \/ / ___/
  4.  / /__/  __/ /_/ / / / / / /
  5. /____/\___/ .___/_/ /_/_/_/
  6.          /_/

.....

表示安装成功.

二.使用Zephir开发PHP扩展

我们要做的第一件事就是生成一个扩展框架,这将提供给我们扩展的基本结构
下面这个例子我们创建了一个名为"utils"的扩展:

  1. $ zephir init utils

之后,当前目录下就有一个"utils"目录了:

utils/
    ext/
    utils/

ext/ 目录下包含的是编译器生成扩展所需的代码(C源码).
utils/ 目录下是我们的Zephir源码.

我们需要切到工作目录下,也就是utils下,开始编写代码:

  1. $ cd utils
  2. $ ls
  3. ext/ utils/ config.json

在 utils目录下,新建 greeting.zep文件 ,位置:zephir/utils/utils/greeting.zep

~/zephir/utils$ vi utils/greeting.zep

输入以下内容

namespace Utils;
class Greeting
{
public static function say()
{
echo "hello world!";
}
}

现在,需要告诉Zephir把我们的项目编译成扩展,这一步要在项目目录下执行:

  1. $ zephir build
  2. 如果顺利会打印以下信息:
    ...
    Extension installed!
    Add extension=utils.so to your php.ini
    Don't forget to restart your web server

需要在php.ini中加入extension=utils.so .然后再重启 web server.

打开phpinfo.php,就会看到utils 扩展已启用了.

好的,我们用PHP来调用:

<?php
echo Utils\Greeting::say(), "\n";

打印hello world!  成功了!

注意:由于zephir鼓励使用OOP,所以扩展代码里至少要包含一个类,才能写其它代码,如函数,否则会在build时报错.

如以上greeting.zep可以如以下写法.(包含类与函数)

namespace Utils;
class Greeting
{
public static function say()
{
echo "hello world!";
}
}

function saynihao()
{
echo "nihao !";
}

 

如果修改了zep文件代码,要重新build,并重启web server.

转载请注明:来自Lenix的博客 链接: http://blog.p2hp.com/archives/2281

用Zephir开发PHP扩展.
标签: