Zephir入门教程一

时间:2023-03-09 17:06:53
Zephir入门教程一

一、如何安装

zephir-安装和初体验:http://blog.****.net/u011142688/article/details/51619811

二、如何使用

需要切到工作目录下,也就是converted下,开始编写代码,新建一个文件夹converted,在该文件下执行命令:

zephir init openresty

Zephir入门教程一

进入openresty 目录修改json文件

/mnt/hgfs/Linux-Share/thinkphp5-study-line/converted/openresty$ vim config.json 
"description": "php openresty extend",
"author": "Tinywan",

当前目录文件

Zephir入门教程一

进入Openresty 目录新建文件 redis.zep

Zephir入门教程一

namespace Openresty;
class Redis
{
public static function init()
{
echo "hello Openresty !";
}
}

目录结构

Zephir入门教程一

现在,需要告诉Zephir把我们的项目编译成扩展,这一步要在项目目录下执行:zephir build (要切换到:/mnt/hgfs/Linux-Share/thinkphp5-study-line/converted/openresty 目录下)

Zephir入门教程一

编译好的扩展文件在那里来?

Zephir入门教程一

修改PHP配置文件:sudo vim /opt/php-7.0.9/etc/php.ini

添加内容:extension=/mnt/hgfs/Linux-Share/thinkphp5-study-line/converted/openresty/ext/modules/openresty.so

重启Nginx和php-fmp 服务器,查看配置信息,以下表示编译成功了

public function test(){
phpinfo();
}

Zephir入门教程一

如何使用?

public function Openresty(){
echo \Openresty\Redis::init(), "\r\n";
echo "Openresty";
}

Zephir入门教程一

三、遇到的错误

以下是在非root目录下运行的,所以要切换到root下运行就没问题;

tinywan@tinywan:~/PHP7/zephir/converted/utils/utils$ zephir build
Zephir\Exception: Extension namespace cannot be loaded