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下的安装与使用方法.
一.安装
- $ git clone https://github.com/phalcon/zephir
运行Zephir安装程序(编译/创建解析器):
- cd zephir
- $ ./install-json
- $ ./install -c
安装完成!
运行 zephir help
显示
- _____ __ _
- /__ / ___ ____ / /_ (_)____
- / / / _ \/ __ \/ __ \/ / ___/
- / /__/ __/ /_/ / / / / / /
- /____/\___/ .___/_/ /_/_/_/
- /_/
.....
表示安装成功.
二.使用Zephir开发PHP扩展
我们要做的第一件事就是生成一个扩展框架,这将提供给我们扩展的基本结构
下面这个例子我们创建了一个名为"utils"的扩展:
- $ zephir init utils
之后,当前目录下就有一个"utils"目录了:
utils/ ext/ utils/
ext/ 目录下包含的是编译器生成扩展所需的代码(C源码).
utils/ 目录下是我们的Zephir源码.
我们需要切到工作目录下,也就是utils下,开始编写代码:
- $ cd utils
- $ ls
- 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把我们的项目编译成扩展,这一步要在项目目录下执行:
- $ zephir build
- 如果顺利会打印以下信息:
...
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来调用:
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