# 安装相关依赖 yum install gcc make re2c autoconf automake -y
安装解释器 https://github.com/zephir-lang/php-zephir-parser
git clone git://github.com/zephir-lang/php-zephir-parser.git cd php-zephir-parser phpize ./configure make && make install
编辑php.ini
vim /usr/local/php/etc/php.ini [Zephir Parser] extension=zephir_parser.so
php -m 或 phpinfo 查看安装的模块
安装zephir.phar
# 下载 https://github.com/zephir-lang/zephir/releases/download/0.16.3/zephir.phar # 移动到 /usr/local/bin mv /opt/zephir.phar /usr/local/bin/ chmod 755 zephir.phar ln -s /usr/local/bin/zephir.phar zephir ln -s /usr/local/php/bin/php-config php-config
zephir help
开发扩展
初始化扩展目录
zephir init Hello cd hello/hello
编写扩展文件
vim world.zep namespace Hello; class World { public function index() { echo "hello world!"; } }
构建包
# 需先开启php函数 exec、shell_exec、system # 编辑php.ini vim /usr/local/php/etc/php.ini # disable_functions 中去除如上三个限制函数 cd ../ # 构建 zephir build
# 构建的的文件在 hello/ext/modules 文件下
# extension_dir 地址可以通过 phpinfo 查看
# 将构建成功之后的.so文件移动到 extension_dir(/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/) 文件下
mv ext/modules/hello.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/
vim /usr/local/php/etc/php.ini
extension=hello.so
# 重启fpm
systemctl restart php-fpm
测试使用
查看扩展
新建文件index.php
vim index.php <?php echo Hello\World::index(); echo "\n"; die("test over!!"); # :wq保存退出
# 执行测试
php index.php