整个过程是zephir和底层编译器自动进行编译优化的,当然也可以自己调整以获得更好的性能。
在ubuntu下的安装如官方教程即可,在centos下的安装如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
su
-c
'yum update'
sudo
yum
install
-y wget
sudo
yum
install
-y vim
sudo
yum
install
-y libtool
sudo
yum
install
-y
gcc
sudo
yum
install
-y
make
sudo
yum
install
-y re2c
sudo
rpm -Uvh https:
//mirror
.webtatic.com
/yum/el6/latest
.rpm
sudo
yum
install
-y php55w
sudo
yum
install
-y php55w-devel
sudo
yum
install
-y php55w-json
sudo
yum
install
-y git-core
git clone https:
//github
.com
/json-c/json-c
.git
cd
json-c
.
/autogen
.sh
.
/configure
make
make
install
git clone https:
//github
.com
/phalcon/zephir
cd
zephir
.
/install
-c
zephir help
|
1
2
3
|
zephir init utils
cd
utils
sudo
vim utils
/greeting
.zep
|
greeting.zep代码如下:
1
2
3
4
5
6
7
8
9
10
11
|
namespace
Utils;
class
Greeting
{
public
static
function
say()
{
echo
"hello world!"
;
}
}
|
编译安装(切记切回项目的根目录/)
1
|
$ zephir build
|
注意,我在php5.3下面这么编译都不行,在php5.5/php5.4的版本基本没有碰到什么问题。
然后更改php.ini:
1
|
sudo
vim
/etc/php
.ini
|
在php.ini中加上以下内容
1
2
3
4
5
6
7
|
;zephir编译的扩展需要依赖json.so,需要提前加载
[json]
;如果php.ini中没有则加上,有则去掉;
extension=json.so
[utils]
extension=utils.so
|
查看php可用扩展
1
|
php -i
|
注意:如果提示’undefined symbol: php_json_decode_ex in Unknown on line 0’,则是php json扩展未加载,在php.ini打开就行了。加载了json.so后又提示’PHP Warning: Module ‘json’ already loaded’,则是已经在其他地方加载了该扩展,找出并注释掉。我的是在php.d下面的json.ini里面:
1
|
sudo
vim
/etc/php
.d
/json
.ini
|
1
2
3
|
[json]
;已经在php.ini中加载了,为避免重复加载注释掉
;extension = json
|
1
2
|
cd
~
/utils
sudo
vim greeting.php
|
greeting.php代码如下:
1
2
3
|
<?php
echo
Utils\Greeting::say(),
"\n"
;
|
保存并运行:
至此你的zephir编译的扩展已经成功了,赶紧翻译你的PHP代码去吧。
来源:oschina
链接:https://my.oschina.net/u/588516/blog/4301025