首页 > 编程语言 >php实现自己的extension

php实现自己的extension

时间:2023-01-03 12:12:02浏览次数:50  
标签:extension 实现 zephir vim usr php local hello

# 安装相关依赖
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

 

 

 

 

 

 

标签:extension,实现,zephir,vim,usr,php,local,hello
From: https://www.cnblogs.com/chenjiangbin/p/17021474.html

相关文章