PHP扩展开发,做一个属于自己的PHP扩展吧

PHP扩展开发,一般来说需要一定的C基础。但是本篇文章介绍另一种扩展开发的方式。使用Zephir开发PHP扩展。

1.基础准备

1.1环境和软件

以CentOS系统为例,执行:

yum install gcc make re2c autoconf automake
没有PHP的同学需要装一下PHP,本篇不再介绍

1.2 安装解析器

拉取代码并编译成扩展

mkdir /phptemp 
cd /phptemp
git clone git://github.com/phalcon/php-zephir-parser.git
cd php-zephir-parser
//这里替换成你的PHP所在目录
/usr/local/php/bin/phpize
//这里替换成你的PHP所在目录
./configure --with-php-config=/usr/local/php/bin/php-config
make 
make install
//这里替换成你的PHP所在目录
/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/

vim php.ini添加:
extension="zephir_parser.so"

1.3下载编译软件

cd /phptemp
wget https://github.com/phalcon/zephir/releases/download/0.12.19/zephir.phar
//重命名为可执行文件,并添加到环境变量中(也可以挪到已添加到环境变量中的目录下)
mv zephir.phar zephir

添加成功时,在任意目录执行zephir,都可以看到如下效果。

 _____              __    _
/__  /  ___  ____  / /_  (_)____
  / /  / _ \/ __ \/ __ \/ / ___/
 / /__/  __/ /_/ / / / / / /
/____/\___/ .___/_/ /_/_/_/
         /_/

2正式开始

2.1初始化扩展目录

zephir init Huai
cd huai/huai

2.2编辑自己的第一个扩展文件

vim common.zep

namespace Huai;

class Common
{

    public static function say()
    {
        echo "hello world!";
    }

}

wq保存退出

2.3构建包

cd ..

处于和config.json平级的目录,执行

zephir build //注意,用root权限运行

2.4将生成的扩展添加到php.ini目录中

生成的文件在config.json平级的目录ext/modules里
将so文件挪到自己常用的so目录。

这里将目录替换成自己的php扩展所在目录
mv huai.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/
vim php.ini //增加自己的扩展
extension=”huai.so”

2.5 试着执行一下

wq保存并重启PHP-FPM
php -m 查看扩展是否已加载。

echo Huai\Common::say();

输出:hello world!

是不是很简单,Enojoy it!0人点赞PHP

打赏作者

发表评论

电子邮件地址不会被公开。