Zephir

Posted Tinywan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zephir相关的知识,希望对你有一定的参考价值。

一、如何安装

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

二、如何使用

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

zephir init openresty

 

进入openresty 目录修改json文件

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

当前目录文件

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

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

目录结构

 

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

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

修改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();
}

 

如何使用?

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

 三、遇到的错误

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

 

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

 

以上是关于Zephir的主要内容,如果未能解决你的问题,请参考以下文章

PHP 扩展开发之Zephir

PHP Extension开发(Zephir版本)

PHP7 学习笔记如何使用zephir编译一个扩展记录

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js