使用Zephir下PHP Extension开发
php的扩展是用c语言编写,Zend是语言引擎,PHP内核。在实际编写php扩展的时候,需要使用大量的Zend Api,虽然运行效率高,但是其实难度也比较大。
Zend Api
Zephir提供了一种类似php的高级语言语法的方式,来自动生成扩展的c语言代码,使编写php扩展变得非常的简单。
Zephir
1、Github clone
git clone https://github.com/phalcon/zephir
2、运行Zephir安装程序
cd zephir
./install -c
3、检测安装,看到版本就证明安装成功 zephir help
4、使用Zephir开发扩展
zephir init demo // 创建了一个名为demo的扩展
生成目录如下:
demo
ext // 目录下包含的是编译器生成扩展所需的代码(C源码)
demo // 目录下是我们的Zephir源码
5、添加一个类,Zephir语法参考:Zephir
// demo/demo/greeting.zep
namespace Demo;
class Greeting {
public static function say() {
echo "hello world!";
}
}
6、在根目录下Zephir编译和生成的扩展
zephir build
7、当然我们在编译中可能出现一些问题:
error: re2c is not installed
安装re2c拓展
wget http://tenet.dl.sourceforge.net/project/re2c/0.15.3/re2c-0.15.3.tar.gz
tar zxf re2c-0.15.3.tar.gz && cd re2c-0.15.3
./configure
make && make install
然后在执行zephir build
8、如果出现以下(代表编译好了):
Extension installed!
Add extension=demo.so to your php.ini
Don’t forget to restart your web server
9、 最后在php.ini中加入extension=demo.so,重启服务即可
10、php -m(出现demo就代表没问题了)
11、php测试
<?php
echo Demo\Greeting::say();
12、Zephir开发扩展是不是很容易呢相比C或C++开发简单多了吧。